xref: /freebsd/sys/contrib/device-tree/Bindings/mmc/renesas,sdhi.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*c66ec88fSEmmanuel Vadot%YAML 1.2
3*c66ec88fSEmmanuel Vadot---
4*c66ec88fSEmmanuel Vadot$id: "http://devicetree.org/schemas/mmc/renesas,sdhi.yaml#"
5*c66ec88fSEmmanuel Vadot$schema: "http://devicetree.org/meta-schemas/core.yaml#"
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel Vadottitle: Renesas SDHI SD/MMC controller
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadotmaintainers:
10*c66ec88fSEmmanuel Vadot  - Wolfram Sang <wsa+renesas@sang-engineering.com>
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel VadotallOf:
13*c66ec88fSEmmanuel Vadot  - $ref: "mmc-controller.yaml"
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel Vadotproperties:
16*c66ec88fSEmmanuel Vadot  compatible:
17*c66ec88fSEmmanuel Vadot    oneOf:
18*c66ec88fSEmmanuel Vadot      - items:
19*c66ec88fSEmmanuel Vadot          - const: renesas,sdhi-sh73a0  # R-Mobile APE6
20*c66ec88fSEmmanuel Vadot      - items:
21*c66ec88fSEmmanuel Vadot          - const: renesas,sdhi-r7s72100 # RZ/A1H
22*c66ec88fSEmmanuel Vadot      - items:
23*c66ec88fSEmmanuel Vadot          - const: renesas,sdhi-r7s9210 # SH-Mobile AG5
24*c66ec88fSEmmanuel Vadot      - items:
25*c66ec88fSEmmanuel Vadot          - const: renesas,sdhi-r8a73a4 # R-Mobile APE6
26*c66ec88fSEmmanuel Vadot      - items:
27*c66ec88fSEmmanuel Vadot          - const: renesas,sdhi-r8a7740 # R-Mobile A1
28*c66ec88fSEmmanuel Vadot      - items:
29*c66ec88fSEmmanuel Vadot          - enum:
30*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7778 # R-Car M1
31*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7779 # R-Car H1
32*c66ec88fSEmmanuel Vadot          - const: renesas,rcar-gen1-sdhi # R-Car Gen1
33*c66ec88fSEmmanuel Vadot      - items:
34*c66ec88fSEmmanuel Vadot          - enum:
35*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7742  # RZ/G1H
36*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7743  # RZ/G1M
37*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7744  # RZ/G1N
38*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7745  # RZ/G1E
39*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77470 # RZ/G1C
40*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7790  # R-Car H2
41*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7791  # R-Car M2-W
42*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7792  # R-Car V2H
43*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7793  # R-Car M2-N
44*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7794  # R-Car E2
45*c66ec88fSEmmanuel Vadot          - const: renesas,rcar-gen2-sdhi # R-Car Gen2 and RZ/G1
46*c66ec88fSEmmanuel Vadot      - items:
47*c66ec88fSEmmanuel Vadot          - const: renesas,sdhi-mmc-r8a77470 # RZ/G1C (SDHI/MMC IP)
48*c66ec88fSEmmanuel Vadot      - items:
49*c66ec88fSEmmanuel Vadot          - enum:
50*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a774a1 # RZ/G2M
51*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a774b1 # RZ/G2N
52*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a774c0 # RZ/G2E
53*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7795  # R-Car H3
54*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a7796  # R-Car M3-W
55*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77961 # R-Car M3-W+
56*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77965 # R-Car M3-N
57*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77970 # R-Car V3M
58*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77980 # R-Car V3H
59*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77990 # R-Car E3
60*c66ec88fSEmmanuel Vadot              - renesas,sdhi-r8a77995 # R-Car D3
61*c66ec88fSEmmanuel Vadot          - const: renesas,rcar-gen3-sdhi # R-Car Gen3 or RZ/G2
62*c66ec88fSEmmanuel Vadot
63*c66ec88fSEmmanuel Vadot  reg:
64*c66ec88fSEmmanuel Vadot    maxItems: 1
65*c66ec88fSEmmanuel Vadot
66*c66ec88fSEmmanuel Vadot  interrupts:
67*c66ec88fSEmmanuel Vadot    minItems: 1
68*c66ec88fSEmmanuel Vadot    maxItems: 3
69*c66ec88fSEmmanuel Vadot
70*c66ec88fSEmmanuel Vadot  clocks:
71*c66ec88fSEmmanuel Vadot    minItems: 1
72*c66ec88fSEmmanuel Vadot    maxItems: 2
73*c66ec88fSEmmanuel Vadot
74*c66ec88fSEmmanuel Vadot  clock-names:
75*c66ec88fSEmmanuel Vadot    minItems: 1
76*c66ec88fSEmmanuel Vadot    maxItems: 2
77*c66ec88fSEmmanuel Vadot    items:
78*c66ec88fSEmmanuel Vadot      - const: core
79*c66ec88fSEmmanuel Vadot      - const: cd
80*c66ec88fSEmmanuel Vadot
81*c66ec88fSEmmanuel Vadot  dmas:
82*c66ec88fSEmmanuel Vadot    minItems: 4
83*c66ec88fSEmmanuel Vadot    maxItems: 4
84*c66ec88fSEmmanuel Vadot
85*c66ec88fSEmmanuel Vadot  dma-names:
86*c66ec88fSEmmanuel Vadot    minItems: 4
87*c66ec88fSEmmanuel Vadot    maxItems: 4
88*c66ec88fSEmmanuel Vadot    items:
89*c66ec88fSEmmanuel Vadot      enum:
90*c66ec88fSEmmanuel Vadot        - tx
91*c66ec88fSEmmanuel Vadot        - rx
92*c66ec88fSEmmanuel Vadot
93*c66ec88fSEmmanuel Vadot  power-domains:
94*c66ec88fSEmmanuel Vadot    maxItems: 1
95*c66ec88fSEmmanuel Vadot
96*c66ec88fSEmmanuel Vadot  resets:
97*c66ec88fSEmmanuel Vadot    maxItems: 1
98*c66ec88fSEmmanuel Vadot
99*c66ec88fSEmmanuel Vadot  pinctrl-0:
100*c66ec88fSEmmanuel Vadot    minItems: 1
101*c66ec88fSEmmanuel Vadot    maxItems: 2
102*c66ec88fSEmmanuel Vadot
103*c66ec88fSEmmanuel Vadot  pinctrl-1:
104*c66ec88fSEmmanuel Vadot    maxItems: 1
105*c66ec88fSEmmanuel Vadot
106*c66ec88fSEmmanuel Vadot  pinctrl-names:
107*c66ec88fSEmmanuel Vadot    minItems: 1
108*c66ec88fSEmmanuel Vadot    maxItems: 2
109*c66ec88fSEmmanuel Vadot    items:
110*c66ec88fSEmmanuel Vadot      - const: default
111*c66ec88fSEmmanuel Vadot      - const: state_uhs
112*c66ec88fSEmmanuel Vadot
113*c66ec88fSEmmanuel Vadot  max-frequency: true
114*c66ec88fSEmmanuel Vadot
115*c66ec88fSEmmanuel Vadotrequired:
116*c66ec88fSEmmanuel Vadot  - compatible
117*c66ec88fSEmmanuel Vadot  - reg
118*c66ec88fSEmmanuel Vadot  - interrupts
119*c66ec88fSEmmanuel Vadot  - clocks
120*c66ec88fSEmmanuel Vadot  - power-domains
121*c66ec88fSEmmanuel Vadot
122*c66ec88fSEmmanuel Vadotif:
123*c66ec88fSEmmanuel Vadot  properties:
124*c66ec88fSEmmanuel Vadot    compatible:
125*c66ec88fSEmmanuel Vadot      items:
126*c66ec88fSEmmanuel Vadot        enum:
127*c66ec88fSEmmanuel Vadot          - renesas,sdhi-r7s72100
128*c66ec88fSEmmanuel Vadot          - renesas,sdhi-r7s9210
129*c66ec88fSEmmanuel Vadotthen:
130*c66ec88fSEmmanuel Vadot  required:
131*c66ec88fSEmmanuel Vadot    - clock-names
132*c66ec88fSEmmanuel Vadot  description:
133*c66ec88fSEmmanuel Vadot    The internal card detection logic that exists in these controllers is
134*c66ec88fSEmmanuel Vadot    sectioned off to be run by a separate second clock source to allow
135*c66ec88fSEmmanuel Vadot    the main core clock to be turned off to save power.
136*c66ec88fSEmmanuel Vadot
137*c66ec88fSEmmanuel VadotunevaluatedProperties: false
138*c66ec88fSEmmanuel Vadot
139*c66ec88fSEmmanuel Vadotexamples:
140*c66ec88fSEmmanuel Vadot  - |
141*c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
142*c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
143*c66ec88fSEmmanuel Vadot    #include <dt-bindings/power/r8a7790-sysc.h>
144*c66ec88fSEmmanuel Vadot
145*c66ec88fSEmmanuel Vadot    sdhi0: mmc@ee100000 {
146*c66ec88fSEmmanuel Vadot            compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
147*c66ec88fSEmmanuel Vadot            reg = <0xee100000 0x328>;
148*c66ec88fSEmmanuel Vadot            interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>;
149*c66ec88fSEmmanuel Vadot            clocks = <&cpg CPG_MOD 314>;
150*c66ec88fSEmmanuel Vadot            dmas = <&dmac0 0xcd>, <&dmac0 0xce>, <&dmac1 0xcd>, <&dmac1 0xce>;
151*c66ec88fSEmmanuel Vadot            dma-names = "tx", "rx", "tx", "rx";
152*c66ec88fSEmmanuel Vadot            max-frequency = <195000000>;
153*c66ec88fSEmmanuel Vadot            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
154*c66ec88fSEmmanuel Vadot            resets = <&cpg 314>;
155*c66ec88fSEmmanuel Vadot    };
156*c66ec88fSEmmanuel Vadot
157*c66ec88fSEmmanuel Vadot    sdhi1: mmc@ee120000 {
158*c66ec88fSEmmanuel Vadot             compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
159*c66ec88fSEmmanuel Vadot             reg = <0xee120000 0x328>;
160*c66ec88fSEmmanuel Vadot             interrupts = <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
161*c66ec88fSEmmanuel Vadot             clocks = <&cpg CPG_MOD 313>;
162*c66ec88fSEmmanuel Vadot             dmas = <&dmac0 0xc9>, <&dmac0 0xca>, <&dmac1 0xc9>, <&dmac1 0xca>;
163*c66ec88fSEmmanuel Vadot             dma-names = "tx", "rx", "tx", "rx";
164*c66ec88fSEmmanuel Vadot             max-frequency = <195000000>;
165*c66ec88fSEmmanuel Vadot             power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
166*c66ec88fSEmmanuel Vadot             resets = <&cpg 313>;
167*c66ec88fSEmmanuel Vadot    };
168*c66ec88fSEmmanuel Vadot
169*c66ec88fSEmmanuel Vadot    sdhi2: mmc@ee140000 {
170*c66ec88fSEmmanuel Vadot             compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
171*c66ec88fSEmmanuel Vadot             reg = <0xee140000 0x100>;
172*c66ec88fSEmmanuel Vadot             interrupts = <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
173*c66ec88fSEmmanuel Vadot             clocks = <&cpg CPG_MOD 312>;
174*c66ec88fSEmmanuel Vadot             dmas = <&dmac0 0xc1>, <&dmac0 0xc2>, <&dmac1 0xc1>, <&dmac1 0xc2>;
175*c66ec88fSEmmanuel Vadot             dma-names = "tx", "rx", "tx", "rx";
176*c66ec88fSEmmanuel Vadot             max-frequency = <97500000>;
177*c66ec88fSEmmanuel Vadot             power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
178*c66ec88fSEmmanuel Vadot             resets = <&cpg 312>;
179*c66ec88fSEmmanuel Vadot     };
180*c66ec88fSEmmanuel Vadot
181*c66ec88fSEmmanuel Vadot     sdhi3: mmc@ee160000 {
182*c66ec88fSEmmanuel Vadot              compatible = "renesas,sdhi-r8a7790", "renesas,rcar-gen2-sdhi";
183*c66ec88fSEmmanuel Vadot              reg = <0xee160000 0x100>;
184*c66ec88fSEmmanuel Vadot              interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>;
185*c66ec88fSEmmanuel Vadot              clocks = <&cpg CPG_MOD 311>;
186*c66ec88fSEmmanuel Vadot              dmas = <&dmac0 0xd3>, <&dmac0 0xd4>, <&dmac1 0xd3>, <&dmac1 0xd4>;
187*c66ec88fSEmmanuel Vadot              dma-names = "tx", "rx", "tx", "rx";
188*c66ec88fSEmmanuel Vadot              max-frequency = <97500000>;
189*c66ec88fSEmmanuel Vadot              power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
190*c66ec88fSEmmanuel Vadot              resets = <&cpg 311>;
191*c66ec88fSEmmanuel Vadot    };
192