xref: /openbmc/linux/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml (revision b658be56e867061a0d5496e837f350974ada5c89)
1164c05f0SSerge Semin# SPDX-License-Identifier: GPL-2.0-only
2164c05f0SSerge Semin%YAML 1.2
3164c05f0SSerge Semin---
4164c05f0SSerge Semin$id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml#
5164c05f0SSerge Semin$schema: http://devicetree.org/meta-schemas/core.yaml#
6164c05f0SSerge Semin
7164c05f0SSerge Semintitle: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface
8164c05f0SSerge Semin
9164c05f0SSerge Seminmaintainers:
10164c05f0SSerge Semin  - Mark Brown <broonie@kernel.org>
11164c05f0SSerge Semin
12164c05f0SSerge SeminallOf:
13164c05f0SSerge Semin  - $ref: "spi-controller.yaml#"
14164c05f0SSerge Semin  - if:
15164c05f0SSerge Semin      properties:
16164c05f0SSerge Semin        compatible:
17164c05f0SSerge Semin          contains:
18164c05f0SSerge Semin            enum:
19164c05f0SSerge Semin              - mscc,ocelot-spi
20164c05f0SSerge Semin              - mscc,jaguar2-spi
21164c05f0SSerge Semin    then:
22164c05f0SSerge Semin      properties:
23164c05f0SSerge Semin        reg:
24164c05f0SSerge Semin          minItems: 2
25ca4e2ac2SSerge Semin  - if:
26ca4e2ac2SSerge Semin      properties:
27ca4e2ac2SSerge Semin        compatible:
28ca4e2ac2SSerge Semin          contains:
29ca4e2ac2SSerge Semin            enum:
30ca4e2ac2SSerge Semin              - baikal,bt1-sys-ssi
31ca4e2ac2SSerge Semin    then:
32ca4e2ac2SSerge Semin      properties:
33ca4e2ac2SSerge Semin        mux-controls:
34ca4e2ac2SSerge Semin          maxItems: 1
35ca4e2ac2SSerge Semin      required:
36ca4e2ac2SSerge Semin        - mux-controls
37ca4e2ac2SSerge Semin    else:
38ca4e2ac2SSerge Semin      required:
39ca4e2ac2SSerge Semin        - interrupts
40164c05f0SSerge Semin
41164c05f0SSerge Seminproperties:
42164c05f0SSerge Semin  compatible:
43164c05f0SSerge Semin    oneOf:
44164c05f0SSerge Semin      - description: Generic DW SPI Controller
45164c05f0SSerge Semin        enum:
46164c05f0SSerge Semin          - snps,dw-apb-ssi
47164c05f0SSerge Semin          - snps,dwc-ssi-1.01a
48164c05f0SSerge Semin      - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller
49164c05f0SSerge Semin        items:
50164c05f0SSerge Semin          - enum:
51164c05f0SSerge Semin              - mscc,ocelot-spi
52164c05f0SSerge Semin              - mscc,jaguar2-spi
53164c05f0SSerge Semin          - const: snps,dw-apb-ssi
545ce78f44SLars Povlsen      - description: Microchip Sparx5 SoC SPI Controller
555ce78f44SLars Povlsen        const: microchip,sparx5-spi
56164c05f0SSerge Semin      - description: Amazon Alpine SPI Controller
57164c05f0SSerge Semin        const: amazon,alpine-dw-apb-ssi
58164c05f0SSerge Semin      - description: Renesas RZ/N1 SPI Controller
59164c05f0SSerge Semin        items:
60164c05f0SSerge Semin          - const: renesas,rzn1-spi
61164c05f0SSerge Semin          - const: snps,dw-apb-ssi
62164c05f0SSerge Semin      - description: Intel Keem Bay SPI Controller
63164c05f0SSerge Semin        const: intel,keembay-ssi
64ca4e2ac2SSerge Semin      - description: Baikal-T1 SPI Controller
65ca4e2ac2SSerge Semin        const: baikal,bt1-ssi
66ca4e2ac2SSerge Semin      - description: Baikal-T1 System Boot SPI Controller
67ca4e2ac2SSerge Semin        const: baikal,bt1-sys-ssi
687b14a272SDamien Le Moal      - description: Canaan Kendryte K210 SoS SPI Controller
697b14a272SDamien Le Moal        const: canaan,k210-spi
70029d32a8SGeert Uytterhoeven      - description: Renesas RZ/N1 SPI Controller
71029d32a8SGeert Uytterhoeven        items:
72029d32a8SGeert Uytterhoeven          - enum:
73029d32a8SGeert Uytterhoeven              - renesas,r9a06g032-spi # RZ/N1D
74029d32a8SGeert Uytterhoeven              - renesas,r9a06g033-spi # RZ/N1S
75029d32a8SGeert Uytterhoeven          - const: renesas,rzn1-spi   # RZ/N1
76164c05f0SSerge Semin
77164c05f0SSerge Semin  reg:
78164c05f0SSerge Semin    minItems: 1
79164c05f0SSerge Semin    items:
80164c05f0SSerge Semin      - description: DW APB SSI controller memory mapped registers
81ca4e2ac2SSerge Semin      - description: SPI MST region map or directly mapped SPI ROM
82164c05f0SSerge Semin
83164c05f0SSerge Semin  interrupts:
84164c05f0SSerge Semin    maxItems: 1
85164c05f0SSerge Semin
86164c05f0SSerge Semin  clocks:
87164c05f0SSerge Semin    minItems: 1
88164c05f0SSerge Semin    items:
89164c05f0SSerge Semin      - description: SPI Controller reference clock source
90164c05f0SSerge Semin      - description: APB interface clock source
91164c05f0SSerge Semin
92164c05f0SSerge Semin  clock-names:
93164c05f0SSerge Semin    minItems: 1
94164c05f0SSerge Semin    items:
95164c05f0SSerge Semin      - const: ssi_clk
96164c05f0SSerge Semin      - const: pclk
97164c05f0SSerge Semin
98164c05f0SSerge Semin  resets:
99164c05f0SSerge Semin    maxItems: 1
100164c05f0SSerge Semin
101164c05f0SSerge Semin  reset-names:
102164c05f0SSerge Semin    const: spi
103164c05f0SSerge Semin
104164c05f0SSerge Semin  reg-io-width:
105164c05f0SSerge Semin    $ref: /schemas/types.yaml#/definitions/uint32
106164c05f0SSerge Semin    description: I/O register width (in bytes) implemented by this device
107164c05f0SSerge Semin    default: 4
108164c05f0SSerge Semin    enum: [ 2, 4 ]
109164c05f0SSerge Semin
110164c05f0SSerge Semin  num-cs:
111164c05f0SSerge Semin    default: 4
112164c05f0SSerge Semin    minimum: 1
113164c05f0SSerge Semin    maximum: 4
114164c05f0SSerge Semin
115164c05f0SSerge Semin  dmas:
116164c05f0SSerge Semin    items:
117164c05f0SSerge Semin      - description: TX DMA Channel
118164c05f0SSerge Semin      - description: RX DMA Channel
119164c05f0SSerge Semin
120164c05f0SSerge Semin  dma-names:
121164c05f0SSerge Semin    items:
122164c05f0SSerge Semin      - const: tx
123164c05f0SSerge Semin      - const: rx
124164c05f0SSerge Semin
1255ce78f44SLars Povlsen  rx-sample-delay-ns:
1265ce78f44SLars Povlsen    default: 0
127*b658be56SRob Herring    description: |
128*b658be56SRob Herring      Default value of the rx-sample-delay-ns property.
1295ce78f44SLars Povlsen      This value will be used if the property is not explicitly defined
130*b658be56SRob Herring      for a SPI slave device.
131*b658be56SRob Herring
132*b658be56SRob Herring      SPI Rx sample delay offset, unit is nanoseconds.
133*b658be56SRob Herring      The delay from the default sample time before the actual sample of the
134*b658be56SRob Herring      rxd input signal occurs. The "rx_sample_delay" is an optional feature
135*b658be56SRob Herring      of the designware controller, and the upper limit is also subject to
136*b658be56SRob Herring      controller configuration.
1375ce78f44SLars Povlsen
138164c05f0SSerge SeminpatternProperties:
139164c05f0SSerge Semin  "^.*@[0-9a-f]+$":
140164c05f0SSerge Semin    type: object
141164c05f0SSerge Semin    properties:
142164c05f0SSerge Semin      reg:
143164c05f0SSerge Semin        minimum: 0
144164c05f0SSerge Semin        maximum: 3
145164c05f0SSerge Semin
146164c05f0SSerge Semin      spi-rx-bus-width:
147164c05f0SSerge Semin        const: 1
148164c05f0SSerge Semin
149164c05f0SSerge Semin      spi-tx-bus-width:
150164c05f0SSerge Semin        const: 1
151164c05f0SSerge Semin
152164c05f0SSerge SeminunevaluatedProperties: false
153164c05f0SSerge Semin
154164c05f0SSerge Seminrequired:
155164c05f0SSerge Semin  - compatible
156164c05f0SSerge Semin  - reg
157164c05f0SSerge Semin  - "#address-cells"
158164c05f0SSerge Semin  - "#size-cells"
159164c05f0SSerge Semin  - clocks
160164c05f0SSerge Semin
161164c05f0SSerge Seminexamples:
162164c05f0SSerge Semin  - |
163164c05f0SSerge Semin    spi@fff00000 {
164164c05f0SSerge Semin      compatible = "snps,dw-apb-ssi";
165164c05f0SSerge Semin      reg = <0xfff00000 0x1000>;
166164c05f0SSerge Semin      #address-cells = <1>;
167164c05f0SSerge Semin      #size-cells = <0>;
168164c05f0SSerge Semin      interrupts = <0 154 4>;
169164c05f0SSerge Semin      clocks = <&spi_m_clk>;
170164c05f0SSerge Semin      num-cs = <2>;
171164c05f0SSerge Semin      cs-gpios = <&gpio0 13 0>,
172164c05f0SSerge Semin                 <&gpio0 14 0>;
1735ce78f44SLars Povlsen      rx-sample-delay-ns = <3>;
174d7a48e27SApurva Nandan      flash@1 {
1755ce78f44SLars Povlsen        compatible = "spi-nand";
1765ce78f44SLars Povlsen        reg = <1>;
1775ce78f44SLars Povlsen        rx-sample-delay-ns = <7>;
1785ce78f44SLars Povlsen      };
179164c05f0SSerge Semin    };
180ca4e2ac2SSerge Semin  - |
181ca4e2ac2SSerge Semin    spi@1f040100 {
182ca4e2ac2SSerge Semin      compatible = "baikal,bt1-sys-ssi";
183ca4e2ac2SSerge Semin      reg = <0x1f040100 0x900>,
184ca4e2ac2SSerge Semin            <0x1c000000 0x1000000>;
185ca4e2ac2SSerge Semin      #address-cells = <1>;
186ca4e2ac2SSerge Semin      #size-cells = <0>;
187ca4e2ac2SSerge Semin      mux-controls = <&boot_mux>;
188ca4e2ac2SSerge Semin      clocks = <&ccu_sys>;
189ca4e2ac2SSerge Semin      clock-names = "ssi_clk";
190ca4e2ac2SSerge Semin    };
191164c05f0SSerge Semin...
192