xref: /openbmc/linux/Documentation/devicetree/bindings/spi/renesas,rspi.yaml (revision 08f9793efd3decae75e60bfec2e6068f2d4180df)
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:
28*08f9793eSLad Prabhakar              - renesas,qspi-r8a7742   # RZ/G1H
29999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7743   # RZ/G1M
30999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7744   # RZ/G1N
31999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7745   # RZ/G1E
32999866c9SGeert Uytterhoeven              - renesas,qspi-r8a77470  # RZ/G1C
33999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7790   # R-Car H2
34999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7791   # R-Car M2-W
35999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7792   # R-Car V2H
36999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7793   # R-Car M2-N
37999866c9SGeert Uytterhoeven              - renesas,qspi-r8a7794   # R-Car E2
38999866c9SGeert Uytterhoeven          - const: renesas,qspi        # R-Car Gen2 and RZ/G1
39999866c9SGeert Uytterhoeven
40999866c9SGeert Uytterhoeven  reg:
41999866c9SGeert Uytterhoeven    maxItems: 1
42999866c9SGeert Uytterhoeven
43999866c9SGeert Uytterhoeven  interrupts:
44999866c9SGeert Uytterhoeven    oneOf:
45999866c9SGeert Uytterhoeven      - items:
46999866c9SGeert Uytterhoeven          - description: A combined interrupt
47999866c9SGeert Uytterhoeven      - items:
48999866c9SGeert Uytterhoeven          - description: Error interrupt (SPEI)
49999866c9SGeert Uytterhoeven          - description: Receive Interrupt (SPRI)
50999866c9SGeert Uytterhoeven          - description: Transmit Interrupt (SPTI)
51999866c9SGeert Uytterhoeven
52999866c9SGeert Uytterhoeven  interrupt-names:
53999866c9SGeert Uytterhoeven    oneOf:
54999866c9SGeert Uytterhoeven      - items:
55999866c9SGeert Uytterhoeven          - const: mux
56999866c9SGeert Uytterhoeven      - items:
57999866c9SGeert Uytterhoeven          - const: error
58999866c9SGeert Uytterhoeven          - const: rx
59999866c9SGeert Uytterhoeven          - const: tx
60999866c9SGeert Uytterhoeven
61999866c9SGeert Uytterhoeven  clocks:
62999866c9SGeert Uytterhoeven    maxItems: 1
63999866c9SGeert Uytterhoeven
64999866c9SGeert Uytterhoeven  power-domains:
65999866c9SGeert Uytterhoeven    maxItems: 1
66999866c9SGeert Uytterhoeven
67999866c9SGeert Uytterhoeven  resets:
68999866c9SGeert Uytterhoeven    maxItems: 1
69999866c9SGeert Uytterhoeven
70999866c9SGeert Uytterhoeven  dmas:
71999866c9SGeert Uytterhoeven    description:
72999866c9SGeert Uytterhoeven      Must contain a list of pairs of references to DMA specifiers, one for
73999866c9SGeert Uytterhoeven      transmission, and one for reception.
74999866c9SGeert Uytterhoeven
75999866c9SGeert Uytterhoeven  dma-names:
76999866c9SGeert Uytterhoeven    minItems: 2
77999866c9SGeert Uytterhoeven    maxItems: 4
78999866c9SGeert Uytterhoeven    items:
79999866c9SGeert Uytterhoeven      enum:
80999866c9SGeert Uytterhoeven        - tx
81999866c9SGeert Uytterhoeven        - rx
82999866c9SGeert Uytterhoeven
83999866c9SGeert Uytterhoeven  num-cs:
84999866c9SGeert Uytterhoeven    description: |
85999866c9SGeert Uytterhoeven      Total number of native chip selects.
86999866c9SGeert Uytterhoeven      Hardware limitations related to chip selects:
87999866c9SGeert Uytterhoeven        - When using GPIO chip selects, at least one native chip select must
88999866c9SGeert Uytterhoeven          be left unused, as it will be driven anyway.
89999866c9SGeert Uytterhoeven    minimum: 1
90999866c9SGeert Uytterhoeven    maximum: 2
91999866c9SGeert Uytterhoeven    default: 1
92999866c9SGeert Uytterhoeven
93999866c9SGeert Uytterhoevenrequired:
94999866c9SGeert Uytterhoeven  - compatible
95999866c9SGeert Uytterhoeven  - reg
96999866c9SGeert Uytterhoeven  - interrupts
97999866c9SGeert Uytterhoeven  - clocks
98999866c9SGeert Uytterhoeven  - power-domains
99999866c9SGeert Uytterhoeven  - '#address-cells'
100999866c9SGeert Uytterhoeven  - '#size-cells'
101999866c9SGeert Uytterhoeven
102999866c9SGeert UytterhoevenallOf:
103999866c9SGeert Uytterhoeven  - $ref: spi-controller.yaml#
104999866c9SGeert Uytterhoeven  - if:
105999866c9SGeert Uytterhoeven      properties:
106999866c9SGeert Uytterhoeven        compatible:
107999866c9SGeert Uytterhoeven          contains:
108999866c9SGeert Uytterhoeven            enum:
109999866c9SGeert Uytterhoeven              - renesas,rspi-rz
110999866c9SGeert Uytterhoeven    then:
111999866c9SGeert Uytterhoeven      properties:
112999866c9SGeert Uytterhoeven        interrupts:
113999866c9SGeert Uytterhoeven          minItems: 3
114999866c9SGeert Uytterhoeven      required:
115999866c9SGeert Uytterhoeven        - interrupt-names
116999866c9SGeert Uytterhoeven
117999866c9SGeert Uytterhoeven  - if:
118999866c9SGeert Uytterhoeven      properties:
119999866c9SGeert Uytterhoeven        compatible:
120999866c9SGeert Uytterhoeven          contains:
121999866c9SGeert Uytterhoeven            enum:
122999866c9SGeert Uytterhoeven              - renesas,qspi
123999866c9SGeert Uytterhoeven    then:
124999866c9SGeert Uytterhoeven      required:
125999866c9SGeert Uytterhoeven        - resets
126999866c9SGeert Uytterhoeven
127999866c9SGeert Uytterhoevenexamples:
128999866c9SGeert Uytterhoeven  - |
129999866c9SGeert Uytterhoeven    #include <dt-bindings/clock/r8a7791-cpg-mssr.h>
130999866c9SGeert Uytterhoeven    #include <dt-bindings/interrupt-controller/arm-gic.h>
131999866c9SGeert Uytterhoeven    #include <dt-bindings/power/r8a7791-sysc.h>
132999866c9SGeert Uytterhoeven
133999866c9SGeert Uytterhoeven    qspi: spi@e6b10000 {
134999866c9SGeert Uytterhoeven            compatible = "renesas,qspi-r8a7791", "renesas,qspi";
135999866c9SGeert Uytterhoeven            reg = <0xe6b10000 0x2c>;
136999866c9SGeert Uytterhoeven            interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
137999866c9SGeert Uytterhoeven            clocks = <&cpg CPG_MOD 917>;
138999866c9SGeert Uytterhoeven            dmas = <&dmac0 0x17>, <&dmac0 0x18>, <&dmac1 0x17>, <&dmac1 0x18>;
139999866c9SGeert Uytterhoeven            dma-names = "tx", "rx", "tx", "rx";
140999866c9SGeert Uytterhoeven            power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
141999866c9SGeert Uytterhoeven            resets = <&cpg 917>;
142999866c9SGeert Uytterhoeven            num-cs = <1>;
143999866c9SGeert Uytterhoeven            #address-cells = <1>;
144999866c9SGeert Uytterhoeven            #size-cells = <0>;
145999866c9SGeert Uytterhoeven    };
146