blob: 839c0521f1e5303c612a209c785aff87d3ec8414 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/rockchip,rk809.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RK809 Power Management Integrated Circuit
8
9maintainers:
10 - Chris Zhong <zyw@rock-chips.com>
11 - Zhang Qing <zhangqing@rock-chips.com>
12
13description: |
14 Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD
15 that includes regulators, an RTC, and power button.
16
17properties:
18 compatible:
19 enum:
20 - rockchip,rk809
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 minimum: 0
32 maximum: 1
33
34 clock-output-names:
35 description:
36 From common clock binding to override the default output clock name.
37
38 rockchip,system-power-controller:
39 type: boolean
40 deprecated: true
41 description:
42 Telling whether or not this PMIC is controlling the system power.
43
44 system-power-controller: true
45
46 wakeup-source:
47 type: boolean
48 description:
49 Device can be used as a wakeup source.
50
51 vcc1-supply:
52 description:
53 The input supply for DCDC_REG1.
54
55 vcc2-supply:
56 description:
57 The input supply for DCDC_REG2.
58
59 vcc3-supply:
60 description:
61 The input supply for DCDC_REG3.
62
63 vcc4-supply:
64 description:
65 The input supply for DCDC_REG4.
66
67 vcc5-supply:
68 description:
69 The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
70
71 vcc6-supply:
72 description:
73 The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
74
75 vcc7-supply:
76 description:
77 The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
78
79 vcc8-supply:
80 description:
81 The input supply for SWITCH_REG1.
82
83 vcc9-supply:
84 description:
85 The input supply for DCDC_REG5 and SWITCH_REG2.
86
87 regulators:
88 type: object
89 patternProperties:
90 "^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$":
91 type: object
92 $ref: /schemas/regulator/regulator.yaml#
93 unevaluatedProperties: false
94 unevaluatedProperties: false
95
96allOf:
97 - if:
98 properties:
99 '#clock-cells':
100 const: 0
101
102 then:
103 properties:
104 clock-output-names:
105 maxItems: 1
106
107 else:
108 properties:
109 clock-output-names:
110 maxItems: 2
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 reg = <0x1b>;
132 #clock-cells = <1>;
133 clock-output-names = "xin32k", "rk808-clkout2";
134 interrupt-parent = <&gpio3>;
135 interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&pmic_int_l_pin>;
138 rockchip,system-power-controller;
139 wakeup-source;
140
141 vcc1-supply = <&vcc_sysin>;
142 vcc2-supply = <&vcc_sysin>;
143 vcc3-supply = <&vcc_sysin>;
144 vcc4-supply = <&vcc_sysin>;
145 vcc6-supply = <&vcc_sysin>;
146 vcc7-supply = <&vcc_sysin>;
147 vcc8-supply = <&vcc3v3_sys>;
148 vcc9-supply = <&vcc_sysin>;
149 vcc10-supply = <&vcc_sysin>;
150 vcc11-supply = <&vcc_sysin>;
151 vcc12-supply = <&vcc3v3_sys>;
152
153 regulators {
154 vdd_center: DCDC_REG1 {
155 regulator-name = "vdd_center";
156 regulator-always-on;
157 regulator-boot-on;
158 regulator-min-microvolt = <750000>;
159 regulator-max-microvolt = <1350000>;
160 regulator-ramp-delay = <6001>;
161 regulator-state-mem {
162 regulator-off-in-suspend;
163 };
164 };
165
166 vdd_cpu_l: DCDC_REG2 {
167 regulator-name = "vdd_cpu_l";
168 regulator-always-on;
169 regulator-boot-on;
170 regulator-min-microvolt = <750000>;
171 regulator-max-microvolt = <1350000>;
172 regulator-ramp-delay = <6001>;
173 regulator-state-mem {
174 regulator-off-in-suspend;
175 };
176 };
177
178 vcc_ddr: DCDC_REG3 {
179 regulator-name = "vcc_ddr";
180 regulator-always-on;
181 regulator-boot-on;
182 regulator-state-mem {
183 regulator-on-in-suspend;
184 };
185 };
186
187 vcc_1v8: vcc_wl: DCDC_REG4 {
188 regulator-name = "vcc_1v8";
189 regulator-always-on;
190 regulator-boot-on;
191 regulator-min-microvolt = <1800000>;
192 regulator-max-microvolt = <1800000>;
193 regulator-state-mem {
194 regulator-on-in-suspend;
195 regulator-suspend-microvolt = <1800000>;
196 };
197 };
198
199 vcc1v8_pmupll: LDO_REG3 {
200 regulator-name = "vcc1v8_pmupll";
201 regulator-always-on;
202 regulator-boot-on;
203 regulator-min-microvolt = <1800000>;
204 regulator-max-microvolt = <1800000>;
205 regulator-state-mem {
206 regulator-on-in-suspend;
207 regulator-suspend-microvolt = <1800000>;
208 };
209 };
210
211 vcc_sdio: LDO_REG4 {
212 regulator-name = "vcc_sdio";
213 regulator-always-on;
214 regulator-boot-on;
215 regulator-min-microvolt = <1800000>;
216 regulator-max-microvolt = <3000000>;
217 regulator-state-mem {
218 regulator-on-in-suspend;
219 regulator-suspend-microvolt = <3000000>;
220 };
221 };
222
223 vcca3v0_codec: LDO_REG5 {
224 regulator-name = "vcca3v0_codec";
225 regulator-always-on;
226 regulator-boot-on;
227 regulator-min-microvolt = <3000000>;
228 regulator-max-microvolt = <3000000>;
229 regulator-state-mem {
230 regulator-off-in-suspend;
231 };
232 };
233
234 vcc_1v5: LDO_REG6 {
235 regulator-name = "vcc_1v5";
236 regulator-always-on;
237 regulator-boot-on;
238 regulator-min-microvolt = <1500000>;
239 regulator-max-microvolt = <1500000>;
240 regulator-state-mem {
241 regulator-on-in-suspend;
242 regulator-suspend-microvolt = <1500000>;
243 };
244 };
245
246 vcca1v8_codec: LDO_REG7 {
247 regulator-name = "vcca1v8_codec";
248 regulator-always-on;
249 regulator-boot-on;
250 regulator-min-microvolt = <1800000>;
251 regulator-max-microvolt = <1800000>;
252 regulator-state-mem {
253 regulator-off-in-suspend;
254 };
255 };
256
257 vcc_3v0: LDO_REG8 {
258 regulator-name = "vcc_3v0";
259 regulator-always-on;
260 regulator-boot-on;
261 regulator-min-microvolt = <3000000>;
262 regulator-max-microvolt = <3000000>;
263 regulator-state-mem {
264 regulator-on-in-suspend;
265 regulator-suspend-microvolt = <3000000>;
266 };
267 };
268
269 vcc3v3_s3: SWITCH_REG1 {
270 regulator-name = "vcc3v3_s3";
271 regulator-always-on;
272 regulator-boot-on;
273 regulator-state-mem {
274 regulator-off-in-suspend;
275 };
276 };
277
278 vcc3v3_s0: SWITCH_REG2 {
279 regulator-name = "vcc3v3_s0";
280 regulator-always-on;
281 regulator-boot-on;
282 regulator-state-mem {
283 regulator-off-in-suspend;
284 };
285 };
286 };
287 };
288 };