xref: /freebsd/sys/contrib/device-tree/Bindings/spi/snps,dw-apb-ssi.yaml (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/spi/snps,dw-apb-ssi.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Synopsys DesignWare AMBA 2.0 Synchronous Serial Interface
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Mark Brown <broonie@kernel.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel VadotallOf:
13c66ec88fSEmmanuel Vadot  - $ref: "spi-controller.yaml#"
14c66ec88fSEmmanuel Vadot  - if:
15c66ec88fSEmmanuel Vadot      properties:
16c66ec88fSEmmanuel Vadot        compatible:
17c66ec88fSEmmanuel Vadot          contains:
18c66ec88fSEmmanuel Vadot            enum:
19c66ec88fSEmmanuel Vadot              - mscc,ocelot-spi
20c66ec88fSEmmanuel Vadot              - mscc,jaguar2-spi
21c66ec88fSEmmanuel Vadot    then:
22c66ec88fSEmmanuel Vadot      properties:
23c66ec88fSEmmanuel Vadot        reg:
24c66ec88fSEmmanuel Vadot          minItems: 2
256be33864SEmmanuel Vadot  - if:
266be33864SEmmanuel Vadot      properties:
276be33864SEmmanuel Vadot        compatible:
286be33864SEmmanuel Vadot          contains:
296be33864SEmmanuel Vadot            enum:
306be33864SEmmanuel Vadot              - baikal,bt1-sys-ssi
316be33864SEmmanuel Vadot    then:
326be33864SEmmanuel Vadot      properties:
336be33864SEmmanuel Vadot        mux-controls:
346be33864SEmmanuel Vadot          maxItems: 1
356be33864SEmmanuel Vadot      required:
366be33864SEmmanuel Vadot        - mux-controls
376be33864SEmmanuel Vadot    else:
386be33864SEmmanuel Vadot      required:
396be33864SEmmanuel Vadot        - interrupts
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadotproperties:
42c66ec88fSEmmanuel Vadot  compatible:
43c66ec88fSEmmanuel Vadot    oneOf:
44c66ec88fSEmmanuel Vadot      - description: Generic DW SPI Controller
45c66ec88fSEmmanuel Vadot        enum:
46c66ec88fSEmmanuel Vadot          - snps,dw-apb-ssi
47c66ec88fSEmmanuel Vadot          - snps,dwc-ssi-1.01a
48c66ec88fSEmmanuel Vadot      - description: Microsemi Ocelot/Jaguar2 SoC SPI Controller
49c66ec88fSEmmanuel Vadot        items:
50c66ec88fSEmmanuel Vadot          - enum:
51c66ec88fSEmmanuel Vadot              - mscc,ocelot-spi
52c66ec88fSEmmanuel Vadot              - mscc,jaguar2-spi
53c66ec88fSEmmanuel Vadot          - const: snps,dw-apb-ssi
546be33864SEmmanuel Vadot      - description: Microchip Sparx5 SoC SPI Controller
556be33864SEmmanuel Vadot        const: microchip,sparx5-spi
56c66ec88fSEmmanuel Vadot      - description: Amazon Alpine SPI Controller
57c66ec88fSEmmanuel Vadot        const: amazon,alpine-dw-apb-ssi
58c66ec88fSEmmanuel Vadot      - description: Renesas RZ/N1 SPI Controller
59c66ec88fSEmmanuel Vadot        items:
60c66ec88fSEmmanuel Vadot          - const: renesas,rzn1-spi
61c66ec88fSEmmanuel Vadot          - const: snps,dw-apb-ssi
62c66ec88fSEmmanuel Vadot      - description: Intel Keem Bay SPI Controller
63c66ec88fSEmmanuel Vadot        const: intel,keembay-ssi
64*b97ee269SEmmanuel Vadot      - description: Intel Thunder Bay SPI Controller
65*b97ee269SEmmanuel Vadot        const: intel,thunderbay-ssi
666be33864SEmmanuel Vadot      - description: Baikal-T1 SPI Controller
676be33864SEmmanuel Vadot        const: baikal,bt1-ssi
686be33864SEmmanuel Vadot      - description: Baikal-T1 System Boot SPI Controller
696be33864SEmmanuel Vadot        const: baikal,bt1-sys-ssi
705def4c47SEmmanuel Vadot      - description: Canaan Kendryte K210 SoS SPI Controller
715def4c47SEmmanuel Vadot        const: canaan,k210-spi
725956d97fSEmmanuel Vadot      - description: Renesas RZ/N1 SPI Controller
735956d97fSEmmanuel Vadot        items:
745956d97fSEmmanuel Vadot          - enum:
755956d97fSEmmanuel Vadot              - renesas,r9a06g032-spi # RZ/N1D
765956d97fSEmmanuel Vadot              - renesas,r9a06g033-spi # RZ/N1S
775956d97fSEmmanuel Vadot          - const: renesas,rzn1-spi   # RZ/N1
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot  reg:
80c66ec88fSEmmanuel Vadot    minItems: 1
81c66ec88fSEmmanuel Vadot    items:
82c66ec88fSEmmanuel Vadot      - description: DW APB SSI controller memory mapped registers
836be33864SEmmanuel Vadot      - description: SPI MST region map or directly mapped SPI ROM
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot  interrupts:
86c66ec88fSEmmanuel Vadot    maxItems: 1
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadot  clocks:
89c66ec88fSEmmanuel Vadot    minItems: 1
90c66ec88fSEmmanuel Vadot    items:
91c66ec88fSEmmanuel Vadot      - description: SPI Controller reference clock source
92c66ec88fSEmmanuel Vadot      - description: APB interface clock source
93c66ec88fSEmmanuel Vadot
94c66ec88fSEmmanuel Vadot  clock-names:
95c66ec88fSEmmanuel Vadot    minItems: 1
96c66ec88fSEmmanuel Vadot    items:
97c66ec88fSEmmanuel Vadot      - const: ssi_clk
98c66ec88fSEmmanuel Vadot      - const: pclk
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadot  resets:
101c66ec88fSEmmanuel Vadot    maxItems: 1
102c66ec88fSEmmanuel Vadot
103c66ec88fSEmmanuel Vadot  reset-names:
104c66ec88fSEmmanuel Vadot    const: spi
105c66ec88fSEmmanuel Vadot
106c66ec88fSEmmanuel Vadot  reg-io-width:
107c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
108c66ec88fSEmmanuel Vadot    description: I/O register width (in bytes) implemented by this device
109c66ec88fSEmmanuel Vadot    default: 4
110c66ec88fSEmmanuel Vadot    enum: [ 2, 4 ]
111c66ec88fSEmmanuel Vadot
112c66ec88fSEmmanuel Vadot  num-cs:
113c66ec88fSEmmanuel Vadot    default: 4
114c66ec88fSEmmanuel Vadot    minimum: 1
115c66ec88fSEmmanuel Vadot    maximum: 4
116c66ec88fSEmmanuel Vadot
117c66ec88fSEmmanuel Vadot  dmas:
118c66ec88fSEmmanuel Vadot    items:
119c66ec88fSEmmanuel Vadot      - description: TX DMA Channel
120c66ec88fSEmmanuel Vadot      - description: RX DMA Channel
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot  dma-names:
123c66ec88fSEmmanuel Vadot    items:
124c66ec88fSEmmanuel Vadot      - const: tx
125c66ec88fSEmmanuel Vadot      - const: rx
126c66ec88fSEmmanuel Vadot
1276be33864SEmmanuel Vadot  rx-sample-delay-ns:
1286be33864SEmmanuel Vadot    default: 0
129*b97ee269SEmmanuel Vadot    description: |
130*b97ee269SEmmanuel Vadot      Default value of the rx-sample-delay-ns property.
1316be33864SEmmanuel Vadot      This value will be used if the property is not explicitly defined
132*b97ee269SEmmanuel Vadot      for a SPI slave device.
133*b97ee269SEmmanuel Vadot
134*b97ee269SEmmanuel Vadot      SPI Rx sample delay offset, unit is nanoseconds.
135*b97ee269SEmmanuel Vadot      The delay from the default sample time before the actual sample of the
136*b97ee269SEmmanuel Vadot      rxd input signal occurs. The "rx_sample_delay" is an optional feature
137*b97ee269SEmmanuel Vadot      of the designware controller, and the upper limit is also subject to
138*b97ee269SEmmanuel Vadot      controller configuration.
1396be33864SEmmanuel Vadot
140c66ec88fSEmmanuel VadotpatternProperties:
141c66ec88fSEmmanuel Vadot  "^.*@[0-9a-f]+$":
142c66ec88fSEmmanuel Vadot    type: object
143c66ec88fSEmmanuel Vadot    properties:
144c66ec88fSEmmanuel Vadot      reg:
145c66ec88fSEmmanuel Vadot        minimum: 0
146c66ec88fSEmmanuel Vadot        maximum: 3
147c66ec88fSEmmanuel Vadot
148c66ec88fSEmmanuel VadotunevaluatedProperties: false
149c66ec88fSEmmanuel Vadot
150c66ec88fSEmmanuel Vadotrequired:
151c66ec88fSEmmanuel Vadot  - compatible
152c66ec88fSEmmanuel Vadot  - reg
153c66ec88fSEmmanuel Vadot  - "#address-cells"
154c66ec88fSEmmanuel Vadot  - "#size-cells"
155c66ec88fSEmmanuel Vadot  - clocks
156c66ec88fSEmmanuel Vadot
157c66ec88fSEmmanuel Vadotexamples:
158c66ec88fSEmmanuel Vadot  - |
159c66ec88fSEmmanuel Vadot    spi@fff00000 {
160c66ec88fSEmmanuel Vadot      compatible = "snps,dw-apb-ssi";
161c66ec88fSEmmanuel Vadot      reg = <0xfff00000 0x1000>;
162c66ec88fSEmmanuel Vadot      #address-cells = <1>;
163c66ec88fSEmmanuel Vadot      #size-cells = <0>;
164c66ec88fSEmmanuel Vadot      interrupts = <0 154 4>;
165c66ec88fSEmmanuel Vadot      clocks = <&spi_m_clk>;
166c66ec88fSEmmanuel Vadot      num-cs = <2>;
167c66ec88fSEmmanuel Vadot      cs-gpios = <&gpio0 13 0>,
168c66ec88fSEmmanuel Vadot                 <&gpio0 14 0>;
1696be33864SEmmanuel Vadot      rx-sample-delay-ns = <3>;
170354d7675SEmmanuel Vadot      flash@1 {
1716be33864SEmmanuel Vadot        compatible = "spi-nand";
1726be33864SEmmanuel Vadot        reg = <1>;
1736be33864SEmmanuel Vadot        rx-sample-delay-ns = <7>;
1746be33864SEmmanuel Vadot      };
1756be33864SEmmanuel Vadot    };
1766be33864SEmmanuel Vadot  - |
1776be33864SEmmanuel Vadot    spi@1f040100 {
1786be33864SEmmanuel Vadot      compatible = "baikal,bt1-sys-ssi";
1796be33864SEmmanuel Vadot      reg = <0x1f040100 0x900>,
1806be33864SEmmanuel Vadot            <0x1c000000 0x1000000>;
1816be33864SEmmanuel Vadot      #address-cells = <1>;
1826be33864SEmmanuel Vadot      #size-cells = <0>;
1836be33864SEmmanuel Vadot      mux-controls = <&boot_mux>;
1846be33864SEmmanuel Vadot      clocks = <&ccu_sys>;
1856be33864SEmmanuel Vadot      clock-names = "ssi_clk";
186c66ec88fSEmmanuel Vadot    };
187c66ec88fSEmmanuel Vadot...
188