Skip to content

Commit 2019295

Browse files
committed
Merge tag 'spi-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "This is quite a quiet release for SPI, there's been a bit of cleanup to the core from Uwe but nothing functionality wise. We have added several new drivers, Cadence XSPI, Ingenic JZ47xx, Qualcomm SC7280 and SC7180 and Xilinx Versal OSPI" * tag 'spi-v5.16' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (41 commits) spi: Convert NXP flexspi to json schema spi: spi-geni-qcom: Add support for GPI dma spi: fsi: Fix contention in the FSI2SPI engine spi: spi-rpc-if: Check return value of rpcif_sw_init() spi: tegra210-quad: Put device into suspend on driver removal spi: tegra20-slink: Put device into suspend on driver removal spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe() spi: at91-usart: replacing legacy gpio interface for gpiod spi: replace snprintf in show functions with sysfs_emit spi: cadence: Add of_node_put() before return spi: orion: Add of_node_put() before goto spi: cadence-quadspi: fix dma_unmap_single() call spi: tegra20: fix build with CONFIG_PM_SLEEP=n spi: bcm-qspi: add support for 3-wire mode for half duplex transfer spi: bcm-qspi: Add mspi spcr3 32/64-bits xfer mode spi: Make several public functions private to spi.c spi: Reorder functions to simplify the next commit spi: Remove unused function spi_busnum_to_master() spi: Move comment about chipselect check to the right place spi: fsi: Print status on error ...
2 parents 1260d24 + 28b5eaf commit 2019295

34 files changed

+2325
-453
lines changed

Documentation/devicetree/bindings/spi/cdns,qspi-nor.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ maintainers:
1111

1212
allOf:
1313
- $ref: spi-controller.yaml#
14+
- if:
15+
properties:
16+
compatible:
17+
contains:
18+
const: xlnx,versal-ospi-1.0
19+
then:
20+
required:
21+
- power-domains
1422

1523
properties:
1624
compatible:
@@ -20,6 +28,7 @@ properties:
2028
- ti,k2g-qspi
2129
- ti,am654-ospi
2230
- intel,lgm-qspi
31+
- xlnx,versal-ospi-1.0
2332
- const: cdns,qspi-nor
2433
- const: cdns,qspi-nor
2534

@@ -65,6 +74,9 @@ properties:
6574
data rather than the QSPI clock. Make sure that QSPI return clock
6675
is populated on the board before using this property.
6776

