Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / mfd / rockchip,rk818.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,rk818.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: RK818 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 RK818 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,rk818
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     deprecated: true
41     description:
42       Telling whether or not this PMIC is controlling the system power.
43
44   system-power-controller: true
45
46   wakeup-source:
47     type: boolean
48     description:
49       Device can be used as a wakeup source.
50
51   vcc1-supply:
52     description:
53       The input supply for DCDC_REG1.
54
55   vcc2-supply:
56     description:
57       The input supply for DCDC_REG2.
58
59   vcc3-supply:
60     description:
61       The input supply for DCDC_REG3.
62
63   vcc4-supply:
64     description:
65       The input supply for DCDC_REG4.
66
67   boost-supply:
68     description:
69       The input supply for DCDC_BOOST
70
71   vcc6-supply:
72     description:
73       The input supply for LDO_REG1 and LDO_REG2.
74
75   vcc7-supply:
76     description:
77       The input supply for LDO_REG3, LDO_REG5, and LDO_REG7.
78
79   vcc8-supply:
80     description:
81       The input supply for LDO_REG4, LDO_REG6, and LDO_REG8.
82
83   vcc9-supply:
84     description:
85       The input supply for LDO_REG9 and SWITCH_REG.
86
87   vddio-supply:
88     description:
89       The input supply for digital IO.
90
91   h_5v-supply:
92     description:
93       The input supply for HDMI_SWITCH.
94
95   usb-supply:
96     description:
97       The input supply for OTG_SWITCH.
98
99   regulators:
100     type: object
101     patternProperties:
102       "^(DCDC_REG[1-4]|DCDC_BOOST|LDO_REG[1-9]|SWITCH_REG|HDMI_SWITCH|OTG_SWITCH)$":
103         type: object
104         $ref: ../regulator/regulator.yaml#
105         unevaluatedProperties: false
106     unevaluatedProperties: false
107
108 required:
109   - compatible
110   - reg
111   - interrupts
112   - "#clock-cells"
113
114 additionalProperties: false
115
116 examples:
117   - |
118     #include <dt-bindings/clock/px30-cru.h>
119     #include <dt-bindings/pinctrl/rockchip.h>
120     #include <dt-bindings/interrupt-controller/irq.h>
121     #include <dt-bindings/gpio/gpio.h>
122     i2c {
123         #address-cells = <1>;
124         #size-cells = <0>;
125
126         rk818: pmic@1c {
127             compatible = "rockchip,rk818";
128             reg = <0x1c>;
129             interrupt-parent = <&gpio0>;
130             interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
131             pinctrl-names = "default";
132             pinctrl-0 = <&pmic_int>;
133             rockchip,system-power-controller;
134             wakeup-source;
135             #clock-cells = <1>;
136
137             vcc1-supply = <&vdd_sys>;
138             vcc2-supply = <&vdd_sys>;
139             vcc3-supply = <&vdd_sys>;
140             vcc4-supply = <&vdd_sys>;
141             boost-supply = <&vdd_in_otg_out>;
142             vcc6-supply = <&vdd_sys>;
143             vcc7-supply = <&vdd_misc_1v8>;
144             vcc8-supply = <&vdd_misc_1v8>;
145             vcc9-supply = <&vdd_3v3_io>;
146             vddio-supply = <&vdd_3v3_io>;
147
148             regulators {
149                 vdd_log: DCDC_REG1 {
150                     regulator-name = "vdd_log";
151                     regulator-always-on;
152                     regulator-boot-on;
153                     regulator-min-microvolt = <1100000>;
154                     regulator-max-microvolt = <1100000>;
155                     regulator-state-mem {
156                         regulator-off-in-suspend;
157                     };
158                 };
159
160                 vdd_gpu: DCDC_REG2 {
161                     regulator-name = "vdd_gpu";
162                     regulator-always-on;
163                     regulator-boot-on;
164                     regulator-min-microvolt = <800000>;
165                     regulator-max-microvolt = <1250000>;
166                     regulator-state-mem {
167                         regulator-on-in-suspend;
168                         regulator-suspend-microvolt = <1000000>;
169                     };
170                 };
171
172                 vcc_ddr: DCDC_REG3 {
173                     regulator-name = "vcc_ddr";
174                     regulator-always-on;
175                     regulator-boot-on;
176                     regulator-state-mem {
177                         regulator-on-in-suspend;
178                     };
179                 };
180
181                 vdd_3v3_io: DCDC_REG4 {
182                     regulator-name = "vdd_3v3_io";
183                     regulator-always-on;
184                     regulator-boot-on;
185                     regulator-min-microvolt = <3300000>;
186                     regulator-max-microvolt = <3300000>;
187                     regulator-state-mem {
188                         regulator-on-in-suspend;
189                         regulator-suspend-microvolt = <3300000>;
190                     };
191                 };
192
193                 vdd_sys: DCDC_BOOST {
194                     regulator-name = "vdd_sys";
195                     regulator-always-on;
196                     regulator-boot-on;
197                     regulator-min-microvolt = <5000000>;
198                     regulator-max-microvolt = <5000000>;
199                     regulator-state-mem {
200                         regulator-on-in-suspend;
201                         regulator-suspend-microvolt = <5000000>;
202                     };
203                 };
204
205                 vdd_sd: SWITCH_REG {
206                     regulator-name = "vdd_sd";
207                     regulator-always-on;
208                     regulator-boot-on;
209                     regulator-state-mem {
210                         regulator-off-in-suspend;
211                     };
212                 };
213
214                 vdd_eth_2v5: LDO_REG2 {
215                     regulator-name = "vdd_eth_2v5";
216                     regulator-always-on;
217                     regulator-boot-on;
218                     regulator-min-microvolt = <2500000>;
219                     regulator-max-microvolt = <2500000>;
220                     regulator-state-mem {
221                         regulator-on-in-suspend;
222                         regulator-suspend-microvolt = <2500000>;
223                     };
224                 };
225
226                 vdd_1v0: LDO_REG3 {
227                     regulator-name = "vdd_1v0";
228                     regulator-always-on;
229                     regulator-boot-on;
230                     regulator-min-microvolt = <1000000>;
231                     regulator-max-microvolt = <1000000>;
232                     regulator-state-mem {
233                         regulator-on-in-suspend;
234                         regulator-suspend-microvolt = <1000000>;
235                     };
236                 };
237
238                 vdd_1v8_lcd_ldo: LDO_REG4 {
239                     regulator-name = "vdd_1v8_lcd_ldo";
240                     regulator-always-on;
241                     regulator-boot-on;
242                     regulator-min-microvolt = <1800000>;
243                     regulator-max-microvolt = <1800000>;
244                     regulator-state-mem {
245                         regulator-on-in-suspend;
246                         regulator-suspend-microvolt = <1800000>;
247                     };
248                 };
249
250                 vdd_1v0_lcd: LDO_REG6 {
251                     regulator-name = "vdd_1v0_lcd";
252                     regulator-always-on;
253                     regulator-boot-on;
254                     regulator-min-microvolt = <1000000>;
255                     regulator-max-microvolt = <1000000>;
256                     regulator-state-mem {
257                         regulator-on-in-suspend;
258                         regulator-suspend-microvolt = <1000000>;
259                     };
260                 };
261
262                 vdd_1v8_ldo: LDO_REG7 {
263                     regulator-name = "vdd_1v8_ldo";
264                     regulator-always-on;
265                     regulator-boot-on;
266                     regulator-min-microvolt = <1800000>;
267                     regulator-max-microvolt = <1800000>;
268                     regulator-state-mem {
269                         regulator-off-in-suspend;
270                         regulator-suspend-microvolt = <1800000>;
271                     };
272                 };
273
274                 vdd_io_sd: LDO_REG9 {
275                     regulator-name = "vdd_io_sd";
276                     regulator-always-on;
277                     regulator-boot-on;
278                     regulator-min-microvolt = <1800000>;
279                     regulator-max-microvolt = <3300000>;
280                     regulator-state-mem {
281                         regulator-off-in-suspend;
282                     };
283                 };
284             };
285         };
286     };