1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/rockchip,rk806.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RK806 Power Management Integrated Circuit
8
9maintainers:
10  - Sebastian Reichel <sebastian.reichel@collabora.com>
11
12description:
13  Rockchip RK806 series PMIC. This device consists of an spi or
14  i2c controlled MFD that includes multiple switchable regulators.
15
16properties:
17  compatible:
18    enum:
19      - rockchip,rk806
20
21  reg:
22    maxItems: 1
23
24  interrupts:
25    maxItems: 1
26
27  gpio-controller: true
28
29  '#gpio-cells':
30    const: 2
31
32  vcc1-supply:
33    description:
34      The input supply for dcdc-reg1.
35
36  vcc2-supply:
37    description:
38      The input supply for dcdc-reg2.
39
40  vcc3-supply:
41    description:
42      The input supply for dcdc-reg3.
43
44  vcc4-supply:
45    description:
46      The input supply for dcdc-reg4.
47
48  vcc5-supply:
49    description:
50      The input supply for dcdc-reg5.
51
52  vcc6-supply:
53    description:
54      The input supply for dcdc-reg6.
55
56  vcc7-supply:
57    description:
58      The input supply for dcdc-reg7.
59
60  vcc8-supply:
61    description:
62      The input supply for dcdc-reg8.
63
64  vcc9-supply:
65    description:
66      The input supply for dcdc-reg9.
67
68  vcc10-supply:
69    description:
70      The input supply for dcdc-reg10.
71
72  vcc11-supply:
73    description:
74      The input supply for pldo-reg1, pldo-reg2 and pldo-reg3.
75
76  vcc12-supply:
77    description:
78      The input supply for pldo-reg4 and pldo-reg5.
79
80  vcc13-supply:
81    description:
82      The input supply for nldo-reg1, nldo-reg2 and nldo-reg3.
83
84  vcc14-supply:
85    description:
86      The input supply for nldo-reg4 and nldo-reg5.
87
88  vcca-supply:
89    description:
90      The input supply for pldo-reg6.
91
92  regulators:
93    type: object
94    additionalProperties: false
95    patternProperties:
96      "^(dcdc-reg([1-9]|10)|pldo-reg[1-6]|nldo-reg[1-5])$":
97        type: object
98        $ref: /schemas/regulator/regulator.yaml#
99        unevaluatedProperties: false
100
101patternProperties:
102  '-pins$':
103    type: object
104    additionalProperties: false
105    $ref: /schemas/pinctrl/pinmux-node.yaml
106
107    properties:
108      function:
109        enum: [pin_fun0, pin_fun1, pin_fun2, pin_fun3, pin_fun4, pin_fun5]
110
111      pins:
112        $ref: /schemas/types.yaml#/definitions/string
113        enum: [gpio_pwrctrl1, gpio_pwrctrl2, gpio_pwrctrl3]
114
115allOf:
116  - $ref: /schemas/spi/spi-peripheral-props.yaml
117
118required:
119  - compatible
120  - reg
121  - interrupts
122
123unevaluatedProperties: false
124
125examples:
126  - |
127    #include <dt-bindings/pinctrl/rockchip.h>
128    #include <dt-bindings/interrupt-controller/irq.h>
129    #include <dt-bindings/gpio/gpio.h>
130    spi {
131        #address-cells = <1>;
132        #size-cells = <0>;
133
134        pmic@0 {
135            compatible = "rockchip,rk806";
136            reg = <0x0>;
137
138            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
139
140            vcc1-supply = <&vcc5v0_sys>;
141            vcc2-supply = <&vcc5v0_sys>;
142            vcc3-supply = <&vcc5v0_sys>;
143            vcc4-supply = <&vcc5v0_sys>;
144            vcc5-supply = <&vcc5v0_sys>;
145            vcc6-supply = <&vcc5v0_sys>;
146            vcc7-supply = <&vcc5v0_sys>;
147            vcc8-supply = <&vcc5v0_sys>;
148            vcc9-supply = <&vcc5v0_sys>;
149            vcc10-supply = <&vcc5v0_sys>;
150            vcc11-supply = <&vcc_2v0_pldo_s3>;
151            vcc12-supply = <&vcc5v0_sys>;
152            vcc13-supply = <&vcc5v0_sys>;
153            vcc14-supply = <&vcc_1v1_nldo_s3>;
154            vcca-supply = <&vcc5v0_sys>;
155
156            regulators {
157                vdd_gpu_s0: dcdc-reg1 {
158                    regulator-always-on;
159                    regulator-boot-on;
160                    regulator-min-microvolt = <550000>;
161                    regulator-max-microvolt = <950000>;
162                    regulator-ramp-delay = <12500>;
163                    regulator-name = "vdd_gpu_s0";
164                    regulator-state-mem {
165                        regulator-off-in-suspend;
166                    };
167                };
168
169                vdd_npu_s0: dcdc-reg2 {
170                    regulator-always-on;
171                    regulator-boot-on;
172                    regulator-min-microvolt = <550000>;
173                    regulator-max-microvolt = <950000>;
174                    regulator-ramp-delay = <12500>;
175                    regulator-name = "vdd_npu_s0";
176                    regulator-state-mem {
177                        regulator-off-in-suspend;
178                    };
179                };
180
181                vdd_log_s0: dcdc-reg3 {
182                    regulator-always-on;
183                    regulator-boot-on;
184                    regulator-min-microvolt = <750000>;
185                    regulator-max-microvolt = <750000>;
186                    regulator-ramp-delay = <12500>;
187                    regulator-name = "vdd_log_s0";
188                    regulator-state-mem {
189                        regulator-on-in-suspend;
190                        regulator-suspend-microvolt = <750000>;
191                    };
192                };
193
194                vdd_vdenc_s0: dcdc-reg4 {
195                    regulator-always-on;
196                    regulator-boot-on;
197                    regulator-min-microvolt = <550000>;
198                    regulator-max-microvolt = <950000>;
199                    regulator-ramp-delay = <12500>;
200                    regulator-name = "vdd_vdenc_s0";
201                    regulator-state-mem {
202                        regulator-off-in-suspend;
203                    };
204                };
205
206                vdd_gpu_mem_s0: dcdc-reg5 {
207                    regulator-always-on;
208                    regulator-boot-on;
209                    regulator-min-microvolt = <675000>;
210                    regulator-max-microvolt = <950000>;
211                    regulator-ramp-delay = <12500>;
212                    regulator-name = "vdd_gpu_mem_s0";
213                    regulator-state-mem {
214                        regulator-off-in-suspend;
215                    };
216                };
217
218                vdd_npu_mem_s0: dcdc-reg6 {
219                    regulator-always-on;
220                    regulator-boot-on;
221                    regulator-min-microvolt = <675000>;
222                    regulator-max-microvolt = <950000>;
223                    regulator-ramp-delay = <12500>;
224                    regulator-name = "vdd_npu_mem_s0";
225                    regulator-state-mem {
226                        regulator-off-in-suspend;
227                    };
228                };
229
230                vcc_2v0_pldo_s3: dcdc-reg7 {
231                    regulator-always-on;
232                    regulator-boot-on;
233                    regulator-min-microvolt = <2000000>;
234                    regulator-max-microvolt = <2000000>;
235                    regulator-ramp-delay = <12500>;
236                    regulator-name = "vdd_2v0_pldo_s3";
237                    regulator-state-mem {
238                        regulator-on-in-suspend;
239                        regulator-suspend-microvolt = <2000000>;
240                    };
241                };
242
243                vdd_vdenc_mem_s0: dcdc-reg8 {
244                    regulator-always-on;
245                    regulator-boot-on;
246                    regulator-min-microvolt = <675000>;
247                    regulator-max-microvolt = <950000>;
248                    regulator-ramp-delay = <12500>;
249                    regulator-name = "vdd_vdenc_mem_s0";
250                    regulator-state-mem {
251                        regulator-off-in-suspend;
252                    };
253                };
254
255                vdd2_ddr_s3: dcdc-reg9 {
256                    regulator-always-on;
257                    regulator-boot-on;
258                    regulator-name = "vdd2_ddr_s3";
259                    regulator-state-mem {
260                        regulator-on-in-suspend;
261                    };
262                };
263
264                vcc_1v1_nldo_s3: dcdc-reg10 {
265                    regulator-always-on;
266                    regulator-boot-on;
267                    regulator-min-microvolt = <1100000>;
268                    regulator-max-microvolt = <1100000>;
269                    regulator-ramp-delay = <12500>;
270                    regulator-name = "vcc_1v1_nldo_s3";
271                    regulator-state-mem {
272                        regulator-on-in-suspend;
273                        regulator-suspend-microvolt = <1100000>;
274                    };
275                };
276
277                avcc_1v8_s0: pldo-reg1 {
278                    regulator-always-on;
279                    regulator-boot-on;
280                    regulator-min-microvolt = <1800000>;
281                    regulator-max-microvolt = <1800000>;
282                    regulator-ramp-delay = <12500>;
283                    regulator-name = "avcc_1v8_s0";
284                    regulator-state-mem {
285                        regulator-off-in-suspend;
286                    };
287                };
288
289                vdd1_1v8_ddr_s3: pldo-reg2 {
290                    regulator-always-on;
291                    regulator-boot-on;
292                    regulator-min-microvolt = <1800000>;
293                    regulator-max-microvolt = <1800000>;
294                    regulator-ramp-delay = <12500>;
295                    regulator-name = "vdd1_1v8_ddr_s3";
296                    regulator-state-mem {
297                        regulator-on-in-suspend;
298                        regulator-suspend-microvolt = <1800000>;
299                    };
300                };
301
302                vcc_1v8_s3: pldo-reg3 {
303                    regulator-always-on;
304                    regulator-boot-on;
305                    regulator-min-microvolt = <1800000>;
306                    regulator-max-microvolt = <1800000>;
307                    regulator-ramp-delay = <12500>;
308                    regulator-name = "vcc_1v8_s3";
309                    regulator-state-mem {
310                        regulator-on-in-suspend;
311                        regulator-suspend-microvolt = <1800000>;
312                    };
313                };
314
315                vcc_3v3_s0: pldo-reg4 {
316                    regulator-always-on;
317                    regulator-boot-on;
318                    regulator-min-microvolt = <3300000>;
319                    regulator-max-microvolt = <3300000>;
320                    regulator-ramp-delay = <12500>;
321                    regulator-name = "vcc_3v3_s0";
322                    regulator-state-mem {
323                        regulator-off-in-suspend;
324                    };
325                };
326
327                vccio_sd_s0: pldo-reg5 {
328                    regulator-always-on;
329                    regulator-boot-on;
330                    regulator-min-microvolt = <1800000>;
331                    regulator-max-microvolt = <3300000>;
332                    regulator-ramp-delay = <12500>;
333                    regulator-name = "vccio_sd_s0";
334                    regulator-state-mem {
335                        regulator-off-in-suspend;
336                    };
337                };
338
339                master_pldo6_s3: pldo-reg6 {
340                    regulator-always-on;
341                    regulator-boot-on;
342                    regulator-min-microvolt = <1800000>;
343                    regulator-max-microvolt = <1800000>;
344                    regulator-name = "master_pldo6_s3";
345                    regulator-state-mem {
346                        regulator-on-in-suspend;
347                        regulator-suspend-microvolt = <1800000>;
348                    };
349                };
350
351                vdd_0v75_s3: nldo-reg1 {
352                    regulator-always-on;
353                    regulator-boot-on;
354                    regulator-min-microvolt = <750000>;
355                    regulator-max-microvolt = <750000>;
356                    regulator-ramp-delay = <12500>;
357                    regulator-name = "vdd_0v75_s3";
358                    regulator-state-mem {
359                        regulator-on-in-suspend;
360                        regulator-suspend-microvolt = <750000>;
361                    };
362                };
363
364                vdd2l_0v9_ddr_s3: nldo-reg2 {
365                    regulator-always-on;
366                    regulator-boot-on;
367                    regulator-min-microvolt = <900000>;
368                    regulator-max-microvolt = <900000>;
369                    regulator-name = "vdd2l_0v9_ddr_s3";
370                    regulator-state-mem {
371                        regulator-on-in-suspend;
372                        regulator-suspend-microvolt = <900000>;
373                    };
374                };
375
376                master_nldo3: nldo-reg3 {
377                    regulator-name = "master_nldo3";
378                    regulator-state-mem {
379                        regulator-off-in-suspend;
380                    };
381                };
382
383                avdd_0v75_s0: nldo-reg4 {
384                    regulator-always-on;
385                    regulator-boot-on;
386                    regulator-min-microvolt = <750000>;
387                    regulator-max-microvolt = <750000>;
388                    regulator-name = "avdd_0v75_s0";
389                    regulator-state-mem {
390                        regulator-off-in-suspend;
391                    };
392                };
393
394                vdd_0v85_s0: nldo-reg5 {
395                    regulator-always-on;
396                    regulator-boot-on;
397                    regulator-min-microvolt = <850000>;
398                    regulator-max-microvolt = <850000>;
399                    regulator-name = "vdd_0v85_s0";
400                    regulator-state-mem {
401                        regulator-off-in-suspend;
402                    };
403                };
404            };
405        };
406    };
407