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