xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rockchip,rk818.yaml (revision 397e83df75e0fcd0d3fcb95ae4d794cb7600fc89)
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
7title: RK818 Power Management Integrated Circuit
8
9maintainers:
10  - Chris Zhong <zyw@rock-chips.com>
11  - Zhang Qing <zhangqing@rock-chips.com>
12
13description: |
14  Rockchip RK818 series PMIC. This device consists of an i2c controlled MFD
15  that includes regulators, an RTC, and a power button.
16
17properties:
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
108required:
109  - compatible
110  - reg
111  - interrupts
112  - "#clock-cells"
113
114additionalProperties: false
115
116examples:
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    };
287