xref: /openbmc/linux/Documentation/devicetree/bindings/spi/renesas,rspi.yaml (revision 999866c92f4a333cb776c3e87831feeddef74f96)
1*999866c9SGeert Uytterhoeven# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*999866c9SGeert Uytterhoeven%YAML 1.2
3*999866c9SGeert Uytterhoeven---
4*999866c9SGeert Uytterhoeven$id: http://devicetree.org/schemas/spi/renesas,rspi.yaml#
5*999866c9SGeert Uytterhoeven$schema: http://devicetree.org/meta-schemas/core.yaml#
6*999866c9SGeert Uytterhoeven
7*999866c9SGeert Uytterhoeventitle: Renesas (Quad) Serial Peripheral Interface (RSPI/QSPI)
8*999866c9SGeert Uytterhoeven
9*999866c9SGeert Uytterhoevenmaintainers:
10*999866c9SGeert Uytterhoeven  - Geert Uytterhoeven <geert+renesas@glider.be>
11*999866c9SGeert Uytterhoeven
12*999866c9SGeert Uytterhoevenproperties:
13*999866c9SGeert Uytterhoeven  compatible:
14*999866c9SGeert Uytterhoeven    oneOf:
15*999866c9SGeert Uytterhoeven      - items:
16*999866c9SGeert Uytterhoeven          - enum:
17*999866c9SGeert Uytterhoeven              - renesas,rspi-sh7757    # SH7757
18*999866c9SGeert Uytterhoeven          - const: renesas,rspi        # Legacy SH
19*999866c9SGeert Uytterhoeven
20*999866c9SGeert Uytterhoeven      - items:
21*999866c9SGeert Uytterhoeven          - enum:
22*999866c9SGeert Uytterhoeven              - renesas,rspi-r7s72100  # RZ/A1H
23*999866c9SGeert Uytterhoeven              - renesas,rspi-r7s9210   # RZ/A2
24*999866c9SGeert Uytterhoeven          - const: renesas,rspi-rz     # RZ/A
25*999866c9SGeert Uytterhoeven
26*999866c9SGeert Uytterhoeven      - items:
27*999866c9SGeert Uytterhoeven          - enum:
28*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7743   # RZ/G1M
29*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7744   # RZ/G1N
30*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7745   # RZ/G1E
31*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a77470  # RZ/G1C
32*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7790   # R-Car H2
33*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7791   # R-Car M2-W
34*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7792   # R-Car V2H
35*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7793   # R-Car M2-N
36*999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7794   # R-Car E2
37*999866c9SGeert Uytterhoeven          - const: renesas,qspi        # R-Car Gen2 and RZ/G1
38*999866c9SGeert Uytterhoeven
39*999866c9SGeert Uytterhoeven  reg:
40*999866c9SGeert Uytterhoeven    maxItems: 1
41*999866c9SGeert Uytterhoeven
42*999866c9SGeert Uytterhoeven  interrupts:
43*999866c9SGeert Uytterhoeven    oneOf:
44*999866c9SGeert Uytterhoeven      - items:
45*999866c9SGeert Uytterhoeven          - description: A combined interrupt
46*999866c9SGeert Uytterhoeven      - items:
47*999866c9SGeert Uytterhoeven          - description: Error interrupt (SPEI)
48*999866c9SGeert Uytterhoeven          - description: Receive Interrupt (SPRI)
49*999866c9SGeert Uytterhoeven          - description: Transmit Interrupt (SPTI)
50*999866c9SGeert Uytterhoeven
51*999866c9SGeert Uytterhoeven  interrupt-names:
52*999866c9SGeert Uytterhoeven    oneOf:
53*999866c9SGeert Uytterhoeven      - items:
54*999866c9SGeert Uytterhoeven          - const: mux
55*999866c9SGeert Uytterhoeven      - items:
56*999866c9SGeert Uytterhoeven          - const: error
57*999866c9SGeert Uytterhoeven          - const: rx
58*999866c9SGeert Uytterhoeven          - const: tx
59*999866c9SGeert Uytterhoeven
60*999866c9SGeert Uytterhoeven  clocks:
61*999866c9SGeert Uytterhoeven    maxItems: 1
62*999866c9SGeert Uytterhoeven
63*999866c9SGeert Uytterhoeven  power-domains:
64*999866c9SGeert Uytterhoeven    maxItems: 1
65*999866c9SGeert Uytterhoeven
66*999866c9SGeert Uytterhoeven  resets:
67*999866c9SGeert Uytterhoeven    maxItems: 1
68*999866c9SGeert Uytterhoeven
69*999866c9SGeert Uytterhoeven  dmas:
70*999866c9SGeert Uytterhoeven    description:
71*999866c9SGeert Uytterhoeven      Must contain a list of pairs of references to DMA specifiers, one for
72*999866c9SGeert Uytterhoeven      transmission, and one for reception.
73*999866c9SGeert Uytterhoeven
74*999866c9SGeert Uytterhoeven  dma-names:
75*999866c9SGeert Uytterhoeven    minItems: 2
76*999866c9SGeert Uytterhoeven    maxItems: 4
77*999866c9SGeert Uytterhoeven    items:
78*999866c9SGeert Uytterhoeven      enum:
79*999866c9SGeert Uytterhoeven        - tx
80*999866c9SGeert Uytterhoeven        - rx
81*999866c9SGeert Uytterhoeven
82*999866c9SGeert Uytterhoeven  num-cs:
83*999866c9SGeert Uytterhoeven    description: |
84*999866c9SGeert Uytterhoeven      Total number of native chip selects.
85*999866c9SGeert Uytterhoeven      Hardware limitations related to chip selects:
86*999866c9SGeert Uytterhoeven        - When using GPIO chip selects, at least one native chip select must
87*999866c9SGeert Uytterhoeven          be left unused, as it will be driven anyway.
88*999866c9SGeert Uytterhoeven    minimum: 1
89*999866c9SGeert Uytterhoeven    maximum: 2
90*999866c9SGeert Uytterhoeven    default: 1
91*999866c9SGeert Uytterhoeven
92*999866c9SGeert Uytterhoevenrequired:
93*999866c9SGeert Uytterhoeven  - compatible
94*999866c9SGeert Uytterhoeven  - reg
95*999866c9SGeert Uytterhoeven  - interrupts
96*999866c9SGeert Uytterhoeven  - clocks
97*999866c9SGeert Uytterhoeven  - power-domains
98*999866c9SGeert Uytterhoeven  - '#address-cells'
99*999866c9SGeert Uytterhoeven  - '#size-cells'
100*999866c9SGeert Uytterhoeven
101*999866c9SGeert UytterhoevenallOf:
102*999866c9SGeert Uytterhoeven  - $ref: spi-controller.yaml#
103*999866c9SGeert Uytterhoeven  - if:
104*999866c9SGeert Uytterhoeven      properties:
105*999866c9SGeert Uytterhoeven        compatible:
106*999866c9SGeert Uytterhoeven          contains:
107*999866c9SGeert Uytterhoeven            enum:
108*999866c9SGeert Uytterhoeven              - renesas,rspi-rz
109*999866c9SGeert Uytterhoeven    then:
110*999866c9SGeert Uytterhoeven      properties:
111*999866c9SGeert Uytterhoeven        interrupts:
112*999866c9SGeert Uytterhoeven          minItems: 3
113*999866c9SGeert Uytterhoeven      required:
114*999866c9SGeert Uytterhoeven        - interrupt-names
115*999866c9SGeert Uytterhoeven
116*999866c9SGeert Uytterhoeven  - if:
117*999866c9SGeert Uytterhoeven      properties:
118*999866c9SGeert Uytterhoeven        compatible:
119*999866c9SGeert Uytterhoeven          contains:
120*999866c9SGeert Uytterhoeven            enum:
121*999866c9SGeert Uytterhoeven              - renesas,qspi
122*999866c9SGeert Uytterhoeven    then:
123*999866c9SGeert Uytterhoeven      required:
124*999866c9SGeert Uytterhoeven        - resets
125*999866c9SGeert Uytterhoeven
126*999866c9SGeert Uytterhoevenexamples:
127*999866c9SGeert Uytterhoeven  - |
128*999866c9SGeert Uytterhoeven    #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
129*999866c9SGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
130*999866c9SGeert Uytterhoeven    #include <dt-bindings/power/r8a7791-sysc.h>
131*999866c9SGeert Uytterhoeven
132*999866c9SGeert Uytterhoeven    qspi: spi@e6b10000 {
133*999866c9SGeert Uytterhoeven            compatible = "renesas,qspi-r8a7791", "renesas,qspi";
134*999866c9SGeert Uytterhoeven            reg = <0xe6b10000 0x2c>;
135*999866c9SGeert Uytterhoeven            interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
136*999866c9SGeert Uytterhoeven            clocks = <&cpg CPG_MOD 917>;
137*999866c9SGeert Uytterhoeven            dmas = <&dmac0 0x17>, <&dmac0 0x18>, <&dmac1 0x17>, <&dmac1 0x18>;
138*999866c9SGeert Uytterhoeven            dma-names = "tx", "rx", "tx", "rx";
139*999866c9SGeert Uytterhoeven            power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
140*999866c9SGeert Uytterhoeven            resets = <&cpg 917>;
141*999866c9SGeert Uytterhoeven            num-cs = <1>;
142*999866c9SGeert Uytterhoeven            #address-cells = <1>;
143*999866c9SGeert Uytterhoeven            #size-cells = <0>;
144*999866c9SGeert Uytterhoeven    };
145