Merge tag 'block-5.14-2021-08-07' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.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 - wakeup-source: Device can be used as a wakeup source.
27
28 Optional RK805 properties:
29 - vcc1-supply:  The input supply for DCDC_REG1
30 - vcc2-supply:  The input supply for DCDC_REG2
31 - vcc3-supply:  The input supply for DCDC_REG3
32 - vcc4-supply:  The input supply for DCDC_REG4
33 - vcc5-supply:  The input supply for LDO_REG1 and LDO_REG2
34 - vcc6-supply:  The input supply for LDO_REG3
35
36 Optional RK808 properties:
37 - vcc1-supply:  The input supply for DCDC_REG1
38 - vcc2-supply:  The input supply for DCDC_REG2
39 - vcc3-supply:  The input supply for DCDC_REG3
40 - vcc4-supply:  The input supply for DCDC_REG4
41 - vcc6-supply:  The input supply for LDO_REG1 and LDO_REG2
42 - vcc7-supply:  The input supply for LDO_REG3 and LDO_REG7
43 - vcc8-supply:  The input supply for SWITCH_REG1
44 - vcc9-supply:  The input supply for LDO_REG4 and LDO_REG5
45 - vcc10-supply: The input supply for LDO_REG6
46 - vcc11-supply: The input supply for LDO_REG8
47 - vcc12-supply: The input supply for SWITCH_REG2
48 - dvs-gpios:  buck1/2 can be controlled by gpio dvs, this is GPIO specifiers
49   for 2 host gpio's used for dvs. The format of the gpio specifier depends in
50   the gpio controller. If DVS GPIOs aren't present, voltage changes will happen
51   very quickly with no slow ramp time.
52
53 Optional shared RK809 and RK817 properties:
54 - vcc1-supply:  The input supply for DCDC_REG1
55 - vcc2-supply:  The input supply for DCDC_REG2
56 - vcc3-supply:  The input supply for DCDC_REG3
57 - vcc4-supply:  The input supply for DCDC_REG4
58 - vcc5-supply:  The input supply for LDO_REG1, LDO_REG2, LDO_REG3
59 - vcc6-supply:  The input supply for LDO_REG4, LDO_REG5, LDO_REG6
60 - vcc7-supply:  The input supply for LDO_REG7, LDO_REG8, LDO_REG9
61
62 Optional RK809 properties:
63 - vcc8-supply:  The input supply for SWITCH_REG1
64 - vcc9-supply:  The input supply for DCDC_REG5, SWITCH_REG2
65
66 Optional RK817 properties:
67 - clocks:       The input clock for the audio codec
68 - clock-names:  The clock name for the codec clock. Should be "mclk".
69 - #sound-dai-cells: Needed for the interpretation of sound dais. Should be 0.
70
71 - vcc8-supply:  The input supply for BOOST
72 - vcc9-supply:  The input supply for OTG_SWITCH
73 - codec:        The child node for the codec to hold additional properties.
74                 If no additional properties are required for the codec, this
75                 node can be omitted.
76
77 - rockchip,mic-in-differential: Telling if the microphone uses differential
78                                 mode. Should be under the codec child node.
79
80 Optional RK818 properties:
81 - vcc1-supply:  The input supply for DCDC_REG1
82 - vcc2-supply:  The input supply for DCDC_REG2
83 - vcc3-supply:  The input supply for DCDC_REG3
84 - vcc4-supply:  The input supply for DCDC_REG4
85 - boost-supply: The input supply for DCDC_BOOST
86 - vcc6-supply:  The input supply for LDO_REG1 and LDO_REG2
87 - vcc7-supply:  The input supply for LDO_REG3, LDO_REG5 and LDO_REG7
88 - vcc8-supply:  The input supply for LDO_REG4, LDO_REG6 and LDO_REG8
89 - vcc9-supply:  The input supply for LDO_REG9 and SWITCH_REG
90 - h_5v-supply:  The input supply for HDMI_SWITCH
91 - usb-supply:   The input supply for OTG_SWITCH
92
93 Regulators: All the regulators of RK8XX to be instantiated shall be
94 listed in a child node named 'regulators'. Each regulator is represented
95 by a child node of the 'regulators' node.
96
97         regulator-name {
98                 /* standard regulator bindings here */
99         };
100
101 Following regulators of the RK805 PMIC regulators are supported. Note that
102 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
103 number as described in RK805 datasheet.
104
105         - DCDC_REGn
106                 - valid values for n are 1 to 4.
107         - LDO_REGn
108                 - valid values for n are 1 to 3
109
110 Following regulators of the RK808 PMIC block 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 RK808 datasheet.
113
114         - DCDC_REGn
115                 - valid values for n are 1 to 4.
116         - LDO_REGn
117                 - valid values for n are 1 to 8.
118         - SWITCH_REGn
119                 - valid values for n are 1 to 2
120
121 Following regulators of the RK809 and RK817 PMIC blocks are supported. Note that
122 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
123 number as described in RK809 and RK817 datasheets.
124
125         - DCDC_REGn
126                 - valid values for n are 1 to 5 for RK809.
127                 - valid values for n are 1 to 4 for RK817.
128         - LDO_REGn
129                 - valid values for n are 1 to 9 for RK809.
130                 - valid values for n are 1 to 9 for RK817.
131         - SWITCH_REGn
132                 - valid values for n are 1 to 2 for RK809.
133         - BOOST for RK817
134         - OTG_SWITCH for RK817
135
136 Following regulators of the RK818 PMIC block are supported. Note that
137 the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO
138 number as described in RK818 datasheet.
139
140         - DCDC_REGn
141                 - valid values for n are 1 to 4.
142         - LDO_REGn
143                 - valid values for n are 1 to 9.
144         - SWITCH_REG
145         - HDMI_SWITCH
146         - OTG_SWITCH
147
148 It is necessary to configure three pins for both the RK809 and RK817, the three
149 pins are "gpio_ts" "gpio_gt" "gpio_slp".
150         The gpio_gt and gpio_ts pins support the gpio function.
151         The gpio_slp pin is for controlling the pmic states, as below:
152                 - reset
153                 - power down
154                 - sleep
155
156 Standard regulator bindings are used inside regulator subnodes. Check
157   Documentation/devicetree/bindings/regulator/regulator.txt
158 for more details
159
160 Example:
161         rk808: pmic@1b {
162                 compatible = "rockchip,rk808";
163                 clock-output-names = "xin32k", "rk808-clkout2";
164                 interrupt-parent = <&gpio0>;
165                 interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
166                 pinctrl-names = "default";
167                 pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>;
168                 dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
169                             <&gpio7 15 GPIO_ACTIVE_HIGH>;
170                 reg = <0x1b>;
171                 rockchip,system-power-controller;
172                 wakeup-source;
173                 #clock-cells = <1>;
174
175                 vcc8-supply = <&vcc_18>;
176                 vcc9-supply = <&vcc_io>;
177                 vcc10-supply = <&vcc_io>;
178                 vcc12-supply = <&vcc_io>;
179                 vddio-supply = <&vccio_pmu>;
180
181                 regulators {
182                         vdd_cpu: DCDC_REG1 {
183                                 regulator-always-on;
184                                 regulator-boot-on;
185                                 regulator-min-microvolt = <750000>;
186                                 regulator-max-microvolt = <1300000>;
187                                 regulator-name = "vdd_arm";
188                         };
189
190                         vdd_gpu: DCDC_REG2 {
191                                 regulator-always-on;
192                                 regulator-boot-on;
193                                 regulator-min-microvolt = <850000>;
194                                 regulator-max-microvolt = <1250000>;
195                                 regulator-name = "vdd_gpu";
196                         };
197
198                         vcc_ddr: DCDC_REG3 {
199                                 regulator-always-on;
200                                 regulator-boot-on;
201                                 regulator-name = "vcc_ddr";
202                         };
203
204                         vcc_io: DCDC_REG4 {
205                                 regulator-always-on;
206                                 regulator-boot-on;
207                                 regulator-min-microvolt = <3300000>;
208                                 regulator-max-microvolt = <3300000>;
209                                 regulator-name = "vcc_io";
210                         };
211
212                         vccio_pmu: LDO_REG1 {
213                                 regulator-always-on;
214                                 regulator-boot-on;
215                                 regulator-min-microvolt = <3300000>;
216                                 regulator-max-microvolt = <3300000>;
217                                 regulator-name = "vccio_pmu";
218                         };
219
220                         vcc_tp: LDO_REG2 {
221                                 regulator-always-on;
222                                 regulator-boot-on;
223                                 regulator-min-microvolt = <3300000>;
224                                 regulator-max-microvolt = <3300000>;
225                                 regulator-name = "vcc_tp";
226                         };
227
228                         vdd_10: LDO_REG3 {
229                                 regulator-always-on;
230                                 regulator-boot-on;
231                                 regulator-min-microvolt = <1000000>;
232                                 regulator-max-microvolt = <1000000>;
233                                 regulator-name = "vdd_10";
234                         };
235
236                         vcc18_lcd: LDO_REG4 {
237                                 regulator-always-on;
238                                 regulator-boot-on;
239                                 regulator-min-microvolt = <1800000>;
240                                 regulator-max-microvolt = <1800000>;
241                                 regulator-name = "vcc18_lcd";
242                         };
243
244                         vccio_sd: LDO_REG5 {
245                                 regulator-always-on;
246                                 regulator-boot-on;
247                                 regulator-min-microvolt = <1800000>;
248                                 regulator-max-microvolt = <3300000>;
249                                 regulator-name = "vccio_sd";
250                         };
251
252                         vdd10_lcd: LDO_REG6 {
253                                 regulator-always-on;
254                                 regulator-boot-on;
255                                 regulator-min-microvolt = <1000000>;
256                                 regulator-max-microvolt = <1000000>;
257                                 regulator-name = "vdd10_lcd";
258                         };
259
260                         vcc_18: LDO_REG7 {
261                                 regulator-always-on;
262                                 regulator-boot-on;
263                                 regulator-min-microvolt = <1800000>;
264                                 regulator-max-microvolt = <1800000>;
265                                 regulator-name = "vcc_18";
266                         };
267
268                         vcca_codec: LDO_REG8 {
269                                 regulator-always-on;
270                                 regulator-boot-on;
271                                 regulator-min-microvolt = <3300000>;
272                                 regulator-max-microvolt = <3300000>;
273                                 regulator-name = "vcca_codec";
274                         };
275
276                         vcc_wl: SWITCH_REG1 {
277                                 regulator-always-on;
278                                 regulator-boot-on;
279                                 regulator-name = "vcc_wl";
280                         };
281
282                         vcc_lcd: SWITCH_REG2 {
283                                 regulator-always-on;
284                                 regulator-boot-on;
285                                 regulator-name = "vcc_lcd";
286                         };
287                 };
288         };
289
290         rk817: pmic@20 {
291                 compatible = "rockchip,rk817";
292                 reg = <0x20>;
293                 interrupt-parent = <&gpio0>;
294                 interrupts = <RK_PB2 IRQ_TYPE_LEVEL_LOW>;
295                 clock-output-names = "rk808-clkout1", "xin32k";
296                 clock-names = "mclk";
297                 clocks = <&cru SCLK_I2S1_OUT>;
298                 pinctrl-names = "default";
299                 pinctrl-0 = <&pmic_int>, <&i2s1_2ch_mclk>;
300                 wakeup-source;
301                 #clock-cells = <1>;
302                 #sound-dai-cells = <0>;
303
304                 vcc1-supply = <&vccsys>;
305                 vcc2-supply = <&vccsys>;
306                 vcc3-supply = <&vccsys>;
307                 vcc4-supply = <&vccsys>;
308                 vcc5-supply = <&vccsys>;
309                 vcc6-supply = <&vccsys>;
310                 vcc7-supply = <&vccsys>;
311
312                 regulators {
313                         vdd_logic: DCDC_REG1 {
314                                 regulator-name = "vdd_logic";
315                                 regulator-min-microvolt = <950000>;
316                                 regulator-max-microvolt = <1150000>;
317                                 regulator-ramp-delay = <6001>;
318                                 regulator-always-on;
319                                 regulator-boot-on;
320
321                                 regulator-state-mem {
322                                         regulator-on-in-suspend;
323                                         regulator-suspend-microvolt = <950000>;
324                                 };
325                         };
326
327                         vdd_arm: DCDC_REG2 {
328                                 regulator-name = "vdd_arm";
329                                 regulator-min-microvolt = <950000>;
330                                 regulator-max-microvolt = <1350000>;
331                                 regulator-ramp-delay = <6001>;
332                                 regulator-always-on;
333                                 regulator-boot-on;
334
335                                 regulator-state-mem {
336                                         regulator-off-in-suspend;
337                                         regulator-suspend-microvolt = <950000>;
338                                 };
339                         };
340
341                         vcc_ddr: DCDC_REG3 {
342                                 regulator-name = "vcc_ddr";
343                                 regulator-always-on;
344                                 regulator-boot-on;
345
346                                 regulator-state-mem {
347                                         regulator-on-in-suspend;
348                                 };
349                         };
350
351                         vcc_3v3: DCDC_REG4 {
352                                 regulator-name = "vcc_3v3";
353                                 regulator-min-microvolt = <3300000>;
354                                 regulator-max-microvolt = <3300000>;
355                                 regulator-always-on;
356                                 regulator-boot-on;
357
358                                 regulator-state-mem {
359                                         regulator-off-in-suspend;
360                                         regulator-suspend-microvolt = <3300000>;
361                                 };
362                         };
363
364                         vcc_1v8: LDO_REG2 {
365                                 regulator-name = "vcc_1v8";
366                                 regulator-min-microvolt = <1800000>;
367                                 regulator-max-microvolt = <1800000>;
368                                 regulator-always-on;
369                                 regulator-boot-on;
370
371                                 regulator-state-mem {
372                                         regulator-on-in-suspend;
373                                         regulator-suspend-microvolt = <1800000>;
374                                 };
375                         };
376
377                         vdd_1v0: LDO_REG3 {
378                                 regulator-name = "vdd_1v0";
379                                 regulator-min-microvolt = <1000000>;
380                                 regulator-max-microvolt = <1000000>;
381                                 regulator-always-on;
382                                 regulator-boot-on;
383
384                                 regulator-state-mem {
385                                         regulator-on-in-suspend;
386                                         regulator-suspend-microvolt = <1000000>;
387                                 };
388                         };
389
390                         vcc3v3_pmu: LDO_REG4 {
391                                 regulator-name = "vcc3v3_pmu";
392                                 regulator-min-microvolt = <3300000>;
393                                 regulator-max-microvolt = <3300000>;
394                                 regulator-always-on;
395                                 regulator-boot-on;
396
397                                 regulator-state-mem {
398                                         regulator-on-in-suspend;
399                                         regulator-suspend-microvolt = <3300000>;
400                                 };
401                         };
402
403                         vccio_sd: LDO_REG5 {
404                                 regulator-name = "vccio_sd";
405                                 regulator-min-microvolt = <1800000>;
406                                 regulator-max-microvolt = <3300000>;
407                                 regulator-always-on;
408                                 regulator-boot-on;
409
410                                 regulator-state-mem {
411                                         regulator-on-in-suspend;
412                                         regulator-suspend-microvolt = <3300000>;
413                                 };
414                         };
415
416                         vcc_sd: LDO_REG6 {
417                                 regulator-name = "vcc_sd";
418                                 regulator-min-microvolt = <3300000>;
419                                 regulator-max-microvolt = <3300000>;
420                                 regulator-boot-on;
421
422                                 regulator-state-mem {
423                                         regulator-on-in-suspend;
424                                         regulator-suspend-microvolt = <3300000>;
425                                 };
426                         };
427
428                         vcc_bl: LDO_REG7 {
429                                 regulator-name = "vcc_bl";
430                                 regulator-min-microvolt = <3300000>;
431                                 regulator-max-microvolt = <3300000>;
432
433                                 regulator-state-mem {
434                                         regulator-off-in-suspend;
435                                         regulator-suspend-microvolt = <3300000>;
436                                 };
437                         };
438
439                         vcc_lcd: LDO_REG8 {
440                                 regulator-name = "vcc_lcd";
441                                 regulator-min-microvolt = <2800000>;
442                                 regulator-max-microvolt = <2800000>;
443
444                                 regulator-state-mem {
445                                         regulator-off-in-suspend;
446                                         regulator-suspend-microvolt = <2800000>;
447                                 };
448                         };
449
450                         vcc_cam: LDO_REG9 {
451                                 regulator-name = "vcc_cam";
452                                 regulator-min-microvolt = <3000000>;
453                                 regulator-max-microvolt = <3000000>;
454
455                                 regulator-state-mem {
456                                         regulator-off-in-suspend;
457                                         regulator-suspend-microvolt = <3000000>;
458                                 };
459                         };
460                 };
461
462                 rk817_codec: codec {
463                         rockchip,mic-in-differential;
464                 };
465         };