Skip to content

Commit d8e0f97

Browse files
committed
Merge tag 'spi-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "This is quite a quiet release but some new drivers mean that the diffstat is fairly large. The new drivers include the aspeed driver which is migrated from MTD as part of the ongoing move of controllers with specialised support for SPI flashes into the SPI subsystem. - Support for devices which flip CPHA during recieve only transfers (eg, if MOSI and MISO have inverted polarity). - Overhaul of the i.MX driver, including the addition of PIO support for better performance on small transfers. - Migration of the Aspeed driver from MTD. - Support for Aspeed AST2400, Ingenic JZ4775 and X1/2000 and MediaTek IPM and SFI" * tag 'spi-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (84 commits) spi: spi-au1550: replace ternary operator with min() mtd: spi-nor: aspeed: set the decoding size to at least 2MB for AST2600 spi: aspeed: Calibrate read timings spi: aspeed: Add support for the AST2400 SPI controller spi: aspeed: Workaround AST2500 limitations spi: aspeed: Adjust direct mapping to device size spi: aspeed: Add support for direct mapping spi: spi-mem: Convert Aspeed SMC driver to spi-mem spi: Convert the Aspeed SMC controllers device tree binding spi: spi-cadence: Update ISR status variable type to irqreturn_t spi: Doc fix - Describe add_lock and dma_map_dev in spi_controller spi: cadence-quadspi: Handle spi_unregister_master() in remove() spi: stm32-qspi: Remove SR_BUSY bit check before sending command spi: stm32-qspi: Always check SR_TCF flags in stm32_qspi_wait_cmd() spi: stm32-qspi: Fix wait_cmd timeout in APM mode spi: cadence-quadspi: remove unnecessary (void *) casts spi: cadence-quadspi: Add missing blank line in cqspi_request_mmap_dma() spi: spi-imx: mx51_ecspi_prepare_message(): skip writing MX51_ECSPI_CONFIG register if unchanged spi: spi-imx: add PIO polling support spi: spi-imx: replace struct spi_imx_data::bitbang by pointer to struct spi_controller ...
2 parents 9b18d07 + 9c63b84 commit d8e0f97

Some content is hidden

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

45 files changed

+3911
-1597
lines changed

Documentation/devicetree/bindings/mtd/aspeed-smc.txt

Lines changed: 0 additions & 51 deletions
This file was deleted.
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 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/spi/aspeed,ast2600-fmc.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Aspeed SMC controllers bindings
8+
9+
maintainers:
10+
- Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
11+
- Cédric Le Goater <clg@kaod.org>
12+
13+
description: |
14+
This binding describes the Aspeed Static Memory Controllers (FMC and
15+
SPI) of the AST2400, AST2500 and AST2600 SOCs.
16+
17+
allOf:
18+
- $ref: "spi-controller.yaml#"
19+
20+
properties:
21+
compatible:
22+
enum:
23+
- aspeed,ast2600-fmc
24+
- aspeed,ast2600-spi
25+
- aspeed,ast2500-fmc
26+
- aspeed,ast2500-spi
27+
- aspeed,ast2400-fmc
28+
- aspeed,ast2400-spi
29+
30+
reg:
31+
items:
32+
- description: registers
33+
- description: memory mapping
34+
35+
clocks:
36+
maxItems: 1
37+
38+
interrupts:
39+
maxItems: 1
40+
41+
required:
42+
- compatible
43+
- reg
44+
- clocks
45+
46+
unevaluatedProperties: false
47+
48+
examples:
49+
- |
50+
#include <dt-bindings/interrupt-controller/arm-gic.h>
51+
#include <dt-bindings/interrupt-controller/aspeed-scu-ic.h>
52+
#include <dt-bindings/clock/ast2600-clock.h>
53+
54+
spi@1e620000 {
55+
reg = <0x1e620000 0xc4>, <0x20000000 0x10000000>;
56+
#address-cells = <1>;
57+
#size-cells = <0>;
58+
compatible = "aspeed,ast2600-fmc";
59+
clocks = <&syscon ASPEED_CLK_AHB>;
60+
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
61+
62+
flash@0 {
63+
reg = < 0 >;
64+
compatible = "jedec,spi-nor";
65+
spi-max-frequency = <50000000>;
66+
spi-rx-bus-width = <2>;
67+
};
68+
69+
flash@1 {
70+
reg = < 1 >;
71+
compatible = "jedec,spi-nor";
72+
spi-max-frequency = <50000000>;
73+
spi-rx-bus-width = <2>;
74+
};
75+
76+
flash@2 {
77+
reg = < 2 >;
78+
compatible = "jedec,spi-nor";
79+
spi-max-frequency = <50000000>;
80+
spi-rx-bus-width = <2>;
81+
};
82+
};

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ properties:
1818
oneOf:
1919
- enum:
2020
- ingenic,jz4750-spi
21+
- ingenic,jz4775-spi
2122
- ingenic,jz4780-spi
23+
- ingenic,x1000-spi
24+
- ingenic,x2000-spi
2225
- items:
2326
- enum:
2427
- ingenic,jz4760-spi

