Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / mfd / rockchip,rk809.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,rk809.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: RK809 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 RK809 series PMIC. This device consists of an i2c controlled MFD
15   that includes regulators, an RTC, and power button.
16
17 properties:
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
96 allOf:
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
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             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     };