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,rk808.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RK808 Power Management Integrated Circuit
8
9maintainers:
10  - Chris Zhong <zyw@rock-chips.com>
11  - Zhang Qing <zhangqing@rock-chips.com>
12
13description: |
14  Rockchip RK808 series PMIC. This device consists of an i2c controlled MFD
15  that includes regulators, an RTC, and a power button.
16
17properties:
18  compatible:
19    enum:
20      - rockchip,rk808
21
22  reg:
23    maxItems: 1
24
25  interrupts:
26    maxItems: 1
27
28  '#clock-cells':
29    description:
30      See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
31    const: 1
32
33  clock-output-names:
34    description:
35      From common clock binding to override the default output clock name.
36    maxItems: 2
37
38  rockchip,system-power-controller:
39    type: boolean
40    description:
41      Telling whether or not this PMIC is controlling the system power.
42
43  wakeup-source:
44    type: boolean
45    description:
46      Device can be used as a wakeup source.
47
48  vcc1-supply:
49    description:
50      The input supply for DCDC_REG1.
51
52  vcc2-supply:
53    description:
54      The input supply for DCDC_REG2.
55
56  vcc3-supply:
57    description:
58      The input supply for DCDC_REG3.
59
60  vcc4-supply:
61    description:
62      The input supply for DCDC_REG4.
63
64  vcc6-supply:
65    description:
66      The input supply for LDO_REG1 and LDO_REG2.
67
68  vcc7-supply:
69    description:
70      The input supply for LDO_REG3 and LDO_REG7.
71
72  vcc8-supply:
73    description:
74      The input supply for SWITCH_REG1.
75
76  vcc9-supply:
77    description:
78      The input supply for LDO_REG4 and LDO_REG5.
79
80  vcc10-supply:
81    description:
82      The input supply for LDO_REG6.
83
84  vcc11-supply:
85    description:
86      The input supply for LDO_REG8.
87
88  vcc12-supply:
89    description:
90      The input supply for SWITCH_REG2.
91
92  vddio-supply:
93    description:
94      The input supply for digital IO.
95
96  dvs-gpios:
97    description: |
98      buck1/2 can be controlled by gpio dvs, this is GPIO specifiers for
99      2 host gpio's used for dvs. The format of the gpio specifier
100      depends in the gpio controller. If DVS GPIOs aren't present,
101      voltage changes will happen very quickly with no slow ramp time.
102    maxItems: 2
103
104  regulators:
105    type: object
106    patternProperties:
107      "^(DCDC_REG[1-4]|LDO_REG[1-8]|SWITCH_REG[1-2])$":
108        type: object
109        $ref: ../regulator/regulator.yaml#
110    unevaluatedProperties: false
111
112required:
113  - compatible
114  - reg
115  - interrupts
116  - "#clock-cells"
117
118additionalProperties: false
119
120examples:
121  - |
122    #include <dt-bindings/pinctrl/rockchip.h>
123    #include <dt-bindings/interrupt-controller/irq.h>
124    #include <dt-bindings/gpio/gpio.h>
125    i2c {
126        #address-cells = <1>;
127        #size-cells = <0>;
128
129        rk808: pmic@1b {
130            compatible = "rockchip,rk808";
131            clock-output-names = "xin32k", "rk808-clkout2";
132            interrupt-parent = <&gpio0>;
133            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
134            pinctrl-names = "default";
135            pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>;
136            dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
137                <&gpio7 15 GPIO_ACTIVE_HIGH>;
138            reg = <0x1b>;
139            rockchip,system-power-controller;
140            wakeup-source;
141            #clock-cells = <1>;
142
143            vcc8-supply = <&vcc_18>;
144            vcc9-supply = <&vcc_io>;
145            vcc10-supply = <&vcc_io>;
146            vcc12-supply = <&vcc_io>;
147            vddio-supply = <&vccio_pmu>;
148
149            regulators {
150                vdd_cpu: DCDC_REG1 {
151                    regulator-always-on;
152                    regulator-boot-on;
153                    regulator-min-microvolt = <750000>;
154                    regulator-max-microvolt = <1300000>;
155                    regulator-name = "vdd_arm";
156                };
157
158                vdd_gpu: DCDC_REG2 {
159                    regulator-always-on;
160                    regulator-boot-on;
161                    regulator-min-microvolt = <850000>;
162                    regulator-max-microvolt = <1250000>;
163                    regulator-name = "vdd_gpu";
164                };
165
166                vcc_ddr: DCDC_REG3 {
167                    regulator-always-on;
168                    regulator-boot-on;
169                    regulator-name = "vcc_ddr";
170                };
171
172                vcc_io: DCDC_REG4 {
173                    regulator-always-on;
174                    regulator-boot-on;
175                    regulator-min-microvolt = <3300000>;
176                    regulator-max-microvolt = <3300000>;
177                    regulator-name = "vcc_io";
178                };
179
180                vccio_pmu: LDO_REG1 {
181                    regulator-always-on;
182                    regulator-boot-on;
183                    regulator-min-microvolt = <3300000>;
184                    regulator-max-microvolt = <3300000>;
185                    regulator-name = "vccio_pmu";
186                };
187
188                vcc_tp: LDO_REG2 {
189                    regulator-always-on;
190                    regulator-boot-on;
191                    regulator-min-microvolt = <3300000>;
192                    regulator-max-microvolt = <3300000>;
193                    regulator-name = "vcc_tp";
194                };
195
196                vdd_10: LDO_REG3 {
197                    regulator-always-on;
198                    regulator-boot-on;
199                    regulator-min-microvolt = <1000000>;
200                    regulator-max-microvolt = <1000000>;
201                    regulator-name = "vdd_10";
202                };
203
204                vcc18_lcd: LDO_REG4 {
205                    regulator-always-on;
206                    regulator-boot-on;
207                    regulator-min-microvolt = <1800000>;
208                    regulator-max-microvolt = <1800000>;
209                    regulator-name = "vcc18_lcd";
210                };
211
212                vccio_sd: LDO_REG5 {
213                    regulator-always-on;
214                    regulator-boot-on;
215                    regulator-min-microvolt = <1800000>;
216                    regulator-max-microvolt = <3300000>;
217                    regulator-name = "vccio_sd";
218                };
219
220                vdd10_lcd: LDO_REG6 {
221                    regulator-always-on;
222                    regulator-boot-on;
223                    regulator-min-microvolt = <1000000>;
224                    regulator-max-microvolt = <1000000>;
225                    regulator-name = "vdd10_lcd";
226                };
227
228                vcc_18: LDO_REG7 {
229                    regulator-always-on;
230                    regulator-boot-on;
231                    regulator-min-microvolt = <1800000>;
232                    regulator-max-microvolt = <1800000>;
233                    regulator-name = "vcc_18";
234                };
235
236                vcca_codec: LDO_REG8 {
237                    regulator-always-on;
238                    regulator-boot-on;
239                    regulator-min-microvolt = <3300000>;
240                    regulator-max-microvolt = <3300000>;
241                    regulator-name = "vcca_codec";
242                };
243
244                vcc_wl: SWITCH_REG1 {
245                    regulator-always-on;
246                    regulator-boot-on;
247                    regulator-name = "vcc_wl";
248                };
249
250                vcc_lcd: SWITCH_REG2 {
251                    regulator-always-on;
252                    regulator-boot-on;
253                    regulator-name = "vcc_lcd";
254                };
255            };
256        };
257    };
258