xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mfd/rk816.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1RK816 Power Management Integrated Circuit
2
3Required properties:
4- compatible: "rockchip,rk816"
5- reg: I2C slave address
6- interrupt-parent: The parent interrupt controller.
7- interrupts: the interrupt outputs of the controller.
8- #clock-cells: from common clock binding; shall be set to 1 (multiple clock
9  outputs).
10
11Optional properties:
12- clock-output-names: From common clock binding to override the
13  default output clock name
14- rockchip,system-power-controller: Telling whether or not this pmic is controlling
15  the system power.
16- gpio-controller: Specifies that the node is a gpio controller when you attempt to
17  use the TS pin of RK816 by GPIO general interface.
18- #gpio-cells: Should be two. The first cell is the GPIO number and the second cell
19  is used to specify the GPIO polarity.
20- wakeup-source: Flag to indicate this device can wake system (suspend/resume)
21- vcc1-supply:  The input supply for DCDC_REG1
22- vcc2-supply:  The input supply for DCDC_REG2
23- vcc3-supply:  The input supply for DCDC_REG3
24- vcc4-supply:  The input supply for DCDC_REG4
25- vcc5-supply:  The input supply for LDO_REG1, LDO_REG2, LDO_REG3
26- vcc6-supply:  The input supply for LDO_REG4, LDO_REG5, LDO_REG6
27
28- regulator-initial-mode: default mode to set on startup
29- regulator-initial-mode is set as:
30	REGULATOR_MODE_FAST			0x1
31	REGULATOR_MODE_NORMAL			0x2
32Regulators: All the regulators of RK816 to be instantiated shall be
33listed in a child node named 'regulators'. Each regulator is represented
34by a child node of the 'regulators' node.
35
36	regulator-name {
37		/* standard regulator bindings here */
38	};
39
40Following regulators of the RK816 PMIC block are supported. Note that
41the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
42number as described in RK816 datasheet.
43
44	- DCDC_REGn
45		- valid values for n are 1 to 4.
46	- LDO_REGn
47		- valid values for n are 1 to 6.
48
49Standard regulator bindings are used inside regulator subnodes. Check
50  Documentation/devicetree/bindings/regulator/regulator.txt
51for more details
52
53Gpio, Rtc, Pwrkey: the node are represented like below. When you attempt to enable
54  the module, setting the "status" to be "okay", otherwise "disabled".
55
56		rtc {
57			status = "okay";
58		};
59
60		pwrkey {
61			status = "okay";
62		};
63
64		gpio {
65			status = "okay";
66		};
67
68Example:
69	rk816: pmic@1a {
70		compatible = "rockchip,rk816";
71		status = "disabled";
72		reg = <0x1a>;
73		clock-output-names = "xin32k", "wifibt_32kin";
74		interrupt-parent = <&gpio0>;
75		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
76		pinctrl-names = "default";
77		pinctrl-0 = <&pmic_int>;
78		rockchip,system-power-controller;
79		wakeup-source;
80		#clock-cells = <1>;
81		gpio-controller;
82		#gpio-cells = <2>;
83
84		vcc1-supply = <&vcc_sys>;
85		vcc2-supply = <&vcc_sys>;
86		vcc3-supply = <&vcc_sys>;
87		vcc4-supply = <&vcc_sys>;
88		vcc5-supply = <&vcc_sys>;
89		vcc6-supply = <&vcc_sys>;
90
91		rtc {
92			status = "okay";
93		};
94
95		pwrkey {
96			status = "okay";
97		};
98
99		gpio {
100			status = "okay";
101		};
102
103		regulators {
104			vdd_cpu: DCDC_REG1 {
105				regulator-name = "vdd_logic";
106				regulator-always-on;
107				regulator-boot-on;
108				regulator-min-microvolt = <750000>;
109				regulator-max-microvolt = <1450000>;
110				regulator-ramp-delay = <6001>;
111				regulator-initial-mode = <1>;
112				regulator-state-mem {
113					regulator-off-in-suspend;
114				};
115			};
116			vdd_gpu: DCDC_REG2 {
117				regulator-name = "vdd_gpu";
118				regulator-always-on;
119				regulator-boot-on;
120				regulator-min-microvolt = <800000>;
121				regulator-max-microvolt = <1250000>;
122				regulator-ramp-delay = <6001>;
123				regulator-initial-mode = <1>;
124				regulator-state-mem {
125					regulator-on-in-suspend;
126					regulator-suspend-microvolt = <1000000>;
127				};
128			};
129
130			vcc_ddr: DCDC_REG3 {
131				regulator-always-on;
132				regulator-boot-on;
133				regulator-name = "vcc_ddr";
134				regulator-initial-mode = <1>;
135				regulator-state-mem {
136					regulator-on-in-suspend;
137				};
138			};
139
140			vcc33_io: DCDC_REG4 {
141				regulator-always-on;
142				regulator-boot-on;
143				regulator-min-microvolt = <3300000>;
144				regulator-max-microvolt = <3300000>;
145				regulator-name = "vcc33_io";
146				regulator-initial-mode = <1>;
147				regulator-state-mem {
148					regulator-on-in-suspend;
149					regulator-suspend-microvolt = <3300000>;
150				};
151			};
152
153			vccio_pmu: LDO_REG1 {
154				regulator-always-on;
155				regulator-boot-on;
156				regulator-min-microvolt = <3300000>;
157				regulator-max-microvolt = <3300000>;
158				regulator-name = "vccio_pmu";
159				regulator-state-mem {
160					regulator-on-in-suspend;
161					regulator-suspend-microvolt = <3300000>;
162				};
163			};
164
165			vcc_tp: LDO_REG2 {
166				regulator-always-on;
167				regulator-boot-on;
168				regulator-min-microvolt = <3300000>;
169				regulator-max-microvolt = <3300000>;
170				regulator-name = "vcc_tp";
171				regulator-state-mem {
172					regulator-off-in-suspend;
173				};
174			};
175
176			vdd_10: LDO_REG3 {
177				regulator-always-on;
178				regulator-boot-on;
179				regulator-min-microvolt = <1000000>;
180				regulator-max-microvolt = <1000000>;
181				regulator-name = "vdd_10";
182				regulator-state-mem {
183					regulator-on-in-suspend;
184					regulator-suspend-microvolt = <1000000>;
185				};
186			};
187
188			vcc18_lcd: LDO_REG4 {
189				regulator-always-on;
190				regulator-boot-on;
191				regulator-min-microvolt = <1800000>;
192				regulator-max-microvolt = <1800000>;
193				regulator-name = "vcc18_lcd";
194				regulator-state-mem {
195					regulator-on-in-suspend;
196					regulator-suspend-microvolt = <1800000>;
197				};
198			};
199
200			vccio_sd: LDO_REG5 {
201				regulator-always-on;
202				regulator-boot-on;
203				regulator-min-microvolt = <1800000>;
204				regulator-max-microvolt = <3300000>;
205				regulator-name = "vccio_sd";
206				regulator-state-mem {
207					regulator-on-in-suspend;
208					regulator-suspend-microvolt = <3300000>;
209				};
210			};
211
212			vdd10_lcd: LDO_REG6 {
213				regulator-always-on;
214				regulator-boot-on;
215				regulator-min-microvolt = <1000000>;
216				regulator-max-microvolt = <1000000>;
217				regulator-name = "vdd10_lcd";
218				regulator-state-mem {
219					regulator-on-in-suspend;
220					regulator-suspend-microvolt = <1000000>;
221				};
222			};
223
224		};
225	};
226