Skip to content

Commit 13e574b

Browse files
committed
Merge tag 'spi-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "This has been a fairly quiet release for SPI, though it is likely that the next release will have some big changes as there's some preparatory work for multiple chip select support gone in - the rest of the code is on the list but will need to be rebased onto -rc1. Otherwise there's a couple of new tunables for chip select timings, some new devices and smaller device specific updates and fixes. - Support for configuring the hold and minimum inactive times for chip selects. - Beginnings of support for supporting devices which have multiple chip selects on a single device. - Support for newer Broadcom HSSPI and Intel controllers, Silicon Labs EM3581 and SI3210" * tag 'spi-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (67 commits) spi: dt-bindings: qcom,spi-qcom-qspi: document OPP and power-domains spi: spidev: drop the incorrect notice from Kconfig spi: bcm63xx-hsspi: fix error code in probe spi: bcmbca-hsspi: Fix error code in probe() function spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one() spi: intel: Check number of chip selects after reading the descriptor spi: xilinx: add force_irq for QSPI mode spi: spi-st-ssc: convert to DT schema spi: Reorder fields in 'struct spi_transfer' spi: cadence-quadspi: use STIG mode for small reads spi: cadence-quadspi: setup ADDR Bits in cmd reads spi: cadence-quadspi: Add flag for direct mode writes spi: cadence-quadspi: Reset CMD_CTRL Reg on cmd r/w completion MAINTAINERS: Remove file reference for Broadcom Broadband SoC HS SPI driver entry spi: bcm63xx-hsspi: bcmbca-hsspi: fix _be16 type usage MAINTAINERS: Add entry for Broadcom Broadband SoC HS SPI drivers spi: bcmbca-hsspi: Add driver for newer HSSPI controller spi: bcm63xx-hsspi: Disable spi mem dual io read op support spi: spi-mem: Allow controller supporting mem_ops without exec_op spi: bcm63xx-hsspi: Add prepend mode support ...
2 parents 0175ec3 + de82c25 commit 13e574b

Some content is hidden

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

74 files changed

+2275
-767
lines changed

Documentation/devicetree/bindings/spi/allwinner,sun4i-a10-spi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
77
title: Allwinner A10 SPI Controller
88

99
allOf:
10-
- $ref: "spi-controller.yaml"
10+
- $ref: spi-controller.yaml
1111

1212
maintainers:
1313
- Chen-Yu Tsai <[email protected]>

Documentation/devicetree/bindings/spi/allwinner,sun6i-a31-spi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
77
title: Allwinner A31 SPI Controller
88

99
allOf:
10-
- $ref: "spi-controller.yaml"
10+
- $ref: spi-controller.yaml
1111

1212
maintainers:
1313
- Chen-Yu Tsai <[email protected]>

Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
# Copyright 2019 BayLibre, SAS
33
%YAML 1.2
44
---
5-
$id: "http://devicetree.org/schemas/spi/amlogic,meson-gx-spicc.yaml#"
6-
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
5+
$id: http://devicetree.org/schemas/spi/amlogic,meson-gx-spicc.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
77

88
title: Amlogic Meson SPI Communication Controller
99

@@ -41,7 +41,7 @@ properties:
4141
maxItems: 2
4242

4343
allOf:
44-
- $ref: "spi-controller.yaml#"
44+
- $ref: spi-controller.yaml#
4545
- if:
4646
properties:
4747
compatible:
@@ -100,17 +100,17 @@ unevaluatedProperties: false
100100
examples:
101101
- |
102102
spi@c1108d80 {
103-
compatible = "amlogic,meson-gx-spicc";
104-
reg = <0xc1108d80 0x80>;
105-
interrupts = <112>;
106-
clocks = <&clk81>;
107-
clock-names = "core";
108-
#address-cells = <1>;
109-
#size-cells = <0>;
110-
111-
display@0 {
112-
compatible = "lg,lg4573";
113-
spi-max-frequency = <1000000>;
114-
reg = <0>;
115-
};
103+
compatible = "amlogic,meson-gx-spicc";
104+
reg = <0xc1108d80 0x80>;
105+
interrupts = <112>;
106+
clocks = <&clk81>;
107+
clock-names = "core";
108+
#address-cells = <1>;
109+
#size-cells = <0>;
110+
111+
display@0 {
112+
compatible = "lg,lg4573";
113+
spi-max-frequency = <1000000>;
114+
reg = <0>;
115+
};
116116
};

Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
# Copyright 2019 BayLibre, SAS
33
%YAML 1.2
44
---
5-
$id: "http://devicetree.org/schemas/spi/amlogic,meson6-spifc.yaml#"
6-
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
5+
$id: http://devicetree.org/schemas/spi/amlogic,meson6-spifc.yaml#
6+
$schema: http://devicetree.org/meta-schemas/core.yaml#
77

