xref: /linux/Documentation/devicetree/bindings/mfd/rockchip,rk806.yaml (revision 00a37271c8a68070dc64f81a5d64644beb4cef2f)
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  system-power-controller: true
33
34  rockchip,reset-mode:
35    $ref: /schemas/types.yaml#/definitions/uint32
36    enum: [0, 1, 2]
37    description:
38      Mode to use when a reset of the PMIC is triggered.
39
40      The reset can be triggered either programmatically, via one of
41      the PWRCTRL pins (provided additional configuration) or
42      asserting RESETB pin low.
43
44      The following modes are supported
45
46      - 0; restart PMU,
47      - 1; reset all power off reset registers and force state to
48        switch to ACTIVE mode,
49      - 2; same as mode 1 and also pull RESETB pin down for 5ms,
50
51      For example, some hardware may require a full restart (mode 0)
52      in order to function properly as regulators are shortly
53      interrupted in this mode.
54
55  vcc1-supply:
56    description:
57      The input supply for dcdc-reg1.
58
59  vcc2-supply:
60    description:
61      The input supply for dcdc-reg2.
62
63  vcc3-supply:
64    description:
65      The input supply for dcdc-reg3.
66
67  vcc4-supply:
68    description:
69      The input supply for dcdc-reg4.
70
71  vcc5-supply:
72    description:
73      The input supply for dcdc-reg5.
74
75  vcc6-supply:
76    description:
77      The input supply for dcdc-reg6.
78
79  vcc7-supply:
80    description:
81      The input supply for dcdc-reg7.
82
83  vcc8-supply:
84    description:
85      The input supply for dcdc-reg8.
86
87  vcc9-supply:
88    description:
89      The input supply for dcdc-reg9.
90
91  vcc10-supply:
92    description:
93      The input supply for dcdc-reg10.
94
95  vcc11-supply:
96    description:
97      The input supply for pldo-reg1, pldo-reg2 and pldo-reg3.
98
99  vcc12-supply:
100    description:
101      The input supply for pldo-reg4 and pldo-reg5.
102
103  vcc13-supply:
104    description:
105      The input supply for nldo-reg1, nldo-reg2 and nldo-reg3.
106
107  vcc14-supply:
108    description:
109      The input supply for nldo-reg4 and nldo-reg5.
110
111  vcca-supply:
112    description:
113      The input supply for pldo-reg6.
114
115  regulators:
116    type: object
117    additionalProperties: false
118    patternProperties:
119      "^(dcdc-reg([1-9]|10)|pldo-reg[1-6]|nldo-reg[1-5])$":
120        type: object
121        $ref: /schemas/regulator/regulator.yaml#
122        unevaluatedProperties: false
123
124patternProperties:
125  '-pins$':
126    type: object
127    additionalProperties: false
128    $ref: /schemas/pinctrl/pinmux-node.yaml
129
130    properties:
131      function:
132        enum: [pin_fun0, pin_fun1, pin_fun2, pin_fun3, pin_fun4, pin_fun5]
133
134      pins:
135        $ref: /schemas/types.yaml#/definitions/string
136        enum: [gpio_pwrctrl1, gpio_pwrctrl2, gpio_pwrctrl3]
137
138allOf:
139  - $ref: /schemas/spi/spi-peripheral-props.yaml
140
141required:
142  - compatible
143  - reg
144  - interrupts
145
146unevaluatedProperties: false
147
148examples:
149  - |
150    #include <dt-bindings/pinctrl/rockchip.h>
151    #include <dt-bindings/interrupt-controller/irq.h>
152    #include <dt-bindings/gpio/gpio.h>
153    spi {
154        #address-cells = <1>;
155        #size-cells = <0>;
156
157        pmic@0 {
158            compatible = "rockchip,rk806";
159            reg = <0x0>;
160
161            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
162
163            vcc1-supply = <&vcc5v0_sys>;
164            vcc2-supply = <&vcc5v0_sys>;
165            vcc3-supply = <&vcc5v0_sys>;
166            vcc4-supply = <&vcc5v0_sys>;
167            vcc5-supply = <&vcc5v0_sys>;
168            vcc6-supply = <&vcc5v0_sys>;
169            vcc7-supply = <&vcc5v0_sys>;
170            vcc8-supply = <&vcc5v0_sys>;
171            vcc9-supply = <&vcc5v0_sys>;
172            vcc10-supply = <&vcc5v0_sys>;
173            vcc11-supply = <&vcc_2v0_pldo_s3>;
174            vcc12-supply = <&vcc5v0_sys>;
175            vcc13-supply = <&vcc5v0_sys>;
176            vcc14-supply = <&vcc_1v1_nldo_s3>;
177            vcca-supply = <&vcc5v0_sys>;
178
179            regulators {
180                vdd_gpu_s0: dcdc-reg1 {
181                    regulator-always-on;
182                    regulator-boot-on;
183                    regulator-min-microvolt = <550000>;
184                    regulator-max-microvolt = <950000>;
185                    regulator-ramp-delay = <12500>;
186                    regulator-name = "vdd_gpu_s0";
187                    regulator-state-mem {
188                        regulator-off-in-suspend;
189                    };
190                };
191
192                vdd_npu_s0: dcdc-reg2 {
193                    regulator-always-on;
194                    regulator-boot-on;
195                    regulator-min-microvolt = <550000>;
196                    regulator-max-microvolt = <950000>;
197                    regulator-ramp-delay = <12500>;
198                    regulator-name = "vdd_npu_s0";
199                    regulator-state-mem {
200                        regulator-off-in-suspend;
201                    };
202                };
203
204                vdd_log_s0: dcdc-reg3 {
205                    regulator-always-on;
206                    regulator-boot-on;
207                    regulator-min-microvolt = <750000>;
208                    regulator-max-microvolt = <750000>;
209                    regulator-ramp-delay = <12500>;
210                    regulator-name = "vdd_log_s0";
211                    regulator-state-mem {
212                        regulator-on-in-suspend;
213                        regulator-suspend-microvolt = <750000>;
214                    };
215                };
216
217                vdd_vdenc_s0: dcdc-reg4 {
218                    regulator-always-on;
219                    regulator-boot-on;
220                    regulator-min-microvolt = <550000>;
221                    regulator-max-microvolt = <950000>;
222                    regulator-ramp-delay = <12500>;
223                    regulator-name = "vdd_vdenc_s0";
224                    regulator-state-mem {
225                        regulator-off-in-suspend;
226                    };
227                };
228
229                vdd_gpu_mem_s0: dcdc-reg5 {
230                    regulator-always-on;
231                    regulator-boot-on;
232                    regulator-min-microvolt = <675000>;
233                    regulator-max-microvolt = <950000>;
234                    regulator-ramp-delay = <12500>;
235                    regulator-name = "vdd_gpu_mem_s0";
236                    regulator-state-mem {
237                        regulator-off-in-suspend;
238                    };
239                };
240
241                vdd_npu_mem_s0: dcdc-reg6 {
242                    regulator-always-on;
243                    regulator-boot-on;
244                    regulator-min-microvolt = <675000>;
245                    regulator-max-microvolt = <950000>;
246                    regulator-ramp-delay = <12500>;
247                    regulator-name = "vdd_npu_mem_s0";
248                    regulator-state-mem {
249                        regulator-off-in-suspend;
250                    };
251                };
252
253                vcc_2v0_pldo_s3: dcdc-reg7 {
254                    regulator-always-on;
255                    regulator-boot-on;
256                    regulator-min-microvolt = <2000000>;
257                    regulator-max-microvolt = <2000000>;
258                    regulator-ramp-delay = <12500>;
259                    regulator-name = "vdd_2v0_pldo_s3";
260                    regulator-state-mem {
261                        regulator-on-in-suspend;
262                        regulator-suspend-microvolt = <2000000>;
263                    };
264                };
265
266                vdd_vdenc_mem_s0: dcdc-reg8 {
267                    regulator-always-on;
268                    regulator-boot-on;
269                    regulator-min-microvolt = <675000>;
270                    regulator-max-microvolt = <950000>;
271                    regulator-ramp-delay = <12500>;
272                    regulator-name = "vdd_vdenc_mem_s0";
273                    regulator-state-mem {
274                        regulator-off-in-suspend;
275                    };
276                };
277
278                vdd2_ddr_s3: dcdc-reg9 {
279                    regulator-always-on;
280                    regulator-boot-on;
281                    regulator-name = "vdd2_ddr_s3";
282                    regulator-state-mem {
283                        regulator-on-in-suspend;
284                    };
285                };
286
287                vcc_1v1_nldo_s3: dcdc-reg10 {
288                    regulator-always-on;
289                    regulator-boot-on;
290                    regulator-min-microvolt = <1100000>;
291                    regulator-max-microvolt = <1100000>;
292                    regulator-ramp-delay = <12500>;
293                    regulator-name = "vcc_1v1_nldo_s3";
294                    regulator-state-mem {
295                        regulator-on-in-suspend;
296                        regulator-suspend-microvolt = <1100000>;
297                    };
298                };
299
300                avcc_1v8_s0: pldo-reg1 {
301                    regulator-always-on;
302                    regulator-boot-on;
303                    regulator-min-microvolt = <1800000>;
304                    regulator-max-microvolt = <1800000>;
305                    regulator-ramp-delay = <12500>;
306                    regulator-name = "avcc_1v8_s0";
307                    regulator-state-mem {
308                        regulator-off-in-suspend;
309                    };
310                };
311
312                vdd1_1v8_ddr_s3: pldo-reg2 {
313                    regulator-always-on;
314                    regulator-boot-on;
315                    regulator-min-microvolt = <1800000>;
316                    regulator-max-microvolt = <1800000>;
317                    regulator-ramp-delay = <12500>;
318                    regulator-name = "vdd1_1v8_ddr_s3";
319                    regulator-state-mem {
320                        regulator-on-in-suspend;
321                        regulator-suspend-microvolt = <1800000>;
322                    };
323                };
324
325                vcc_1v8_s3: pldo-reg3 {
326                    regulator-always-on;
327                    regulator-boot-on;
328                    regulator-min-microvolt = <1800000>;
329                    regulator-max-microvolt = <1800000>;
330                    regulator-ramp-delay = <12500>;
331                    regulator-name = "vcc_1v8_s3";
332                    regulator-state-mem {
333                        regulator-on-in-suspend;
334                        regulator-suspend-microvolt = <1800000>;
335                    };
336                };
337
338                vcc_3v3_s0: pldo-reg4 {
339                    regulator-always-on;
340                    regulator-boot-on;
341                    regulator-min-microvolt = <3300000>;
342                    regulator-max-microvolt = <3300000>;
343                    regulator-ramp-delay = <12500>;
344                    regulator-name = "vcc_3v3_s0";
345                    regulator-state-mem {
346                        regulator-off-in-suspend;
347                    };
348                };
349
350                vccio_sd_s0: pldo-reg5 {
351                    regulator-always-on;
352                    regulator-boot-on;
353                    regulator-min-microvolt = <1800000>;
354                    regulator-max-microvolt = <3300000>;
355                    regulator-ramp-delay = <12500>;
356                    regulator-name = "vccio_sd_s0";
357                    regulator-state-mem {
358                        regulator-off-in-suspend;
359                    };
360                };
361
362                master_pldo6_s3: pldo-reg6 {
363                    regulator-always-on;
364                    regulator-boot-on;
365                    regulator-min-microvolt = <1800000>;
366                    regulator-max-microvolt = <1800000>;
367                    regulator-name = "master_pldo6_s3";
368                    regulator-state-mem {
369                        regulator-on-in-suspend;
370                        regulator-suspend-microvolt = <1800000>;
371                    };
372                };
373
374                vdd_0v75_s3: nldo-reg1 {
375                    regulator-always-on;
376                    regulator-boot-on;
377                    regulator-min-microvolt = <750000>;
378                    regulator-max-microvolt = <750000>;
379                    regulator-ramp-delay = <12500>;
380                    regulator-name = "vdd_0v75_s3";
381                    regulator-state-mem {
382                        regulator-on-in-suspend;
383                        regulator-suspend-microvolt = <750000>;
384                    };
385                };
386
387                vdd2l_0v9_ddr_s3: nldo-reg2 {
388                    regulator-always-on;
389                    regulator-boot-on;
390                    regulator-min-microvolt = <900000>;
391                    regulator-max-microvolt = <900000>;
392                    regulator-name = "vdd2l_0v9_ddr_s3";
393                    regulator-state-mem {
394                        regulator-on-in-suspend;
395                        regulator-suspend-microvolt = <900000>;
396                    };
397                };
398
399                master_nldo3: nldo-reg3 {
400                    regulator-name = "master_nldo3";
401                    regulator-state-mem {
402                        regulator-off-in-suspend;
403                    };
404                };
405
406                avdd_0v75_s0: nldo-reg4 {
407                    regulator-always-on;
408                    regulator-boot-on;
409                    regulator-min-microvolt = <750000>;
410                    regulator-max-microvolt = <750000>;
411                    regulator-name = "avdd_0v75_s0";
412                    regulator-state-mem {
413                        regulator-off-in-suspend;
414                    };
415                };
416
417                vdd_0v85_s0: nldo-reg5 {
418                    regulator-always-on;
419                    regulator-boot-on;
420                    regulator-min-microvolt = <850000>;
421                    regulator-max-microvolt = <850000>;
422                    regulator-name = "vdd_0v85_s0";
423                    regulator-state-mem {
424                        regulator-off-in-suspend;
425                    };
426                };
427            };
428        };
429    };
430