GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / mfd / rockchip,rk808.yaml
1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/mfd/rockchip,rk808.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: RK808 Power Management Integrated Circuit
8
9 maintainers:
10   - Chris Zhong <zyw@rock-chips.com>
11   - Zhang Qing <zhangqing@rock-chips.com>
12
13 description: |
14   Rockchip RK808 series PMIC. This device consists of an i2c controlled MFD
15   that includes regulators, an RTC, and a power button.
16
17 properties:
18   compatible:
19     enum:
20       - rockchip,rk808
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     const: 1
32
33   clock-output-names:
34     description:
35       From common clock binding to override the default output clock name.
36     maxItems: 2
37
38   rockchip,system-power-controller:
39     type: boolean
40     description:
41       Telling whether or not this PMIC is controlling the system power.
42
43   wakeup-source:
44     type: boolean
45     description:
46       Device can be used as a wakeup source.
47
48   vcc1-supply:
49     description:
50       The input supply for DCDC_REG1.
51
52   vcc2-supply:
53     description:
54       The input supply for DCDC_REG2.
55
56   vcc3-supply:
57     description:
58       The input supply for DCDC_REG3.
59
60   vcc4-supply:
61     description:
62       The input supply for DCDC_REG4.
63
64   vcc6-supply:
65     description:
66       The input supply for LDO_REG1 and LDO_REG2.
67
68   vcc7-supply:
69     description:
70       The input supply for LDO_REG3 and LDO_REG7.
71
72   vcc8-supply:
73     description:
74       The input supply for SWITCH_REG1.
75
76   vcc9-supply:
77     description:
78       The input supply for LDO_REG4 and LDO_REG5.
79
80   vcc10-supply:
81     description:
82       The input supply for LDO_REG6.
83
84   vcc11-supply:
85     description:
86       The input supply for LDO_REG8.
87
88   vcc12-supply:
89     description:
90       The input supply for SWITCH_REG2.
91
92   vddio-supply:
93     description:
94       The input supply for digital IO.
95
96   dvs-gpios:
97     description: |
98       buck1/2 can be controlled by gpio dvs, this is GPIO specifiers for
99       2 host gpio's used for dvs. The format of the gpio specifier
100       depends in the gpio controller. If DVS GPIOs aren't present,
101       voltage changes will happen very quickly with no slow ramp time.
102     maxItems: 2
103
104   regulators:
105     type: object
106     patternProperties:
107       "^(DCDC_REG[1-4]|LDO_REG[1-8]|SWITCH_REG[1-2])$":
108         type: object
109         $ref: ../regulator/regulator.yaml#
110     unevaluatedProperties: false
111
112 required:
113   - compatible
114   - reg
115   - interrupts
116   - "#clock-cells"
117
118 additionalProperties: false
119
120 examples:
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             clock-output-names = "xin32k", "rk808-clkout2";
132             interrupt-parent = <&gpio0>;
133             interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
134             pinctrl-names = "default";
135             pinctrl-0 = <&pmic_int &dvs_1 &dvs_2>;
136             dvs-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>,
137                 <&gpio7 15 GPIO_ACTIVE_HIGH>;
138             reg = <0x1b>;
139             rockchip,system-power-controller;
140             wakeup-source;
141             #clock-cells = <1>;
142
143             vcc8-supply = <&vcc_18>;
144             vcc9-supply = <&vcc_io>;
145             vcc10-supply = <&vcc_io>;
146             vcc12-supply = <&vcc_io>;
147             vddio-supply = <&vccio_pmu>;
148
149             regulators {
150                 vdd_cpu: DCDC_REG1 {
151                     regulator-always-on;
152                     regulator-boot-on;
153                     regulator-min-microvolt = <750000>;
154                     regulator-max-microvolt = <1300000>;
155                     regulator-name = "vdd_arm";
156                 };
157
158                 vdd_gpu: DCDC_REG2 {
159                     regulator-always-on;
160                     regulator-boot-on;
161                     regulator-min-microvolt = <850000>;
162                     regulator-max-microvolt = <1250000>;
163                     regulator-name = "vdd_gpu";
164                 };
165
166                 vcc_ddr: DCDC_REG3 {
167                     regulator-always-on;
168                     regulator-boot-on;
169                     regulator-name = "vcc_ddr";
170                 };
171
172                 vcc_io: DCDC_REG4 {
173                     regulator-always-on;
174                     regulator-boot-on;
175                     regulator-min-microvolt = <3300000>;
176                     regulator-max-microvolt = <3300000>;
177                     regulator-name = "vcc_io";
178                 };
179
180                 vccio_pmu: LDO_REG1 {
181                     regulator-always-on;
182                     regulator-boot-on;
183                     regulator-min-microvolt = <3300000>;
184                     regulator-max-microvolt = <3300000>;
185                     regulator-name = "vccio_pmu";
186                 };
187
188                 vcc_tp: LDO_REG2 {
189                     regulator-always-on;
190                     regulator-boot-on;
191                     regulator-min-microvolt = <3300000>;
192                     regulator-max-microvolt = <3300000>;
193                     regulator-name = "vcc_tp";
194                 };
195
196                 vdd_10: LDO_REG3 {
197                     regulator-always-on;
198                     regulator-boot-on;
199                     regulator-min-microvolt = <1000000>;
200                     regulator-max-microvolt = <1000000>;
201                     regulator-name = "vdd_10";
202                 };
203
204                 vcc18_lcd: LDO_REG4 {
205                     regulator-always-on;
206                     regulator-boot-on;
207                     regulator-min-microvolt = <1800000>;
208                     regulator-max-microvolt = <1800000>;
209                     regulator-name = "vcc18_lcd";
210                 };
211
212                 vccio_sd: LDO_REG5 {
213                     regulator-always-on;
214                     regulator-boot-on;
215                     regulator-min-microvolt = <1800000>;
216                     regulator-max-microvolt = <3300000>;
217                     regulator-name = "vccio_sd";
218                 };
219
220                 vdd10_lcd: LDO_REG6 {
221                     regulator-always-on;
222                     regulator-boot-on;
223                     regulator-min-microvolt = <1000000>;
224                     regulator-max-microvolt = <1000000>;
225                     regulator-name = "vdd10_lcd";
226                 };
227
228                 vcc_18: LDO_REG7 {
229                     regulator-always-on;
230                     regulator-boot-on;
231                     regulator-min-microvolt = <1800000>;
232                     regulator-max-microvolt = <1800000>;
233                     regulator-name = "vcc_18";
234                 };
235
236                 vcca_codec: LDO_REG8 {
237                     regulator-always-on;
238                     regulator-boot-on;
239                     regulator-min-microvolt = <3300000>;
240                     regulator-max-microvolt = <3300000>;
241                     regulator-name = "vcca_codec";
242                 };
243
244                 vcc_wl: SWITCH_REG1 {
245                     regulator-always-on;
246                     regulator-boot-on;
247                     regulator-name = "vcc_wl";
248                 };
249
250                 vcc_lcd: SWITCH_REG2 {
251                     regulator-always-on;
252                     regulator-boot-on;
253                     regulator-name = "vcc_lcd";
254                 };
255             };
256         };
257     };