xref: /openbmc/linux/Documentation/devicetree/bindings/spi/snps,dw-apb-ssi.yaml (revision 0d085723c637fd6929b8926a2963de1c2307cfa1)
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
64*0d085723SNandhini Srikandan      - description: Intel Thunder Bay SPI Controller
65*0d085723SNandhini Srikandan        const: intel,thunderbay-ssi
66ca4e2ac2SSerge Semin      - description: Baikal-T1 SPI Controller
67ca4e2ac2SSerge Semin        const: baikal,bt1-ssi
68ca4e2ac2SSerge Semin      - description: Baikal-T1 System Boot SPI Controller
69ca4e2ac2SSerge Semin        const: baikal,bt1-sys-ssi
707b14a272SDamien Le Moal      - description: Canaan Kendryte K210 SoS SPI Controller
717b14a272SDamien Le Moal        const: canaan,k210-spi
72029d32a8SGeert Uytterhoeven      - description: Renesas RZ/N1 SPI Controller
73029d32a8SGeert Uytterhoeven        items:
74029d32a8SGeert Uytterhoeven          - enum:
75029d32a8SGeert Uytterhoeven              - renesas,r9a06g032-spi # RZ/N1D
76029d32a8SGeert Uytterhoeven              - renesas,r9a06g033-spi # RZ/N1S
77029d32a8SGeert Uytterhoeven          - const: renesas,rzn1-spi   # RZ/N1
78164c05f0SSerge Semin
79164c05f0SSerge Semin  reg:
80164c05f0SSerge Semin    minItems: 1
81164c05f0SSerge Semin    items:
82164c05f0SSerge Semin      - description: DW APB SSI controller memory mapped registers
83ca4e2ac2SSerge Semin      - description: SPI MST region map or directly mapped SPI ROM
84164c05f0SSerge Semin
85164c05f0SSerge Semin  interrupts:
86164c05f0SSerge Semin    maxItems: 1
87164c05f0SSerge Semin
88164c05f0SSerge Semin  clocks:
89164c05f0SSerge Semin    minItems: 1
90164c05f0SSerge Semin    items:
91164c05f0SSerge Semin      - description: SPI Controller reference clock source
92164c05f0SSerge Semin      - description: APB interface clock source
93164c05f0SSerge Semin
94164c05f0SSerge Semin  clock-names:
95164c05f0SSerge Semin    minItems: 1
96164c05f0SSerge Semin    items:
97164c05f0SSerge Semin      - const: ssi_clk
98164c05f0SSerge Semin      - const: pclk
99164c05f0SSerge Semin
100164c05f0SSerge Semin  resets:
101164c05f0SSerge Semin    maxItems: 1
102164c05f0SSerge Semin
103164c05f0SSerge Semin  reset-names:
104164c05f0SSerge Semin    const: spi
105164c05f0SSerge Semin
106164c05f0SSerge Semin  reg-io-width:
107164c05f0SSerge Semin    $ref: /schemas/types.yaml#/definitions/uint32
108164c05f0SSerge Semin    description: I/O register width (in bytes) implemented by this device
109164c05f0SSerge Semin    default: 4
110164c05f0SSerge Semin    enum: [ 2, 4 ]
111164c05f0SSerge Semin
112164c05f0SSerge Semin  num-cs:
113164c05f0SSerge Semin    default: 4
114164c05f0SSerge Semin    minimum: 1
115164c05f0SSerge Semin    maximum: 4
116164c05f0SSerge Semin
117164c05f0SSerge Semin  dmas:
118164c05f0SSerge Semin    items:
119164c05f0SSerge Semin      - description: TX DMA Channel
120164c05f0SSerge Semin      - description: RX DMA Channel
121164c05f0SSerge Semin
122164c05f0SSerge Semin  dma-names:
123164c05f0SSerge Semin    items:
124164c05f0SSerge Semin      - const: tx
125164c05f0SSerge Semin      - const: rx
126164c05f0SSerge Semin
1275ce78f44SLars Povlsen  rx-sample-delay-ns:
1285ce78f44SLars Povlsen    default: 0
129b658be56SRob Herring    description: |
130b658be56SRob Herring      Default value of the rx-sample-delay-ns property.
1315ce78f44SLars Povlsen      This value will be used if the property is not explicitly defined
132b658be56SRob Herring      for a SPI slave device.
133b658be56SRob Herring
134b658be56SRob Herring      SPI Rx sample delay offset, unit is nanoseconds.
135b658be56SRob Herring      The delay from the default sample time before the actual sample of the
136b658be56SRob Herring      rxd input signal occurs. The "rx_sample_delay" is an optional feature
137b658be56SRob Herring      of the designware controller, and the upper limit is also subject to
138b658be56SRob Herring      controller configuration.
1395ce78f44SLars Povlsen
140164c05f0SSerge SeminpatternProperties:
141164c05f0SSerge Semin  "^.*@[0-9a-f]+$":
142164c05f0SSerge Semin    type: object
143164c05f0SSerge Semin    properties:
144164c05f0SSerge Semin      reg:
145164c05f0SSerge Semin        minimum: 0
146164c05f0SSerge Semin        maximum: 3
147164c05f0SSerge Semin
148164c05f0SSerge SeminunevaluatedProperties: false
149164c05f0SSerge Semin
150164c05f0SSerge Seminrequired:
151164c05f0SSerge Semin  - compatible
152164c05f0SSerge Semin  - reg
153164c05f0SSerge Semin  - "#address-cells"
154164c05f0SSerge Semin  - "#size-cells"
155164c05f0SSerge Semin  - clocks
156164c05f0SSerge Semin
157164c05f0SSerge Seminexamples:
158164c05f0SSerge Semin  - |
159164c05f0SSerge Semin    spi@fff00000 {
160164c05f0SSerge Semin      compatible = "snps,dw-apb-ssi";
161164c05f0SSerge Semin      reg = <0xfff00000 0x1000>;
162164c05f0SSerge Semin      #address-cells = <1>;
163164c05f0SSerge Semin      #size-cells = <0>;
164164c05f0SSerge Semin      interrupts = <0 154 4>;
165164c05f0SSerge Semin      clocks = <&spi_m_clk>;
166164c05f0SSerge Semin      num-cs = <2>;
167164c05f0SSerge Semin      cs-gpios = <&gpio0 13 0>,
168164c05f0SSerge Semin                 <&gpio0 14 0>;
1695ce78f44SLars Povlsen      rx-sample-delay-ns = <3>;
170d7a48e27SApurva Nandan      flash@1 {
1715ce78f44SLars Povlsen        compatible = "spi-nand";
1725ce78f44SLars Povlsen        reg = <1>;
1735ce78f44SLars Povlsen        rx-sample-delay-ns = <7>;
1745ce78f44SLars Povlsen      };
175164c05f0SSerge Semin    };
176ca4e2ac2SSerge Semin  - |
177ca4e2ac2SSerge Semin    spi@1f040100 {
178ca4e2ac2SSerge Semin      compatible = "baikal,bt1-sys-ssi";
179ca4e2ac2SSerge Semin      reg = <0x1f040100 0x900>,
180ca4e2ac2SSerge Semin            <0x1c000000 0x1000000>;
181ca4e2ac2SSerge Semin      #address-cells = <1>;
182ca4e2ac2SSerge Semin      #size-cells = <0>;
183ca4e2ac2SSerge Semin      mux-controls = <&boot_mux>;
184ca4e2ac2SSerge Semin      clocks = <&ccu_sys>;
185ca4e2ac2SSerge Semin      clock-names = "ssi_clk";
186ca4e2ac2SSerge Semin    };
187164c05f0SSerge Semin...
188