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      - rockchip,rv1126-pmu-io-voltage-domain
62
63required:
64  - compatible
65
66unevaluatedProperties: false
67
68allOf:
69  - $ref: "#/$defs/px30"
70  - $ref: "#/$defs/px30-pmu"
71  - $ref: "#/$defs/rk3188"
72  - $ref: "#/$defs/rk3228"
73  - $ref: "#/$defs/rk3288"
74  - $ref: "#/$defs/rk3328"
75  - $ref: "#/$defs/rk3368"
76  - $ref: "#/$defs/rk3368-pmu"
77  - $ref: "#/$defs/rk3399"
78  - $ref: "#/$defs/rk3399-pmu"
79  - $ref: "#/$defs/rk3568-pmu"
80  - $ref: "#/$defs/rv1108"
81  - $ref: "#/$defs/rv1108-pmu"
82  - $ref: "#/$defs/rv1126-pmu"
83
84$defs:
85  px30:
86    if:
87      properties:
88        compatible:
89          contains:
90            const: rockchip,px30-io-voltage-domain
91
92    then:
93      properties:
94        vccio1-supply:
95          description: The supply connected to VCCIO1.
96        vccio2-supply:
97          description: The supply connected to VCCIO2.
98        vccio3-supply:
99          description: The supply connected to VCCIO3.
100        vccio4-supply:
101          description: The supply connected to VCCIO4.
102        vccio5-supply:
103          description: The supply connected to VCCIO5.
104        vccio6-supply:
105          description: The supply connected to VCCIO6.
106        vccio-oscgpi-supply:
107          description: The supply connected to VCCIO_OSCGPI.
108
109  px30-pmu:
110    if:
111      properties:
112        compatible:
113          contains:
114            const: rockchip,px30-pmu-io-voltage-domain
115
116    then:
117      properties:
118        pmuio1-supply:
119          description: The supply connected to PMUIO1.
120        pmuio2-supply:
121          description: The supply connected to PMUIO2.
122
123  rk3188:
124    if:
125      properties:
126        compatible:
127          contains:
128            const: rockchip,rk3188-io-voltage-domain
129
130    then:
131      properties:
132        ap0-supply:
133          description: The supply connected to AP0_VCC.
134        ap1-supply:
135          description: The supply connected to AP1_VCC.
136        cif-supply:
137          description: The supply connected to CIF_VCC.
138        flash-supply:
139          description: The supply connected to FLASH_VCC.
140        lcdc0-supply:
141          description: The supply connected to LCD0_VCC.
142        lcdc1-supply:
143          description: The supply connected to LCD1_VCC.
144        vccio0-supply:
145          description: The supply connected to VCCIO0.
146        vccio1-supply:
147          description: The supply connected to VCCIO1. Also labeled as VCCIO2.
148
149  rk3228:
150    if:
151      properties:
152        compatible:
153          contains:
154            const: rockchip,rk3228-io-voltage-domain
155
156    then:
157      properties:
158        vccio1-supply:
159          description: The supply connected to VCCIO1.
160        vccio2-supply:
161          description: The supply connected to VCCIO2.
162        vccio3-supply:
163          description: The supply connected to VCCIO3.
164        vccio4-supply:
165          description: The supply connected to VCCIO4.
166
167  rk3288:
168    if:
169      properties:
170        compatible:
171          contains:
172            const: rockchip,rk3288-io-voltage-domain
173
174    then:
175      properties:
176        audio-supply:
177          description: The supply connected to APIO4_VDD.
178        bb-supply:
179          description: The supply connected to APIO5_VDD.
180        dvp-supply:
181          description: The supply connected to DVPIO_VDD.
182        flash0-supply:
183          description: The supply connected to FLASH0_VDD. Typically for eMMC.
184        flash1-supply:
185          description: The supply connected to FLASH1_VDD. Also known as SDIO1.
186        gpio30-supply:
187          description: The supply connected to APIO1_VDD.
188        gpio1830-supply:
189          description: The supply connected to APIO2_VDD.
190        lcdc-supply:
191          description: The supply connected to LCDC_VDD.
192        sdcard-supply:
193          description: The supply connected to SDMMC0_VDD.
194        wifi-supply:
195          description: The supply connected to APIO3_VDD. Also known as SDIO0.
196
197  rk3328:
198    if:
199      properties:
200        compatible:
201          contains:
202            const: rockchip,rk3328-io-voltage-domain
203
204    then:
205      properties:
206        vccio1-supply:
207          description: The supply connected to VCCIO1.
208        vccio2-supply:
209          description: The supply connected to VCCIO2.
210        vccio3-supply:
211          description: The supply connected to VCCIO3.
212        vccio4-supply:
213          description: The supply connected to VCCIO4.
214        vccio5-supply:
215          description: The supply connected to VCCIO5.
216        vccio6-supply:
217          description: The supply connected to VCCIO6.
218        pmuio-supply:
219          description: The supply connected to VCCIO_PMU.
220
221  rk3368:
222    if:
223      properties:
224        compatible:
225          contains:
226            const: rockchip,rk3368-io-voltage-domain
227
228    then:
229      properties:
230        audio-supply:
231          description: The supply connected to APIO3_VDD.
232        dvp-supply:
233          description: The supply connected to DVPIO_VDD.
234        flash0-supply:
235          description: The supply connected to FLASH0_VDD. Typically for eMMC.
236        gpio30-supply:
237          description: The supply connected to APIO1_VDD.
238        gpio1830-supply:
239          description: The supply connected to APIO4_VDD.
240        sdcard-supply:
241          description: The supply connected to SDMMC0_VDD.
242        wifi-supply:
243          description: The supply connected to APIO2_VDD. Also known as SDIO0.
244
245  rk3368-pmu:
246    if:
247      properties:
248        compatible:
249          contains:
250            const: rockchip,rk3368-pmu-io-voltage-domain
251
252    then:
253      properties:
254        pmu-supply:
255          description: The supply connected to PMUIO_VDD.
256        vop-supply:
257          description: The supply connected to LCDC_VDD.
258
259  rk3399:
260    if:
261      properties:
262        compatible:
263          contains:
264            const: rockchip,rk3399-io-voltage-domain
265
266    then:
267      properties:
268        audio-supply:
269          description: The supply connected to APIO5_VDD.
270        bt656-supply:
271          description: The supply connected to APIO2_VDD.
272        gpio1830-supply:
273          description: The supply connected to APIO4_VDD.
274        sdmmc-supply:
275          description: The supply connected to SDMMC0_VDD.
276
277  rk3399-pmu:
278    if:
279      properties:
280        compatible:
281          contains:
282            const: rockchip,rk3399-pmu-io-voltage-domain
283
284    then:
285      properties:
286        pmu1830-supply:
287          description: The supply connected to PMUIO2_VDD.
288
289  rk3568-pmu:
290    if:
291      properties:
292        compatible:
293          contains:
294            const: rockchip,rk3568-pmu-io-voltage-domain
295
296    then:
297      properties:
298        pmuio1-supply:
299          description: The supply connected to PMUIO1.
300        pmuio2-supply:
301          description: The supply connected to PMUIO2.
302        vccio1-supply:
303          description: The supply connected to VCCIO1.
304        vccio2-supply:
305          description: The supply connected to VCCIO2.
306        vccio3-supply:
307          description: The supply connected to VCCIO3.
308        vccio4-supply:
309          description: The supply connected to VCCIO4.
310        vccio5-supply:
311          description: The supply connected to VCCIO5.
312        vccio6-supply:
313          description: The supply connected to VCCIO6.
314        vccio7-supply:
315          description: The supply connected to VCCIO7.
316
317  rv1108:
318    if:
319      properties:
320        compatible:
321          contains:
322            const: rockchip,rv1108-io-voltage-domain
323
324    then:
325      properties:
326        vccio1-supply:
327          description: The supply connected to APIO1_VDD.
328        vccio2-supply:
329          description: The supply connected to APIO2_VDD.
330        vccio3-supply:
331          description: The supply connected to APIO3_VDD.
332        vccio5-supply:
333          description: The supply connected to APIO5_VDD.
334        vccio6-supply:
335          description: The supply connected to APIO6_VDD.
336
337  rv1108-pmu:
338    if:
339      properties:
340        compatible:
341          contains:
342            const: rockchip,rv1108-pmu-io-voltage-domain
343
344    then:
345      properties:
346        pmu-supply:
347          description: The supply connected to PMUIO_VDD.
348
349  rv1126-pmu:
350    if:
351      properties:
352        compatible:
353          contains:
354            const: rockchip,rv1126-pmu-io-voltage-domain
355
356    then:
357      properties:
358        vccio1-supply:
359          description: The supply connected to VCCIO1.
360        vccio2-supply:
361          description: The supply connected to VCCIO2.
362        vccio3-supply:
363          description: The supply connected to VCCIO3.
364        vccio4-supply:
365          description: The supply connected to VCCIO4.
366        vccio5-supply:
367          description: The supply connected to VCCIO5.
368        vccio6-supply:
369          description: The supply connected to VCCIO6.
370        vccio7-supply:
371          description: The supply connected to VCCIO7.
372        pmuio0-supply:
373          description: The supply connected to PMUIO0.
374        pmuio1-supply:
375          description: The supply connected to PMUIO1.
376
377examples:
378  - |
379    io-domains {
380      compatible = "rockchip,rk3288-io-voltage-domain";
381      audio-supply = <&vcc18_codec>;
382      bb-supply = <&vcc33_io>;
383      dvp-supply = <&vcc_18>;
384      flash0-supply = <&vcc18_flashio>;
385      gpio1830-supply = <&vcc33_io>;
386      gpio30-supply = <&vcc33_pmuio>;
387      lcdc-supply = <&vcc33_lcd>;
388      sdcard-supply = <&vccio_sd>;
389      wifi-supply = <&vcc18_wl>;
390    };
391