Merge tag 'for-5.15/io_uring-2021-09-04' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / power / rockchip-io-domain.yaml
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
7 title: Rockchip SRAM for IO Voltage Domains
8
9 maintainers:
10   - Heiko Stuebner <heiko@sntech.de>
11
12 description: |
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
45 properties:
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
62 required:
63   - compatible
64
65 unevaluatedProperties: false
66
67 allOf:
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
347 examples:
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     };