xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rockchip,rk809.yaml (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
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,rk809.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RK809 Power Management Integrated Circuit
8
9maintainers:
10  - Chris Zhong <zyw@rock-chips.com>
11  - Zhang Qing <zhangqing@rock-chips.com>
12
13description: |
14  Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD
15  that includes regulators, an RTC, and power button.
16
17properties:
18  compatible:
19    enum:
20      - rockchip,rk809
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    minimum: 0
32    maximum: 1
33
34  clock-output-names:
35    description:
36      From common clock binding to override the default output clock name.
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  vcc5-supply:
68    description:
69      The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
70
71  vcc6-supply:
72    description:
73      The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
74
75  vcc7-supply:
76    description:
77      The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
78
79  vcc8-supply:
80    description:
81      The input supply for SWITCH_REG1.
82
83  vcc9-supply:
84    description:
85      The input supply for DCDC_REG5 and SWITCH_REG2.
86
87  regulators:
88    type: object
89    patternProperties:
90      "^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$":
91        type: object
92        $ref: /schemas/regulator/regulator.yaml#
93        unevaluatedProperties: false
94    unevaluatedProperties: false
95
96allOf:
97  - if:
98      properties:
99        '#clock-cells':
100          const: 0
101
102    then:
103      properties:
104        clock-output-names:
105          maxItems: 1
106
107    else:
108      properties:
109        clock-output-names:
110          maxItems: 2
111
112required:
113  - compatible
114  - reg
115  - interrupts
116  - "#clock-cells"
117
118additionalProperties: false
119
120examples:
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            reg = <0x1b>;
132            #clock-cells = <1>;
133            clock-output-names = "xin32k", "rk808-clkout2";
134            interrupt-parent = <&gpio3>;
135            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
136            pinctrl-names = "default";
137            pinctrl-0 = <&pmic_int_l_pin>;
138            rockchip,system-power-controller;
139            wakeup-source;
140
141            vcc1-supply = <&vcc_sysin>;
142            vcc2-supply = <&vcc_sysin>;
143            vcc3-supply = <&vcc_sysin>;
144            vcc4-supply = <&vcc_sysin>;
145            vcc6-supply = <&vcc_sysin>;
146            vcc7-supply = <&vcc_sysin>;
147            vcc8-supply = <&vcc3v3_sys>;
148            vcc9-supply = <&vcc_sysin>;
149            vcc10-supply = <&vcc_sysin>;
150            vcc11-supply = <&vcc_sysin>;
151            vcc12-supply = <&vcc3v3_sys>;
152
153            regulators {
154                vdd_center: DCDC_REG1 {
155                    regulator-name = "vdd_center";
156                    regulator-always-on;
157                    regulator-boot-on;
158                    regulator-min-microvolt = <750000>;
159                    regulator-max-microvolt = <1350000>;
160                    regulator-ramp-delay = <6001>;
161                    regulator-state-mem {
162                        regulator-off-in-suspend;
163                    };
164                };
165
166                vdd_cpu_l: DCDC_REG2 {
167                    regulator-name = "vdd_cpu_l";
168                    regulator-always-on;
169                    regulator-boot-on;
170                    regulator-min-microvolt = <750000>;
171                    regulator-max-microvolt = <1350000>;
172                    regulator-ramp-delay = <6001>;
173                    regulator-state-mem {
174                        regulator-off-in-suspend;
175                    };
176                };
177
178                vcc_ddr: DCDC_REG3 {
179                    regulator-name = "vcc_ddr";
180                    regulator-always-on;
181                    regulator-boot-on;
182                    regulator-state-mem {
183                        regulator-on-in-suspend;
184                    };
185                };
186
187                vcc_1v8: vcc_wl: DCDC_REG4 {
188                    regulator-name = "vcc_1v8";
189                    regulator-always-on;
190                    regulator-boot-on;
191                    regulator-min-microvolt = <1800000>;
192                    regulator-max-microvolt = <1800000>;
193                    regulator-state-mem {
194                        regulator-on-in-suspend;
195                        regulator-suspend-microvolt = <1800000>;
196                    };
197                };
198
199                vcc1v8_pmupll: LDO_REG3 {
200                    regulator-name = "vcc1v8_pmupll";
201                    regulator-always-on;
202                    regulator-boot-on;
203                    regulator-min-microvolt = <1800000>;
204                    regulator-max-microvolt = <1800000>;
205                    regulator-state-mem {
206                        regulator-on-in-suspend;
207                        regulator-suspend-microvolt = <1800000>;
208                    };
209                };
210
211                vcc_sdio: LDO_REG4 {
212                    regulator-name = "vcc_sdio";
213                    regulator-always-on;
214                    regulator-boot-on;
215                    regulator-min-microvolt = <1800000>;
216                    regulator-max-microvolt = <3000000>;
217                    regulator-state-mem {
218                        regulator-on-in-suspend;
219                        regulator-suspend-microvolt = <3000000>;
220                    };
221                };
222
223                vcca3v0_codec: LDO_REG5 {
224                    regulator-name = "vcca3v0_codec";
225                    regulator-always-on;
226                    regulator-boot-on;
227                    regulator-min-microvolt = <3000000>;
228                    regulator-max-microvolt = <3000000>;
229                    regulator-state-mem {
230                        regulator-off-in-suspend;
231                    };
232                };
233
234                vcc_1v5: LDO_REG6 {
235                    regulator-name = "vcc_1v5";
236                    regulator-always-on;
237                    regulator-boot-on;
238                    regulator-min-microvolt = <1500000>;
239                    regulator-max-microvolt = <1500000>;
240                    regulator-state-mem {
241                        regulator-on-in-suspend;
242                        regulator-suspend-microvolt = <1500000>;
243                    };
244                };
245
246                vcca1v8_codec: LDO_REG7 {
247                    regulator-name = "vcca1v8_codec";
248                    regulator-always-on;
249                    regulator-boot-on;
250                    regulator-min-microvolt = <1800000>;
251                    regulator-max-microvolt = <1800000>;
252                    regulator-state-mem {
253                        regulator-off-in-suspend;
254                    };
255                };
256
257                vcc_3v0: LDO_REG8 {
258                    regulator-name = "vcc_3v0";
259                    regulator-always-on;
260                    regulator-boot-on;
261                    regulator-min-microvolt = <3000000>;
262                    regulator-max-microvolt = <3000000>;
263                    regulator-state-mem {
264                        regulator-on-in-suspend;
265                        regulator-suspend-microvolt = <3000000>;
266                    };
267                };
268
269                vcc3v3_s3: SWITCH_REG1 {
270                    regulator-name = "vcc3v3_s3";
271                    regulator-always-on;
272                    regulator-boot-on;
273                    regulator-state-mem {
274                        regulator-off-in-suspend;
275                    };
276                };
277
278                vcc3v3_s0: SWITCH_REG2 {
279                    regulator-name = "vcc3v3_s0";
280                    regulator-always-on;
281                    regulator-boot-on;
282                    regulator-state-mem {
283                        regulator-off-in-suspend;
284                    };
285                };
286            };
287        };
288    };
289