88
title: Amlogic Meson SPI Flash Controller
99

1010
maintainers:
1111
- Neil Armstrong <[email protected]>
1212

1313
allOf:
14-
- $ref: "spi-controller.yaml#"
14+
- $ref: spi-controller.yaml#
1515

1616
description: |
1717
The Meson SPIFC is a controller optimized for communication with SPI
@@ -40,15 +40,15 @@ unevaluatedProperties: false
4040
examples:
4141
- |
4242
spi@c1108c80 {
43-
compatible = "amlogic,meson6-spifc";
44-
reg = <0xc1108c80 0x80>;
45-
clocks = <&clk81>;
46-
#address-cells = <1>;
47-
#size-cells = <0>;
48-
49-
flash: flash@0 {
50-
compatible = "spansion,m25p80", "jedec,spi-nor";
51-
reg = <0>;
52-
spi-max-frequency = <40000000>;
53-
};
43+
compatible = "amlogic,meson6-spifc";
44+
reg = <0xc1108c80 0x80>;
45+
clocks = <&clk81>;
46+
#address-cells = <1>;
47+
#size-cells = <0>;
48+
49+
flash: flash@0 {
50+
compatible = "spansion,m25p80", "jedec,spi-nor";
51+
reg = <0>;
52+
spi-max-frequency = <40000000>;
53+
};
5454
};

Documentation/devicetree/bindings/spi/aspeed,ast2600-fmc.yaml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ description: |
1515
SPI) of the AST2400, AST2500 and AST2600 SOCs.
1616
1717
allOf:
18-
- $ref: "spi-controller.yaml#"
18+
- $ref: spi-controller.yaml#
1919

