Skip to content

Commit ea1c6c5

Browse files
committed
Merge tag 'spi-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "There's one big core change in this release, Jonas Gorski has addressed the issues with multiple chip selects which makes things more robust and stable. Otherwise there's quite a bit of driver work, as well as some new drivers several existing drivers have had quite a bit of work done on them. Possibly the most interesting thing is the VirtIO driver, this is apparently useful for some automotive applications which want to keep as small and robust a host system as they can, moving less critical functionality into guests. - James Clark has done some substantial updates on the Freescale DSPI driver, porting in code from the BSP and building onm top of that to fix some bugs and increase performance - Jonas Gorski has fixed the issues with handling multple chip selects, making things more robust and scalable - Support for higher performance modes in the NXP FSPI driver from Haibo Chen - Removal of the obsolete S3C2443 driver, the underlying SoC support has been removed from the kernel - Support for Amlogic AL113L2, Atmel SAMA7D65 and SAM9x7 and for VirtIO controllers" * tag 'spi-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (74 commits) spi: ljca: Remove Wentong's e-mail address spi: rename SPI_CS_CNT_MAX => SPI_DEVICE_CS_CNT_MAX spi: reduce device chip select limit again spi: don't check spi_controller::num_chipselect when parsing a dt device spi: drop check for validity of device chip selects spi: move unused device CS initialization to __spi_add_device() spi: keep track of number of chipselects in spi_device spi: fix return code when spi device has too many chipselects SPI: Add virtio SPI driver virtio-spi: Add virtio-spi.h virtio: Add ID for virtio SPI spi: rpc-if: Add resume support for RZ/G3E spi: rpc-if: Drop deprecated SIMPLE_DEV_PM_OPS spi: spi-qpic-snand: simplify clock handling by using devm_clk_get_enabled() spi: spi-nxp-fspi: Add OCT-DTR mode support spi: spi-nxp-fspi: add the support for sample data from DQS pad spi: spi-nxp-fspi: Add the DDR LUT command support spi: spi-nxp-fspi: set back to dll override mode when clock rate < 100MHz spi: spi-nxp-fspi: extract function nxp_fspi_dll_override() spi: atmel-quadspi: Add support for sama7d65 QSPI ...
2 parents ad66578 + 2bfb20b commit ea1c6c5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+2583
-368
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
# Copyright (C) 2025 Amlogic, Inc. All rights reserved
3+
%YAML 1.2
4+
---
5+
$id: http://devicetree.org/schemas/spi/amlogic,a4-spifc.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
7+
8+
title: SPI flash controller for Amlogic ARM SoCs
9+
10+
maintainers:
11+
- Liang Yang <liang.yang@amlogic.com>
12+
- Feng Chen <feng.chen@amlogic.com>
13+
- Xianwei Zhao <xianwei.zhao@amlogic.com>
14+
15+
description:
16+
The Amlogic SPI flash controller is an extended version of the Amlogic NAND
17+
flash controller. It supports SPI Nor Flash and SPI NAND Flash(where the Host
18+
ECC HW engine could be enabled).
19+
20+
allOf:
21+
- $ref: /schemas/spi/spi-controller.yaml#
22+
23+
properties:
24+
compatible:
25+
const: amlogic,a4-spifc
26+
27+
reg:
28+
maxItems: 1
29+
30+
clocks:
31+
items:
32+
- description: clock apb gate
33+
- description: clock used for the controller
34+
35+
clock-names:
36+
items:
37+
- const: gate
38+
- const: core
39+
40+
interrupts:
41+
maxItems: 1
42+
43+
amlogic,rx-adj:
44+
description:
45+
Number of clock cycles by which sampling is delayed.
46+
$ref: /schemas/types.yaml#/definitions/uint32
47+
enum: [0, 1, 2, 3]
48+
default: 0
49+
50+
required:
51+
- compatible
52+
- reg
53+
- clocks
54+
- clock-names
55+
56+
unevaluatedProperties: false
57+
58+
examples:
59+
- |
60+
sfc0: spi@fe08d000 {
61+
compatible = "amlogic,a4-spifc";
62+
reg = <0xfe08d000 0x800>;
63+
clocks = <&clkc_periphs 31>,
64+
<&clkc_periphs 102>;
65+
clock-names = "gate", "core";
66+
67+
pinctrl-0 = <&spiflash_default>;
68+
pinctrl-names = "default";
69+
70+
#address-cells = <1>;
71+
#size-cells = <0>;
72+
73+
flash@0 {
74+
compatible = "spi-nand";
75+
reg = <0>;
76+
#address-cells = <1>;
77+
#size-cells = <1>;
78+
nand-ecc-engine = <&sfc0>;
79+
nand-ecc-strength = <8>;
80+
nand-ecc-step-size = <512>;
81+
};
82+
};

