xref: /openbmc/linux/Documentation/devicetree/bindings/spi/renesas,rspi.yaml (revision 6fdc6e23a7d13e4f7f7908b42d39595195716a61)
1999866c9SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2999866c9SGeert Uytterhoeven%YAML 1.2
3999866c9SGeert Uytterhoeven---
4999866c9SGeert Uytterhoeven$id: http://devicetree.org/schemas/spi/renesas,rspi.yaml#
5999866c9SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6999866c9SGeert Uytterhoeven
7999866c9SGeert Uytterhoeventitle: Renesas (Quad) Serial Peripheral Interface (RSPI/QSPI)
8999866c9SGeert Uytterhoeven
9999866c9SGeert Uytterhoevenmaintainers:
10999866c9SGeert Uytterhoeven  - Geert Uytterhoeven <geert+renesas@glider.be>
11999866c9SGeert Uytterhoeven
12999866c9SGeert Uytterhoevenproperties:
13999866c9SGeert Uytterhoeven  compatible:
14999866c9SGeert Uytterhoeven    oneOf:
15999866c9SGeert Uytterhoeven      - items:
16999866c9SGeert Uytterhoeven          - enum:
17999866c9SGeert Uytterhoeven              - renesas,rspi-sh7757    # SH7757
18999866c9SGeert Uytterhoeven          - const: renesas,rspi        # Legacy SH
19999866c9SGeert Uytterhoeven
20999866c9SGeert Uytterhoeven      - items:
21999866c9SGeert Uytterhoeven          - enum:
22999866c9SGeert Uytterhoeven              - renesas,rspi-r7s72100  # RZ/A1H
23999866c9SGeert Uytterhoeven              - renesas,rspi-r7s9210   # RZ/A2
24999866c9SGeert Uytterhoeven          - const: renesas,rspi-rz     # RZ/A
25999866c9SGeert Uytterhoeven
26999866c9SGeert Uytterhoeven      - items:
27999866c9SGeert Uytterhoeven          - enum:
28999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7743   # RZ/G1M
29999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7744   # RZ/G1N
30999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7745   # RZ/G1E
31999866c9SGeert Uytterhoeven              - renesas,qspi-r8a77470  # RZ/G1C
32999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7790   # R-Car H2
33999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7791   # R-Car M2-W
34999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7792   # R-Car V2H
35999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7793   # R-Car M2-N
36999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7794   # R-Car E2
37999866c9SGeert Uytterhoeven          - const: renesas,qspi        # R-Car Gen2 and RZ/G1
38999866c9SGeert Uytterhoeven
39999866c9SGeert Uytterhoeven  reg:
40999866c9SGeert Uytterhoeven    maxItems: 1
41999866c9SGeert Uytterhoeven
42999866c9SGeert Uytterhoeven  interrupts:
43999866c9SGeert Uytterhoeven    oneOf:
44999866c9SGeert Uytterhoeven      - items:
45999866c9SGeert Uytterhoeven          - description: A combined interrupt
46999866c9SGeert Uytterhoeven      - items:
47999866c9SGeert Uytterhoeven          - description: Error interrupt (SPEI)
48999866c9SGeert Uytterhoeven          - description: Receive Interrupt (SPRI)
49999866c9SGeert Uytterhoeven          - description: Transmit Interrupt (SPTI)
50999866c9SGeert Uytterhoeven
51999866c9SGeert Uytterhoeven  interrupt-names:
52999866c9SGeert Uytterhoeven    oneOf:
53999866c9SGeert Uytterhoeven      - items:
54999866c9SGeert Uytterhoeven          - const: mux
55999866c9SGeert Uytterhoeven      - items:
56999866c9SGeert Uytterhoeven          - const: error
57999866c9SGeert Uytterhoeven          - const: rx
58999866c9SGeert Uytterhoeven          - const: tx
59999866c9SGeert Uytterhoeven
60999866c9SGeert Uytterhoeven  clocks:
61999866c9SGeert Uytterhoeven    maxItems: 1
62999866c9SGeert Uytterhoeven
63999866c9SGeert Uytterhoeven  power-domains:
64999866c9SGeert Uytterhoeven    maxItems: 1
65999866c9SGeert Uytterhoeven
66999866c9SGeert Uytterhoeven  resets:
67999866c9SGeert Uytterhoeven    maxItems: 1
68999866c9SGeert Uytterhoeven
69999866c9SGeert Uytterhoeven  dmas:
70999866c9SGeert Uytterhoeven    description:
71999866c9SGeert Uytterhoeven      Must contain a list of pairs of references to DMA specifiers, one for
72999866c9SGeert Uytterhoeven      transmission, and one for reception.
73999866c9SGeert Uytterhoeven
74999866c9SGeert Uytterhoeven  dma-names:
75999866c9SGeert Uytterhoeven    minItems: 2
76999866c9SGeert Uytterhoeven    maxItems: 4
77999866c9SGeert Uytterhoeven    items:
78999866c9SGeert Uytterhoeven      enum:
79999866c9SGeert Uytterhoeven        - tx
80999866c9SGeert Uytterhoeven        - rx
81999866c9SGeert Uytterhoeven
82999866c9SGeert Uytterhoeven  num-cs:
83999866c9SGeert Uytterhoeven    description: |
84999866c9SGeert Uytterhoeven      Total number of native chip selects.
85999866c9SGeert Uytterhoeven      Hardware limitations related to chip selects:
86999866c9SGeert Uytterhoeven        - When using GPIO chip selects, at least one native chip select must
87999866c9SGeert Uytterhoeven          be left unused, as it will be driven anyway.
88999866c9SGeert Uytterhoeven    minimum: 1
89999866c9SGeert Uytterhoeven    maximum: 2
90999866c9SGeert Uytterhoeven    default: 1
91999866c9SGeert Uytterhoeven
92999866c9SGeert Uytterhoevenrequired:
93999866c9SGeert Uytterhoeven  - compatible
94999866c9SGeert Uytterhoeven  - reg
95999866c9SGeert Uytterhoeven  - interrupts
96999866c9SGeert Uytterhoeven  - clocks
97999866c9SGeert Uytterhoeven  - power-domains
98999866c9SGeert Uytterhoeven  - '#address-cells'
99999866c9SGeert Uytterhoeven  - '#size-cells'
100999866c9SGeert Uytterhoeven
101999866c9SGeert UytterhoevenallOf:
102999866c9SGeert Uytterhoeven  - $ref: spi-controller.yaml#
103999866c9SGeert Uytterhoeven  - if:
104999866c9SGeert Uytterhoeven      properties:
105999866c9SGeert Uytterhoeven        compatible:
106999866c9SGeert Uytterhoeven          contains:
107999866c9SGeert Uytterhoeven            enum:
108999866c9SGeert Uytterhoeven              - renesas,rspi-rz
109999866c9SGeert Uytterhoeven    then:
110999866c9SGeert Uytterhoeven      properties:
111999866c9SGeert Uytterhoeven        interrupts:
112999866c9SGeert Uytterhoeven          minItems: 3
113999866c9SGeert Uytterhoeven      required:
114999866c9SGeert Uytterhoeven        - interrupt-names
115999866c9SGeert Uytterhoeven
116999866c9SGeert Uytterhoeven  - if:
117999866c9SGeert Uytterhoeven      properties:
118999866c9SGeert Uytterhoeven        compatible:
119999866c9SGeert Uytterhoeven          contains:
120999866c9SGeert Uytterhoeven            enum:
121999866c9SGeert Uytterhoeven              - renesas,qspi
122999866c9SGeert Uytterhoeven    then:
123999866c9SGeert Uytterhoeven      required:
124999866c9SGeert Uytterhoeven        - resets
125999866c9SGeert Uytterhoeven
126*6fdc6e23SRob HerringunevaluatedProperties: false
127*6fdc6e23SRob Herring
128999866c9SGeert Uytterhoevenexamples:
129999866c9SGeert Uytterhoeven  - |
130999866c9SGeert Uytterhoeven    #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
131999866c9SGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
132999866c9SGeert Uytterhoeven    #include <dt-bindings/power/r8a7791-sysc.h>
133999866c9SGeert Uytterhoeven
134999866c9SGeert Uytterhoeven    qspi: spi@e6b10000 {
135999866c9SGeert Uytterhoeven            compatible = "renesas,qspi-r8a7791", "renesas,qspi";
136999866c9SGeert Uytterhoeven            reg = <0xe6b10000 0x2c>;
137999866c9SGeert Uytterhoeven            interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
138999866c9SGeert Uytterhoeven            clocks = <&cpg CPG_MOD 917>;
139999866c9SGeert Uytterhoeven            dmas = <&dmac0 0x17>, <&dmac0 0x18>, <&dmac1 0x17>, <&dmac1 0x18>;
140999866c9SGeert Uytterhoeven            dma-names = "tx", "rx", "tx", "rx";
141999866c9SGeert Uytterhoeven            power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
142999866c9SGeert Uytterhoeven            resets = <&cpg 917>;
143999866c9SGeert Uytterhoeven            num-cs = <1>;
144999866c9SGeert Uytterhoeven            #address-cells = <1>;
145999866c9SGeert Uytterhoeven            #size-cells = <0>;
146999866c9SGeert Uytterhoeven    };
147