GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / spi / snps,dw-apb-ssi.yaml
1 # SPDX-License-Identifier: GPL-2.0-only
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface
8
9 maintainers:
10   - Mark Brown <broonie@kernel.org>
11
12 allOf:
13   - $ref: "spi-controller.yaml#"
14   - if:
15       properties:
16         compatible:
17           contains:
18             enum:
19               - mscc,ocelot-spi
20               - mscc,jaguar2-spi
21     then:
22       properties:
23         reg:
24           minItems: 2
25   - if:
26       properties:
27         compatible:
28           contains:
29             enum:
30               - baikal,bt1-sys-ssi
31     then:
32       properties:
33         mux-controls:
34           maxItems: 1
35       required:
36         - mux-controls
37     else:
38       required:
39         - interrupts
40
41 properties:
42   compatible:
43     oneOf:
44       - description: Generic DW SPI Controller
45         enum:
46           - snps,dw-apb-ssi
47           - snps,dwc-ssi-1.01a
48       - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller
49         items:
50           - enum:
51               - mscc,ocelot-spi
52               - mscc,jaguar2-spi
53           - const: snps,dw-apb-ssi
54       - description: Microchip Sparx5 SoC SPI Controller
55         const: microchip,sparx5-spi
56       - description: Amazon Alpine SPI Controller
57         const: amazon,alpine-dw-apb-ssi
58       - description: Renesas RZ/N1 SPI Controller
59         items:
60           - const: renesas,rzn1-spi
61           - const: snps,dw-apb-ssi
62       - description: Intel Keem Bay SPI Controller
63         const: intel,keembay-ssi
64       - description: Intel Thunder Bay SPI Controller
65         const: intel,thunderbay-ssi
66       - description: Baikal-T1 SPI Controller
67         const: baikal,bt1-ssi
68       - description: Baikal-T1 System Boot SPI Controller
69         const: baikal,bt1-sys-ssi
70       - description: Canaan Kendryte K210 SoS SPI Controller
71         const: canaan,k210-spi
72       - description: Renesas RZ/N1 SPI Controller
73         items:
74           - enum:
75               - renesas,r9a06g032-spi # RZ/N1D
76               - renesas,r9a06g033-spi # RZ/N1S
77           - const: renesas,rzn1-spi   # RZ/N1
78
79   reg:
80     minItems: 1
81     items:
82       - description: DW APB SSI controller memory mapped registers
83       - description: SPI MST region map or directly mapped SPI ROM
84
85   interrupts:
86     maxItems: 1
87
88   clocks:
89     minItems: 1
90     items:
91       - description: SPI Controller reference clock source
92       - description: APB interface clock source
93
94   clock-names:
95     minItems: 1
96     items:
97       - const: ssi_clk
98       - const: pclk
99
100   resets:
101     maxItems: 1
102
103   reset-names:
104     const: spi
105
106   reg-io-width:
107     description: I/O register width (in bytes) implemented by this device
108     default: 4
109     enum: [ 2, 4 ]
110
111   num-cs:
112     default: 4
113     minimum: 1
114     maximum: 4
115
116   dmas:
117     items:
118       - description: TX DMA Channel
119       - description: RX DMA Channel
120
121   dma-names:
122     items:
123       - const: tx
124       - const: rx
125
126   rx-sample-delay-ns:
127     default: 0
128     description: |
129       Default value of the rx-sample-delay-ns property.
130       This value will be used if the property is not explicitly defined
131       for a SPI slave device.
132
133       SPI Rx sample delay offset, unit is nanoseconds.
134       The delay from the default sample time before the actual sample of the
135       rxd input signal occurs. The "rx_sample_delay" is an optional feature
136       of the designware controller, and the upper limit is also subject to
137       controller configuration.
138
139 patternProperties:
140   "^.*@[0-9a-f]+$":
141     type: object
142     properties:
143       reg:
144         minimum: 0
145         maximum: 3
146
147 unevaluatedProperties: false
148
149 required:
150   - compatible
151   - reg
152   - "#address-cells"
153   - "#size-cells"
154   - clocks
155
156 examples:
157   - |
158     spi@fff00000 {
159       compatible = "snps,dw-apb-ssi";
160       reg = <0xfff00000 0x1000>;
161       #address-cells = <1>;
162       #size-cells = <0>;
163       interrupts = <0 154 4>;
164       clocks = <&spi_m_clk>;
165       num-cs = <2>;
166       cs-gpios = <&gpio0 13 0>,
167                  <&gpio0 14 0>;
168       rx-sample-delay-ns = <3>;
169       flash@1 {
170         compatible = "spi-nand";
171         reg = <1>;
172         rx-sample-delay-ns = <7>;
173       };
174     };
175   - |
176     spi@1f040100 {
177       compatible = "baikal,bt1-sys-ssi";
178       reg = <0x1f040100 0x900>,
179             <0x1c000000 0x1000000>;
180       #address-cells = <1>;
181       #size-cells = <0>;
182       mux-controls = <&boot_mux>;
183       clocks = <&ccu_sys>;
184       clock-names = "ssi_clk";
185     };
186 ...