Documentation/devicetree/bindings/spi/atmel,at91rm9200-spi.yaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,16 @@ properties:
3131
maxItems: 1
3232

3333
clock-names:
34-
contains:
35-
const: spi_clk
34+
items:
35+
- const: spi_clk
36+
- const: spi_gclk
37+
minItems: 1
3638

3739
clocks:
38-
maxItems: 1
40+
items:
41+
- description: Peripheral Bus clock
42+
- description: Programmable Generic clock
43+
minItems: 1
3944

4045
dmas:
4146
items:

Documentation/devicetree/bindings/spi/atmel,quadspi.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ properties:
1717
enum:
1818
- atmel,sama5d2-qspi
1919
- microchip,sam9x60-qspi
20+
- microchip,sam9x7-ospi
21+
- microchip,sama7d65-qspi
22+
- microchip,sama7d65-ospi
2023
- microchip,sama7g5-qspi
2124
- microchip,sama7g5-ospi
2225

Documentation/devicetree/bindings/spi/samsung,spi.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ properties:
1818
oneOf:
1919
- enum:
2020
- google,gs101-spi
21-
- samsung,s3c2443-spi # for S3C2443, S3C2416 and S3C2450
2221
- samsung,s3c6410-spi
2322
- samsung,s5pv210-spi # for S5PV210 and S5PC110
2423
- samsung,exynos4210-spi

MAINTAINERS

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1318,6 +1318,16 @@ S: Maintained
13181318
F: Documentation/devicetree/bindings/rtc/amlogic,a4-rtc.yaml
13191319
F: drivers/rtc/rtc-amlogic-a4.c
13201320

1321+
AMLOGIC SPIFC DRIVER
1322+
M: Liang Yang <liang.yang@amlogic.com>
1323+
M: Feng Chen <feng.chen@amlogic.com>
1324+
M: Xianwei Zhao <xianwei.zhao@amlogic.com>
1325+
L: linux-amlogic@lists.infradead.org
1326+
L: linux-spi@vger.kernel.org
1327+
S: Maintained
1328+
F: Documentation/devicetree/bindings/spi/amlogic,a4-spifc.yaml
1329+
F: drivers/spi/spi-amlogic-spifc-a4.c
1330+
13211331
AMLOGIC SPISG DRIVER
13221332
M: Sunny Luo <sunny.luo@amlogic.com>
13231333
M: Xianwei Zhao <xianwei.zhao@amlogic.com>
@@ -25738,16 +25748,10 @@ W: https://github.com/srcres258/linux-doc
2573825748
T: git https://github.com/srcres258/linux-doc.git doc-zh-tw
2573925749
F: Documentation/translations/zh_TW/
2574025750