77+
power-domains:
78+
maxItems: 1
79+
6880
resets:
6981
maxItems: 2
7082

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
# Copyright 2020-21 Cadence
3+
%YAML 1.2
4+
---
5+
$id: "http://devicetree.org/schemas/spi/cdns,xspi.yaml#"
6+
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
7+
8+
title: Cadence XSPI Controller
9+
10+
maintainers:
11+
- Parshuram Thombare <[email protected]>
12+
13+
description: |
14+
The XSPI controller allows SPI protocol communication in
15+
single, dual, quad or octal wire transmission modes for
16+
read/write access to slaves such as SPI-NOR flash.
17+
18+
allOf:
19+
- $ref: "spi-controller.yaml#"
20+
21+
properties:
22+
compatible:
23+
const: cdns,xspi-nor
24+
25+
reg:
26+
items:
27+
- description: address and length of the controller register set
28+
- description: address and length of the Slave DMA data port
29+
- description: address and length of the auxiliary registers
30+
31+
reg-names:
32+
items:
33+
- const: io
34+
- const: sdma
35+
- const: aux
36+
37+
interrupts:
38+
maxItems: 1
39+
40+
required:
41+
- compatible
42+
- reg
43+
- interrupts
44+
45+
unevaluatedProperties: false
46+
47+
examples:
48+
- |
49+
#include <dt-bindings/interrupt-controller/irq.h>
50+
bus {
51+
#address-cells = <2>;
52+
#size-cells = <2>;
53+
54+
xspi: spi@a0010000 {
55+
#address-cells = <1>;
56+
#size-cells = <0>;
57+
compatible = "cdns,xspi-nor";
58+
reg = <0x0 0xa0010000 0x0 0x1040>,
59+
<0x0 0xb0000000 0x0 0x1000>,
60+
<0x0 0xa0020000 0x0 0x100>;
61+
reg-names = "io", "sdma", "aux";
62+
interrupts = <0 90 IRQ_TYPE_LEVEL_HIGH>;
63+
interrupt-parent = <&gic>;
64+
65+
flash@0 {
66+
compatible = "jedec,spi-nor";
67+
spi-max-frequency = <75000000>;
68+
reg = <0>;
69+
};
70+
71+
flash@1 {
72+
compatible = "jedec,spi-nor";
73+
spi-max-frequency = <75000000>;
74+
reg = <1>;
75+
};
76+
};
77+
};
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/spi/ingenic,spi.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Ingenic SoCs SPI controller devicetree bindings
8+
9+
maintainers:
10+
- Artur Rojek <[email protected]>
11+
- Paul Cercueil <[email protected]>
12+
13+
allOf:
14+
- $ref: /schemas/spi/spi-controller.yaml#
15+
16+
properties:
17+
compatible:
18+
oneOf:
19+
- enum:
20+
- ingenic,jz4750-spi
21+
- ingenic,jz4780-spi
22+
- items:
23+
- enum:
24+
- ingenic,jz4760-spi
25+
- ingenic,jz4770-spi
26+
- const: ingenic,jz4750-spi
27+
28+
reg:
29+
maxItems: 1
30+
31+
interrupts:
32+
maxItems: 1
33+
34+
clocks:
35+
maxItems: 1
36+
37+
dmas:
38+
maxItems: 2
39+
minItems: 2
40+
41+
dma-names:
42+
items:
43+
- const: rx
44+
- const: tx
45+
46+
required:
47+
- compatible
48+
- reg
49+
- interrupts
50+
- clocks
51+
- dmas
52+
- dma-names
53+
54+
unevaluatedProperties: false
55+
56+
examples:
57+
- |
58+
#include <dt-bindings/clock/jz4770-cgu.h>
59+
spi@10043000 {
60+
compatible = "ingenic,jz4770-spi", "ingenic,jz4750-spi";
61+
reg = <0x10043000 0x1c>;
62+
#address-cells = <1>;
63+
#size-cells = <0>;
64+
65+
interrupt-parent = <&intc>;
66+
interrupts = <8>;
67+
68+
clocks = <&cgu JZ4770_CLK_SSI0>;
69+
70+
dmas = <&dmac1 23 0xffffffff>, <&dmac1 22 0xffffffff>;
71+
dma-names = "rx", "tx";
72+
};

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ allOf:
2121
properties:
2222
compatible:
2323
items:
24-
- const: qcom,sdm845-qspi
24+
- enum:
25+
- qcom,sc7180-qspi
26+
- qcom,sc7280-qspi
27+
- qcom,sdm845-qspi
28+
2529
- const: qcom,qspi-v1
2630

2731
reg:

Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt

Lines changed: 0 additions & 44 deletions
This file was deleted.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/spi/spi-nxp-fspi.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NXP Flex Serial Peripheral Interface (FSPI)
8+
9+
maintainers:
10+
- Kuldeep Singh <[email protected]>
11+
12+
allOf:
13+
- $ref: "spi-controller.yaml#"
14+
15+
properties:
16+
compatible:
17+
enum:
18+
- nxp,imx8dxl-fspi
19+
- nxp,imx8mm-fspi
20+
- nxp,imx8mp-fspi
21+
- nxp,imx8qxp-fspi
22+
- nxp,lx2160a-fspi
23+
24+
reg:
25+
items:
26+
- description: registers address space
27+
- description: memory mapped address space
28+
29+
reg-names:
30+
items:
31+
- const: fspi_base
32+
- const: fspi_mmap
33+
34+
interrupts:
35+
maxItems: 1
36+
37+
clocks:
38+
items:
39+
- description: SPI bus clock
40+
- description: SPI serial clock
41+
42+
clock-names:
43+
items:
44+
- const: fspi_en
45+
- const: fspi
46+
47+
required:
48+
- compatible
49+
- reg
50+
- reg-names
51+
- interrupts
52+
- clocks
53+
- clock-names
54+
55+
unevaluatedProperties: false
56+
57+
examples:
58+
- |
59+
#include <dt-bindings/interrupt-controller/arm-gic.h>
60+
#include <dt-bindings/clock/fsl,qoriq-clockgen.h>
61+
62+
soc {
63+
#address-cells = <2>;
64+
#size-cells = <2>;
65+
66+
spi@20c0000 {
67+
compatible = "nxp,lx2160a-fspi";
68+
reg = <0x0 0x20c0000 0x0 0x100000>,
69+
<0x0 0x20000000 0x0 0x10000000>;
70+
reg-names = "fspi_base", "fspi_mmap";
71+
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
72+
clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(4)>,
73+
<&clockgen QORIQ_CLK_PLATFORM_PLL QORIQ_CLK_PLL_DIV(4)>;
74+
clock-names = "fspi_en", "fspi";
75+
#address-cells = <1>;
76+
#size-cells = <0>;
77+
78+
flash@0 {
79+
compatible = "jedec,spi-nor";
80+
spi-max-frequency = <50000000>;
81+
reg = <0>;
82+
spi-rx-bus-width = <8>;
83+
spi-tx-bus-width = <8>;
84+
};
85+
};
86+
};

Documentation/spi/spi-summary.rst

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -336,14 +336,6 @@ certainly includes SPI devices hooked up through the card connectors!
336336
Non-static Configurations
337337
^^^^^^^^^^^^^^^^^^^^^^^^^
338338

339-
Developer boards often play by different rules than product boards, and one
340-
example is the potential need to hotplug SPI devices and/or controllers.
341-
342-
For those cases you might need to use spi_busnum_to_master() to look
343-
up the spi bus master, and will likely need spi_new_device() to provide the
344-
board info based on the board that was hotplugged. Of course, you'd later
345-
call at least spi_unregister_device() when that board is removed.
346-
347339
When Linux includes support for MMC/SD/SDIO/DataFlash cards through SPI, those
348340
configurations will also be dynamic. Fortunately, such devices all support
349341
basic device identification probes, so they should hotplug normally.

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13488,7 +13488,7 @@ M: Ashish Kumar <[email protected]>
1348813488
R: Yogesh Gaur <[email protected]>
1348913489
1349013490
S: Maintained
13491-
F: Documentation/devicetree/bindings/spi/spi-nxp-fspi.txt
13491+
F: Documentation/devicetree/bindings/spi/spi-nxp-fspi.yaml
1349213492
F: drivers/spi/spi-nxp-fspi.c
1349313493

1349413494
NXP FXAS21002C DRIVER

arch/mips/boot/dts/ingenic/ci20.dts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,12 @@
113113
* Use the 32.768 kHz oscillator as the parent of the RTC for a higher
114114
* precision.
115115
*/
116-
assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>;
117-
assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>;
118-
assigned-clock-rates = <48000000>;
116+
assigned-clocks = <&cgu JZ4780_CLK_OTGPHY>, <&cgu JZ4780_CLK_RTC>,
117+
<&cgu JZ4780_CLK_SSIPLL>, <&cgu JZ4780_CLK_SSI>;
118+
assigned-clock-parents = <0>, <&cgu JZ4780_CLK_RTCLK>,
119+
<&cgu JZ4780_CLK_MPLL>,
120+
<&cgu JZ4780_CLK_SSIPLL>;
121+
assigned-clock-rates = <48000000>, <0>, <54000000>;
119122
};
120123

121124
&tcu {

0 commit comments

Comments
 (0)