1# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/power/rockchip-io-domain.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Rockchip SRAM for IO Voltage Domains
8
9maintainers:
10  - Heiko Stuebner <heiko@sntech.de>
11
12description: |
13  IO domain voltages on some Rockchip SoCs are variable but need to be
14  kept in sync between the regulators and the SoC using a special
15  register.
16
17  A specific example using rk3288
18    If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then
19    bit 7 of GRF_IO_VSEL needs to be 0. If the regulator hooked up to
20    that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1.
21
22  Said another way, this driver simply handles keeping bits in the SoCs
23  General Register File (GRF) in sync with the actual value of a voltage
24  hooked up to the pins.
25
26  Note that this driver specifically does not include
27    any logic for deciding what voltage we should set regulators to
28    any logic for deciding whether regulators (or internal SoC blocks)
29    should have power or not have power
30
31  If there were some other software that had the smarts of making
32  decisions about regulators, it would work in conjunction with this
33  driver. When that other software adjusted a regulators voltage then
34  this driver would handle telling the SoC about it. A good example is
35  vqmmc for SD. In that case the dw_mmc driver simply is told about a
36  regulator. It changes the regulator between 3.3V and 1.8V at the
37  right time. This driver notices the change and makes sure that the
38  SoC is on the same page.
39
40  You specify supplies using the standard regulator bindings by including
41  a phandle the relevant regulator. All specified supplies must be able
42  to report their voltage. The IO Voltage Domain for any non-specified
43  supplies will be not be touched.
44
45properties:
46  compatible:
47    enum:
48      - rockchip,px30-io-voltage-domain
49      - rockchip,px30-pmu-io-voltage-domain
50      - rockchip,rk3188-io-voltage-domain
51      - rockchip,rk3228-io-voltage-domain
52      - rockchip,rk3288-io-voltage-domain
53      - rockchip,rk3328-io-voltage-domain
54      - rockchip,rk3368-io-voltage-domain
55      - rockchip,rk3368-pmu-io-voltage-domain
56      - rockchip,rk3399-io-voltage-domain
57      - rockchip,rk3399-pmu-io-voltage-domain
58      - rockchip,rk3568-pmu-io-voltage-domain
59      - rockchip,rv1108-io-voltage-domain
60      - rockchip,rv1108-pmu-io-voltage-domain
61
62required:
63  - compatible
64
65unevaluatedProperties: false
66
67allOf:
68  - $ref: "#/$defs/px30"
69  - $ref: "#/$defs/px30-pmu"
70  - $ref: "#/$defs/rk3188"
71  - $ref: "#/$defs/rk3228"
72  - $ref: "#/$defs/rk3288"
73  - $ref: "#/$defs/rk3328"
74  - $ref: "#/$defs/rk3368"
75  - $ref: "#/$defs/rk3368-pmu"
76  - $ref: "#/$defs/rk3399"
77  - $ref: "#/$defs/rk3399-pmu"
78  - $ref: "#/$defs/rk3568-pmu"
79  - $ref: "#/$defs/rv1108"
80  - $ref: "#/$defs/rv1108-pmu"
81
82$defs:
83  px30:
84    if:
85      properties:
86        compatible:
87          contains:
88            const: rockchip,px30-io-voltage-domain
89
90    then:
91      properties:
92        vccio1-supply:
93          description: The supply connected to VCCIO1.
94        vccio2-supply:
95          description: The supply connected to VCCIO2.
96        vccio3-supply:
97          description: The supply connected to VCCIO3.
98        vccio4-supply:
99          description: The supply connected to VCCIO4.
100        vccio5-supply:
101          description: The supply connected to VCCIO5.
102        vccio6-supply:
103          description: The supply connected to VCCIO6.
104        vccio-oscgpi-supply:
105          description: The supply connected to VCCIO_OSCGPI.
106
107  px30-pmu:
108    if:
109      properties:
110        compatible:
111          contains:
112            const: rockchip,px30-pmu-io-voltage-domain
113
114    then:
115      properties:
116        pmuio1-supply:
117          description: The supply connected to PMUIO1.
118        pmuio2-supply:
119          description: The supply connected to PMUIO2.
120
121  rk3188:
122    if:
123      properties:
124        compatible:
125          contains:
126            const: rockchip,rk3188-io-voltage-domain
127
128    then:
129      properties:
130        ap0-supply:
131          description: The supply connected to AP0_VCC.
132        ap1-supply:
133          description: The supply connected to AP1_VCC.
134        cif-supply:
135          description: The supply connected to CIF_VCC.
136        flash-supply:
137          description: The supply connected to FLASH_VCC.
138        lcdc0-supply:
139          description: The supply connected to LCD0_VCC.
140        lcdc1-supply:
141          description: The supply connected to LCD1_VCC.
142        vccio0-supply:
143          description: The supply connected to VCCIO0.
144        vccio1-supply:
145          description: The supply connected to VCCIO1. Also labeled as VCCIO2.
146
147  rk3228:
148    if:
149      properties:
150        compatible:
151          contains:
152            const: rockchip,rk3228-io-voltage-domain
153
154    then:
155      properties:
156        vccio1-supply:
157          description: The supply connected to VCCIO1.
158        vccio2-supply:
159          description: The supply connected to VCCIO2.
160        vccio3-supply:
161          description: The supply connected to VCCIO3.
162        vccio4-supply:
163          description: The supply connected to VCCIO4.
164
165  rk3288:
166    if:
167      properties:
168        compatible:
169          contains:
170            const: rockchip,rk3288-io-voltage-domain
171
172    then:
173      properties:
174        audio-supply:
175          description: The supply connected to APIO4_VDD.
176        bb-supply:
177          description: The supply connected to APIO5_VDD.
178        dvp-supply:
179          description: The supply connected to DVPIO_VDD.
180        flash0-supply:
181          description: The supply connected to FLASH0_VDD. Typically for eMMC.
182        flash1-supply:
183          description: The supply connected to FLASH1_VDD. Also known as SDIO1.
184        gpio30-supply:
185          description: The supply connected to APIO1_VDD.
186        gpio1830-supply:
187          description: The supply connected to APIO2_VDD.
188        lcdc-supply:
189          description: The supply connected to LCDC_VDD.
190        sdcard-supply:
191          description: The supply connected to SDMMC0_VDD.
192        wifi-supply:
193          description: The supply connected to APIO3_VDD. Also known as SDIO0.
194
195  rk3328:
196    if:
197      properties:
198        compatible:
199          contains:
200            const: rockchip,rk3328-io-voltage-domain
201
202    then:
203      properties:
204        vccio1-supply:
205          description: The supply connected to VCCIO1.
206        vccio2-supply:
207          description: The supply connected to VCCIO2.
208        vccio3-supply:
209          description: The supply connected to VCCIO3.
210        vccio4-supply:
211          description: The supply connected to VCCIO4.
212        vccio5-supply:
213          description: The supply connected to VCCIO5.
214        vccio6-supply:
215          description: The supply connected to VCCIO6.
216        pmuio-supply:
217          description: The supply connected to VCCIO_PMU.
218
219  rk3368:
220    if:
221      properties:
222        compatible:
223          contains:
224            const: rockchip,rk3368-io-voltage-domain
225
226    then:
227      properties:
228        audio-supply:
229          description: The supply connected to APIO3_VDD.
230        dvp-supply:
231          description: The supply connected to DVPIO_VDD.
232        flash0-supply:
233          description: The supply connected to FLASH0_VDD. Typically for eMMC.
234        gpio30-supply:
235          description: The supply connected to APIO1_VDD.
236        gpio1830-supply:
237          description: The supply connected to APIO4_VDD.
238        sdcard-supply:
239          description: The supply connected to SDMMC0_VDD.
240        wifi-supply:
241          description: The supply connected to APIO2_VDD. Also known as SDIO0.
242
243  rk3368-pmu:
244    if:
245      properties:
246        compatible:
247          contains:
248            const: rockchip,rk3368-pmu-io-voltage-domain
249
250    then:
251      properties:
252        pmu-supply:
253          description: The supply connected to PMUIO_VDD.
254        vop-supply:
255          description: The supply connected to LCDC_VDD.
256
257  rk3399:
258    if:
259      properties:
260        compatible:
261          contains:
262            const: rockchip,rk3399-io-voltage-domain
263
264    then:
265      properties:
266        audio-supply:
267          description: The supply connected to APIO5_VDD.
268        bt656-supply:
269          description: The supply connected to APIO2_VDD.
270        gpio1830-supply:
271          description: The supply connected to APIO4_VDD.
272        sdmmc-supply:
273          description: The supply connected to SDMMC0_VDD.
274
275  rk3399-pmu:
276    if:
277      properties:
278        compatible:
279          contains:
280            const: rockchip,rk3399-pmu-io-voltage-domain
281
282    then:
283      properties:
284        pmu1830-supply:
285          description: The supply connected to PMUIO2_VDD.
286
287  rk3568-pmu:
288    if:
289      properties:
290        compatible:
291          contains:
292            const: rockchip,rk3568-pmu-io-voltage-domain
293
294    then:
295      properties:
296        pmuio1-supply:
297          description: The supply connected to PMUIO1.
298        pmuio2-supply:
299          description: The supply connected to PMUIO2.
300        vccio1-supply:
301          description: The supply connected to VCCIO1.
302        vccio2-supply:
303          description: The supply connected to VCCIO2.
304        vccio3-supply:
305          description: The supply connected to VCCIO3.
306        vccio4-supply:
307          description: The supply connected to VCCIO4.
308        vccio5-supply:
309          description: The supply connected to VCCIO5.
310        vccio6-supply:
311          description: The supply connected to VCCIO6.
312        vccio7-supply:
313          description: The supply connected to VCCIO7.
314
315  rv1108:
316    if:
317      properties:
318        compatible:
319          contains:
320            const: rockchip,rv1108-io-voltage-domain
321
322    then:
323      properties:
324        vccio1-supply:
325          description: The supply connected to APIO1_VDD.
326        vccio2-supply:
327          description: The supply connected to APIO2_VDD.
328        vccio3-supply:
329          description: The supply connected to APIO3_VDD.
330        vccio5-supply:
331          description: The supply connected to APIO5_VDD.
332        vccio6-supply:
333          description: The supply connected to APIO6_VDD.
334
335  rv1108-pmu:
336    if:
337      properties:
338        compatible:
339          contains:
340            const: rockchip,rv1108-pmu-io-voltage-domain
341
342    then:
343      properties:
344        pmu-supply:
345          description: The supply connected to PMUIO_VDD.
346
347examples:
348  - |
349    io-domains {
350      compatible = "rockchip,rk3288-io-voltage-domain";
351      audio-supply = <&vcc18_codec>;
352      bb-supply = <&vcc33_io>;
353      dvp-supply = <&vcc_18>;
354      flash0-supply = <&vcc18_flashio>;
355      gpio1830-supply = <&vcc33_io>;
356      gpio30-supply = <&vcc33_pmuio>;
357      lcdc-supply = <&vcc33_lcd>;
358      sdcard-supply = <&vccio_sd>;
359      wifi-supply = <&vcc18_wl>;
360    };
361