25741-
TRIGGER SOURCE - ADI UTIL SIGMA DELTA SPI
25742-
M: David Lechner <dlechner@baylibre.com>
25743-
S: Maintained
25744-
F: Documentation/devicetree/bindings/trigger-source/adi,util-sigma-delta-spi.yaml
25745-
2574625751
TRIGGER SOURCE
2574725752
M: David Lechner <dlechner@baylibre.com>
2574825753
S: Maintained
25749-
F: Documentation/devicetree/bindings/trigger-source/gpio-trigger.yaml
25750-
F: Documentation/devicetree/bindings/trigger-source/pwm-trigger.yaml
25754+
F: Documentation/devicetree/bindings/trigger-source/*
2575125755

2575225756
TRUSTED SECURITY MODULE (TSM) INFRASTRUCTURE
2575325757
M: Dan Williams <dan.j.williams@intel.com>
@@ -26897,6 +26901,13 @@ S: Maintained
2689726901
F: include/uapi/linux/virtio_snd.h
2689826902
F: sound/virtio/*
2689926903

26904+
VIRTIO SPI DRIVER
26905+
M: Haixu Cui <quic_haixcui@quicinc.com>
26906+
L: virtualization@lists.linux.dev
26907+
S: Maintained
26908+
F: drivers/spi/spi-virtio.c
26909+
F: include/uapi/linux/virtio_spi.h
26910+
2690026911
VIRTUAL BOX GUEST DEVICE DRIVER
2690126912
M: Hans de Goede <hansg@kernel.org>
2690226913
M: Arnd Bergmann <arnd@arndb.de>

drivers/spi/Kconfig

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,16 @@ config SPI_AMLOGIC_SPIFC_A1
9999
This enables master mode support for the SPIFC (SPI flash
100100
controller) available in Amlogic A1 (A113L SoC).
101101

102+
config SPI_AMLOGIC_SPIFC_A4
103+
tristate "Amlogic A4 SPI Flash controller"
104+
depends on ARCH_MESON || COMPILE_TEST
105+
select REGMAP_MMIO
106+
help
107+
This enables SPI mode on the NAND Flash Controller of Amlogic
108+
ARM SoCs. It supports SPI Nor Flash and SPI NAND Flash (Could
109+
enable Host ECC HW engine). The controller implements the
110+
SPI-MEM interface, it doesn't support generic SPI.
111+
102112
config SPI_AMLOGIC_SPISG
103113
tristate "Amlogic SPISG controller"
104114
depends on COMMON_CLK
@@ -916,7 +926,8 @@ config SPI_ROCKCHIP_SFC
916926

917927
config SPI_RB4XX
918928
tristate "Mikrotik RB4XX SPI master"
919-
depends on SPI_MASTER && ATH79
929+
depends on SPI_MASTER && (ATH79 || COMPILE_TEST)
930+
depends on OF
920931
help
921932
SPI controller driver for the Mikrotik RB4xx series boards.
922933

@@ -1224,6 +1235,17 @@ config SPI_UNIPHIER
12241235

12251236
If your SoC supports SCSSI, say Y here.
12261237

1238+
config SPI_VIRTIO
1239+
tristate "Virtio SPI Controller"
1240+
depends on SPI_MASTER && VIRTIO
1241+
help
1242+
If you say yes to this option, support will be included for the virtio
1243+
SPI controller driver. The hardware can be emulated by any device model
1244+
software according to the virtio protocol.
1245+
1246+
This driver can also be built as a module. If so, the module
1247+
will be called spi-virtio.
1248+
12271249
config SPI_XCOMM
12281250
tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
12291251
depends on I2C

drivers/spi/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ obj-$(CONFIG_SPI_ALTERA) += spi-altera-platform.o
2020
obj-$(CONFIG_SPI_ALTERA_CORE) += spi-altera-core.o
2121
obj-$(CONFIG_SPI_ALTERA_DFL) += spi-altera-dfl.o
2222
obj-$(CONFIG_SPI_AMLOGIC_SPIFC_A1) += spi-amlogic-spifc-a1.o
23+
obj-$(CONFIG_SPI_AMLOGIC_SPIFC_A4) += spi-amlogic-spifc-a4.o
2324
obj-$(CONFIG_SPI_AMLOGIC_SPISG) += spi-amlogic-spisg.o
2425
obj-$(CONFIG_SPI_APPLE) += spi-apple.o
2526
obj-$(CONFIG_SPI_AR934X) += spi-ar934x.o
@@ -158,6 +159,7 @@ spi-thunderx-objs := spi-cavium.o spi-cavium-thunderx.o
158159
obj-$(CONFIG_SPI_THUNDERX) += spi-thunderx.o
159160
obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o
160161
obj-$(CONFIG_SPI_UNIPHIER) += spi-uniphier.o
162+
obj-$(CONFIG_SPI_VIRTIO) += spi-virtio.o
161163
obj-$(CONFIG_SPI_XCOMM) += spi-xcomm.o
162164
obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o
163165
obj-$(CONFIG_SPI_XLP) += spi-xlp.o

0 commit comments

Comments
 (0)