2020
properties:
2121
compatible:
@@ -60,23 +60,23 @@ examples:
6060
interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
6161
6262
flash@0 {
63-
reg = < 0 >;
64-
compatible = "jedec,spi-nor";
65-
spi-max-frequency = <50000000>;
66-
spi-rx-bus-width = <2>;
63+
reg = < 0 >;
64+
compatible = "jedec,spi-nor";
65+
spi-max-frequency = <50000000>;
66+
spi-rx-bus-width = <2>;
6767
};
6868
6969
flash@1 {
70-
reg = < 1 >;
71-
compatible = "jedec,spi-nor";
72-
spi-max-frequency = <50000000>;
73-
spi-rx-bus-width = <2>;
70+
reg = < 1 >;
71+
compatible = "jedec,spi-nor";
72+
spi-max-frequency = <50000000>;
73+
spi-rx-bus-width = <2>;
7474
};
7575
7676
flash@2 {
77-
reg = < 2 >;
78-
compatible = "jedec,spi-nor";
79-
spi-max-frequency = <50000000>;
80-
spi-rx-bus-width = <2>;
77+
reg = < 2 >;
78+
compatible = "jedec,spi-nor";
79+
spi-max-frequency = <50000000>;
80+
spi-rx-bus-width = <2>;
8181
};
8282
};
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/spi/brcm,bcm63xx-hsspi.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Broadcom Broadband SoC High Speed SPI controller
8+
9+
maintainers:
10+
- William Zhang <[email protected]>
11+
- Kursad Oney <[email protected]>
12+
- Jonas Gorski <[email protected]>
13+
14+
description: |
15+
Broadcom Broadband SoC supports High Speed SPI master controller since the
16+
early MIPS based chips such as BCM6328 and BCM63268. This initial rev 1.0
17+
controller was carried over to recent ARM based chips, such as BCM63138,
18+
BCM4908 and BCM6858. The old MIPS based chip should continue to use the
19+
brcm,bcm6328-hsspi compatible string. The recent ARM based chip is required to
20+
use the brcm,bcmbca-hsspi-v1.0 as part of its compatible string list as
21+
defined below to match the specific chip along with ip revision info.
22+
23+
This rev 1.0 controller has a limitation that can not keep the chip select line
24+
active between the SPI transfers within the same SPI message. This can
25+
terminate the transaction to some SPI devices prematurely. The issue can be
26+
worked around by either the controller's prepend mode or using the dummy chip
27+
select workaround. Driver automatically picks the suitable mode based on
28+
transfer type so it is transparent to the user.
29+
30+
The newer SoCs such as BCM6756, BCM4912 and BCM6855 include an updated SPI
31+
controller rev 1.1 that add the capability to allow the driver to control chip
32+
select explicitly. This solves the issue in the old controller.
33+
34+
properties:
35+
compatible:
36+
oneOf:
37+
- const: brcm,bcm6328-hsspi
38+
- items:
39+
- enum:
40+
- brcm,bcm47622-hsspi
41+
- brcm,bcm4908-hsspi
42+
- brcm,bcm63138-hsspi
43+
- brcm,bcm63146-hsspi
44+
- brcm,bcm63148-hsspi
45+
- brcm,bcm63158-hsspi
46+
- brcm,bcm63178-hsspi
47+
- brcm,bcm6846-hsspi
48+
- brcm,bcm6856-hsspi
49+
- brcm,bcm6858-hsspi
50+
- brcm,bcm6878-hsspi
51+
- const: brcm,bcmbca-hsspi-v1.0
52+
- items:
53+
- enum:
54+
- brcm,bcm4912-hsspi
55+
- brcm,bcm6756-hsspi
56+
- brcm,bcm6813-hsspi
57+
- brcm,bcm6855-hsspi
58+
- const: brcm,bcmbca-hsspi-v1.1
59+
60+
reg:
61+
items:
62+
- description: main registers
63+
- description: miscellaneous control registers
64+
minItems: 1
65+
66+
reg-names:
67+
items:
68+
- const: hsspi
69+
- const: spim-ctrl
70+
minItems: 1
71+
72+
clocks:
73+
items:
74+
- description: SPI master reference clock
75+
- description: SPI master pll clock
76+
77+
clock-names:
78+
items:
79+
- const: hsspi
80+
- const: pll
81+
82+
interrupts:
83+
maxItems: 1
84+
85+
required:
86+
- compatible
87+
- reg
88+
- clocks
89+
- clock-names
90+
- interrupts
91+
92+
allOf:
93+
- $ref: spi-controller.yaml#
94+
- if:
95+
properties:
96+
compatible:
97+
contains:
98+
enum:
99+
- brcm,bcm6328-hsspi
100+
- brcm,bcmbca-hsspi-v1.0
101+
then:
102+
properties:
103+
reg:
104+
maxItems: 1
105+
reg-names:
106+
maxItems: 1
107+
else:
108+
properties:
109+
reg:
110+
minItems: 2
111+
maxItems: 2
112+
reg-names:
113+
minItems: 2
114+
maxItems: 2
115+
required:
116+
- reg-names
117+
118+
unevaluatedProperties: false
119+
120+
examples:
121+
- |
122+
#include <dt-bindings/interrupt-controller/arm-gic.h>
123+
spi@ff801000 {
124+
compatible = "brcm,bcm6756-hsspi", "brcm,bcmbca-hsspi-v1.1";
125+
reg = <0xff801000 0x1000>,
126+
<0xff802610 0x4>;
127+
reg-names = "hsspi", "spim-ctrl";
128+
interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
129+
clocks = <&hsspi>, <&hsspi_pll>;
130+
clock-names = "hsspi", "pll";
131+
num-cs = <8>;
132+
#address-cells = <1>;
133+
#size-cells = <0>;
134+
};

0 commit comments

Comments
 (0)