Documentation/devicetree/bindings/spi/mediatek,spi-mt65xx.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,16 +53,20 @@ properties:
5353
maxItems: 1
5454

5555
clocks:
56+
minItems: 3
5657
items:
5758
- description: clock used for the parent clock
5859
- description: clock used for the muxes clock
5960
- description: clock used for the clock gate
61+
- description: clock used for the AHB bus, this clock is optional
6062

6163
clock-names:
64+
minItems: 3
6265
items:
6366
- const: parent-clk
6467
- const: sel-clk
6568
- const: spi-clk
69+
- const: hclk
6670

6771
mediatek,pad-select:
6872
$ref: /schemas/types.yaml#/definitions/uint32-array
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/spi/mediatek,spi-mtk-snfi.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: SPI-NAND flash controller for MediaTek ARM SoCs
8+
9+
maintainers:
10+
- Chuanhong Guo <gch981213@gmail.com>
11+
12+
description: |
13+
The Mediatek SPI-NAND flash controller is an extended version of
14+
the Mediatek NAND flash controller. It can perform standard SPI
15+
instructions with one continuous write and one read for up-to 0xa0
16+
bytes. It also supports typical SPI-NAND page cache operations
17+
in single, dual or quad IO mode with pipelined ECC encoding/decoding
18+
using the accompanying ECC engine. There should be only one spi
19+
slave device following generic spi bindings.
20+
21+
allOf:
22+
- $ref: /schemas/spi/spi-controller.yaml#
23+
24+
properties:
25+
compatible:
26+
enum:
27+
- mediatek,mt7622-snand
28+
- mediatek,mt7629-snand
29+
30+
reg:
31+
items:
32+
- description: core registers
33+
34+
interrupts:
35+
items:
36+
- description: NFI interrupt
37+
38+
clocks:
39+
items:
40+
- description: clock used for the controller
41+
- description: clock used for the SPI bus
42+
43+
clock-names:
44+
items:
45+
- const: nfi_clk
46+
- const: pad_clk
47+
48+
nand-ecc-engine:
49+
description: device-tree node of the accompanying ECC engine.
50+
$ref: /schemas/types.yaml#/definitions/phandle
51+
52+
required:
53+
- compatible
54+
- reg
55+
- interrupts
56+
- clocks
57+
- clock-names
58+
- nand-ecc-engine
59+
60+
unevaluatedProperties: false
61+
62+
examples:
63+
- |
64+
#include <dt-bindings/interrupt-controller/irq.h>
65+
#include <dt-bindings/interrupt-controller/arm-gic.h>
66+
#include <dt-bindings/clock/mt7622-clk.h>
67+
soc {
68+
#address-cells = <2>;
69+
#size-cells = <2>;
70+
snfi: spi@1100d000 {
71+
compatible = "mediatek,mt7622-snand";
72+
reg = <0 0x1100d000 0 0x1000>;
73+
interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
74+
clocks = <&pericfg CLK_PERI_NFI_PD>, <&pericfg CLK_PERI_SNFI_PD>;
75+
clock-names = "nfi_clk", "pad_clk";
76+
nand-ecc-engine = <&bch>;
77+
#address-cells = <1>;
78+
#size-cells = <0>;
79+
80+
flash@0 {
81+
compatible = "spi-nand";
82+
reg = <0>;
83+
spi-tx-bus-width = <4>;
84+
spi-rx-bus-width = <4>;
85+
nand-ecc-engine = <&snfi>;
86+
};
87+
};
88+
};

