Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
[sfrench/cifs-2.6.git] / Documentation / devicetree / bindings / mfd / rk808.txt
1 RK8XX Power Management Integrated Circuit
2
3 The rk8xx family current members:
4 rk805
5 rk808
6 rk809
7 rk817
8 rk818
9
10 Required 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
21 Optional 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
27 Optional 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
35 Optional 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
52 Optional 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
61 Optional RK809 properties:
62 - vcc8-supply:  The input supply for SWITCH_REG1
63 - vcc9-supply:  The input supply for DCDC_REG5, SWITCH_REG2
64
65 Optional RK817 properties:
66 - vcc8-supply:  The input supply for BOOST
67 - vcc9-supply:  The input supply for OTG_SWITCH
68
69 Optional 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
82 Regulators: All the regulators of RK8XX to be instantiated shall be
83 listed in a child node named 'regulators'. Each regulator is represented
84 by a child node of the 'regulators' node.
85
86         regulator-name {
87                 /* standard regulator bindings here */
88         };
89
90 Following regulators of the RK805 PMIC regulators are supported. Note that
91 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
92 number 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
99 Following regulators of the RK808 PMIC block are supported. Note that
100 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
101 number 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
110 Following regulators of the RK809 and RK817 PMIC blocks are supported. Note that
111 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
112 number 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
125 Following regulators of the RK818 PMIC block are supported. Note that
126 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
127 number 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
137 It is necessary to configure three pins for both the RK809 and RK817, the three
138 pins 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
145 Standard regulator bindings are used inside regulator subnodes. Check
146   Documentation/devicetree/bindings/regulator/regulator.txt
147 for more details
148
149 Example:
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         };