1RK8XX Power Management Integrated Circuit
2
3The rk8xx family current members:
4rk805
5rk808
6rk809
7rk817
8rk818
9
10Required properties:
11- compatible: "rockchip,rk805"
12- compatible: "rockchip,rk808"
13- compatible: "rockchip,rk809"
14- compatible: "rockchip,rk817"
15- compatible: "rockchip,rk818"
16- reg: I2C slave address
17- interrupts: the interrupt outputs of the controller.
18- #clock-cells: from common clock binding; shall be set to 1 (multiple clock
19  outputs). See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
20
21Optional properties:
22- clock-output-names: From common clock binding to override the
23  default output clock name
24- rockchip,system-power-controller: Telling whether or not this pmic is controlling
25  the system power.
26
27Optional RK805 properties:
28- vcc1-supply:  The input supply for DCDC_REG1
29- vcc2-supply:  The input supply for DCDC_REG2
30- vcc3-supply:  The input supply for DCDC_REG3
31- vcc4-supply:  The input supply for DCDC_REG4
32- vcc5-supply:  The input supply for LDO_REG1 and LDO_REG2
33- vcc6-supply:  The input supply for LDO_REG3
34
35Optional RK808 properties:
36- vcc1-supply:  The input supply for DCDC_REG1
37- vcc2-supply:  The input supply for DCDC_REG2
38- vcc3-supply:  The input supply for DCDC_REG3
39- vcc4-supply:  The input supply for DCDC_REG4
40- vcc6-supply:  The input supply for LDO_REG1 and LDO_REG2
41- vcc7-supply:  The input supply for LDO_REG3 and LDO_REG7
42- vcc8-supply:  The input supply for SWITCH_REG1
43- vcc9-supply:  The input supply for LDO_REG4 and LDO_REG5
44- vcc10-supply: The input supply for LDO_REG6
45- vcc11-supply: The input supply for LDO_REG8
46- vcc12-supply: The input supply for SWITCH_REG2
47- dvs-gpios:  buck1/2 can be controlled by gpio dvs, this is GPIO specifiers
48  for 2 host gpio's used for dvs. The format of the gpio specifier depends in
49  the gpio controller. If DVS GPIOs aren't present, voltage changes will happen
50  very quickly with no slow ramp time.
51
52Optional shared RK809 and RK817 properties:
53- vcc1-supply:  The input supply for DCDC_REG1
54- vcc2-supply:  The input supply for DCDC_REG2
55- vcc3-supply:  The input supply for DCDC_REG3
56- vcc4-supply:  The input supply for DCDC_REG4
57- vcc5-supply:  The input supply for LDO_REG1, LDO_REG2, LDO_REG3
58- vcc6-supply:  The input supply for LDO_REG4, LDO_REG5, LDO_REG6
59- vcc7-supply:  The input supply for LDO_REG7, LDO_REG8, LDO_REG9
60
61Optional RK809 properties:
62- vcc8-supply:  The input supply for SWITCH_REG1
63- vcc9-supply:  The input supply for DCDC_REG5, SWITCH_REG2
64
65Optional RK817 properties:
66- vcc8-supply:  The input supply for BOOST
67- vcc9-supply:  The input supply for OTG_SWITCH
68
69Optional RK818 properties:
70- vcc1-supply:  The input supply for DCDC_REG1
71- vcc2-supply:  The input supply for DCDC_REG2
72- vcc3-supply:  The input supply for DCDC_REG3
73- vcc4-supply:  The input supply for DCDC_REG4
74- boost-supply: The input supply for DCDC_BOOST
75- vcc6-supply:  The input supply for LDO_REG1 and LDO_REG2
76- vcc7-supply:  The input supply for LDO_REG3, LDO_REG5 and LDO_REG7
77- vcc8-supply:  The input supply for LDO_REG4, LDO_REG6 and LDO_REG8
78- vcc9-supply:  The input supply for LDO_REG9 and SWITCH_REG
79- h_5v-supply:  The input supply for HDMI_SWITCH
80- usb-supply:   The input supply for OTG_SWITCH
81
82Regulators: All the regulators of RK8XX to be instantiated shall be
83listed in a child node named 'regulators'. Each regulator is represented
84by a child node of the 'regulators' node.
85
86	regulator-name {
87		/* standard regulator bindings here */
88	};
89
90Following regulators of the RK805 PMIC regulators are supported. Note that
91the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
92number as described in RK805 datasheet.
93
94	- DCDC_REGn
95		- valid values for n are 1 to 4.
96	- LDO_REGn
97		- valid values for n are 1 to 3
98
99Following regulators of the RK808 PMIC block are supported. Note that
100the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
101number as described in RK808 datasheet.
102
103	- DCDC_REGn
104		- valid values for n are 1 to 4.
105	- LDO_REGn
106		- valid values for n are 1 to 8.
107	- SWITCH_REGn
108		- valid values for n are 1 to 2
109
110Following regulators of the RK809 and RK817 PMIC blocks are supported. Note that
111the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
112number as described in RK809 and RK817 datasheets.
113
114	- DCDC_REGn
115		- valid values for n are 1 to 5 for RK809.
116		- valid values for n are 1 to 4 for RK817.
117	- LDO_REGn
118		- valid values for n are 1 to 9 for RK809.
119		- valid values for n are 1 to 9 for RK817.
120	- SWITCH_REGn
121		- valid values for n are 1 to 2 for RK809.
122	- BOOST for RK817
123	- OTG_SWITCH for RK817
124
125Following regulators of the RK818 PMIC block are supported. Note that
126the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
127number as described in RK818 datasheet.
128
129	- DCDC_REGn
130		- valid values for n are 1 to 4.
131	- LDO_REGn
132		- valid values for n are 1 to 9.
133	- SWITCH_REG
134	- HDMI_SWITCH
135	- OTG_SWITCH
136
137It is necessary to configure three pins for both the RK809 and RK817, the three
138pins are "gpio_ts" "gpio_gt" "gpio_slp".
139	The gpio_gt and gpio_ts pins support the gpio function.
140	The gpio_slp pin is for controlling the pmic states, as below:
141		- reset
142		- power down
143		- sleep
144
145Standard regulator bindings are used inside regulator subnodes. Check
146  Documentation/devicetree/bindings/regulator/regulator.txt
147for more details
148
149Example:
150	rk808: pmic@1b {
151		compatible = "rockchip,rk808";
152		clock-output-names = "xin32k", "rk808-clkout2";
153		interrupt-parent = <&gpio0>;
154		interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
155		pinctrl-names = "default";
156		pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>;
157		dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
158			    <&gpio7 15 GPIO_ACTIVE_HIGH>;
159		reg = <0x1b>;
160		rockchip,system-power-controller;
161		wakeup-source;
162		#clock-cells = <1>;
163
164		vcc8-supply = <&vcc_18>;
165		vcc9-supply = <&vcc_io>;
166		vcc10-supply = <&vcc_io>;
167		vcc12-supply = <&vcc_io>;
168		vddio-supply = <&vccio_pmu>;
169
170		regulators {
171			vdd_cpu: DCDC_REG1 {
172				regulator-always-on;
173				regulator-boot-on;
174				regulator-min-microvolt = <750000>;
175				regulator-max-microvolt = <1300000>;
176				regulator-name = "vdd_arm";
177			};
178
179			vdd_gpu: DCDC_REG2 {
180				regulator-always-on;
181				regulator-boot-on;
182				regulator-min-microvolt = <850000>;
183				regulator-max-microvolt = <1250000>;
184				regulator-name = "vdd_gpu";
185			};
186
187			vcc_ddr: DCDC_REG3 {
188				regulator-always-on;
189				regulator-boot-on;
190				regulator-name = "vcc_ddr";
191			};
192
193			vcc_io: DCDC_REG4 {
194				regulator-always-on;
195				regulator-boot-on;
196				regulator-min-microvolt = <3300000>;
197				regulator-max-microvolt = <3300000>;
198				regulator-name = "vcc_io";
199			};
200
201			vccio_pmu: LDO_REG1 {
202				regulator-always-on;
203				regulator-boot-on;
204				regulator-min-microvolt = <3300000>;
205				regulator-max-microvolt = <3300000>;
206				regulator-name = "vccio_pmu";
207			};
208
209			vcc_tp: LDO_REG2 {
210				regulator-always-on;
211				regulator-boot-on;
212				regulator-min-microvolt = <3300000>;
213				regulator-max-microvolt = <3300000>;
214				regulator-name = "vcc_tp";
215			};
216
217			vdd_10: LDO_REG3 {
218				regulator-always-on;
219				regulator-boot-on;
220				regulator-min-microvolt = <1000000>;
221				regulator-max-microvolt = <1000000>;
222				regulator-name = "vdd_10";
223			};
224
225			vcc18_lcd: LDO_REG4 {
226				regulator-always-on;
227				regulator-boot-on;
228				regulator-min-microvolt = <1800000>;
229				regulator-max-microvolt = <1800000>;
230				regulator-name = "vcc18_lcd";
231			};
232
233			vccio_sd: LDO_REG5 {
234				regulator-always-on;
235				regulator-boot-on;
236				regulator-min-microvolt = <1800000>;
237				regulator-max-microvolt = <3300000>;
238				regulator-name = "vccio_sd";
239			};
240
241			vdd10_lcd: LDO_REG6 {
242				regulator-always-on;
243				regulator-boot-on;
244				regulator-min-microvolt = <1000000>;
245				regulator-max-microvolt = <1000000>;
246				regulator-name = "vdd10_lcd";
247			};
248
249			vcc_18: LDO_REG7 {
250				regulator-always-on;
251				regulator-boot-on;
252				regulator-min-microvolt = <1800000>;
253				regulator-max-microvolt = <1800000>;
254				regulator-name = "vcc_18";
255			};
256
257			vcca_codec: LDO_REG8 {
258				regulator-always-on;
259				regulator-boot-on;
260				regulator-min-microvolt = <3300000>;
261				regulator-max-microvolt = <3300000>;
262				regulator-name = "vcca_codec";
263			};
264
265			vcc_wl: SWITCH_REG1 {
266				regulator-always-on;
267				regulator-boot-on;
268				regulator-name = "vcc_wl";
269			};
270
271			vcc_lcd: SWITCH_REG2 {
272				regulator-always-on;
273				regulator-boot-on;
274				regulator-name = "vcc_lcd";
275			};
276		};
277	};
278