Documentation/devicetree/bindings/spi/qcom,spi-qcom-qspi.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ properties:
4949
maxItems: 2
5050

5151
interconnect-names:
52+
minItems: 1
5253
items:
5354
- const: qspi-config
5455
- const: qspi-memory

Documentation/devicetree/bindings/spi/renesas,rspi.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ properties:
2121
- enum:
2222
- renesas,rspi-r7s72100 # RZ/A1H
2323
- renesas,rspi-r7s9210 # RZ/A2
24+
- renesas,r9a07g043-rspi # RZ/G2UL
2425
- renesas,r9a07g044-rspi # RZ/G2{L,LC}
2526
- renesas,r9a07g054-rspi # RZ/V2L
2627
- const: renesas,rspi-rz
@@ -124,6 +125,7 @@ allOf:
124125
contains:
125126
enum:
126127
- renesas,qspi
128+
- renesas,r9a07g043-rspi
127129
- renesas,r9a07g044-rspi
128130
- renesas,r9a07g054-rspi
129131
then:

MAINTAINERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3102,6 +3102,16 @@ S: Maintained
31023102
F: Documentation/devicetree/bindings/mmc/aspeed,sdhci.yaml
31033103
F: drivers/mmc/host/sdhci-of-aspeed*
31043104

3105+
ASPEED SMC SPI DRIVER
3106+
M: Chin-Ting Kuo <chin-ting_kuo@aspeedtech.com>
3107+
M: Cédric Le Goater <clg@kaod.org>
3108+
L: linux-aspeed@lists.ozlabs.org (moderated for non-subscribers)
3109+
L: openbmc@lists.ozlabs.org (moderated for non-subscribers)
3110+
L: linux-spi@vger.kernel.org
3111+
S: Maintained
3112+
F: Documentation/devicetree/bindings/spi/aspeed,ast2600-fmc.yaml
3113+
F: drivers/spi/spi-aspeed-smc.c
3114+
31053115
ASPEED VIDEO ENGINE DRIVER
31063116
M: Eddie James <eajames@linux.ibm.com>
31073117
L: linux-media@vger.kernel.org

drivers/mtd/spi-nor/controllers/Kconfig

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,4 @@
11
# SPDX-License-Identifier: GPL-2.0-only
2-
config SPI_ASPEED_SMC
3-
tristate "Aspeed flash controllers in SPI mode"
4-
depends on ARCH_ASPEED || COMPILE_TEST
5-
depends on HAS_IOMEM && OF
6-
help
7-
This enables support for the Firmware Memory controller (FMC)
8-
in the Aspeed AST2500/AST2400 SoCs when attached to SPI NOR chips,
9-
and support for the SPI flash memory controller (SPI) for
10-
the host firmware. The implementation only supports SPI NOR.
11-
122
config SPI_HISI_SFC
133
tristate "Hisilicon FMC SPI NOR Flash Controller(SFC)"
144
depends on ARCH_HISI || COMPILE_TEST
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
obj-$(CONFIG_SPI_ASPEED_SMC) += aspeed-smc.o
32
obj-$(CONFIG_SPI_HISI_SFC) += hisi-sfc.o
43
obj-$(CONFIG_SPI_NXP_SPIFI) += nxp-spifi.o

0 commit comments

Comments
 (0)