xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rockchip,rk809.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rockchip,rk809.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
7d5b0e70fSEmmanuel Vadottitle: RK809 Power Management Integrated Circuit
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Chris Zhong <zyw@rock-chips.com>
11d5b0e70fSEmmanuel Vadot  - Zhang Qing <zhangqing@rock-chips.com>
12d5b0e70fSEmmanuel Vadot
13d5b0e70fSEmmanuel Vadotdescription: |
14d5b0e70fSEmmanuel Vadot  Rockchip RK809 series PMIC. This device consists of an i2c controlled MFD
15d5b0e70fSEmmanuel Vadot  that includes regulators, an RTC, and power button.
16d5b0e70fSEmmanuel Vadot
17d5b0e70fSEmmanuel Vadotproperties:
18d5b0e70fSEmmanuel Vadot  compatible:
19d5b0e70fSEmmanuel Vadot    enum:
20d5b0e70fSEmmanuel Vadot      - rockchip,rk809
21d5b0e70fSEmmanuel Vadot
22d5b0e70fSEmmanuel Vadot  reg:
23d5b0e70fSEmmanuel Vadot    maxItems: 1
24d5b0e70fSEmmanuel Vadot
25d5b0e70fSEmmanuel Vadot  interrupts:
26d5b0e70fSEmmanuel Vadot    maxItems: 1
27d5b0e70fSEmmanuel Vadot
28d5b0e70fSEmmanuel Vadot  '#clock-cells':
29d5b0e70fSEmmanuel Vadot    description: |
30d5b0e70fSEmmanuel Vadot      See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
31d5b0e70fSEmmanuel Vadot    minimum: 0
32d5b0e70fSEmmanuel Vadot    maximum: 1
33d5b0e70fSEmmanuel Vadot
34d5b0e70fSEmmanuel Vadot  clock-output-names:
35d5b0e70fSEmmanuel Vadot    description:
36d5b0e70fSEmmanuel Vadot      From common clock binding to override the default output clock name.
37d5b0e70fSEmmanuel Vadot
38d5b0e70fSEmmanuel Vadot  rockchip,system-power-controller:
39d5b0e70fSEmmanuel Vadot    type: boolean
40*84943d6fSEmmanuel Vadot    deprecated: true
41d5b0e70fSEmmanuel Vadot    description:
42d5b0e70fSEmmanuel Vadot      Telling whether or not this PMIC is controlling the system power.
43d5b0e70fSEmmanuel Vadot
44*84943d6fSEmmanuel Vadot  system-power-controller: true
45*84943d6fSEmmanuel Vadot
46d5b0e70fSEmmanuel Vadot  wakeup-source:
47d5b0e70fSEmmanuel Vadot    type: boolean
48d5b0e70fSEmmanuel Vadot    description:
49d5b0e70fSEmmanuel Vadot      Device can be used as a wakeup source.
50d5b0e70fSEmmanuel Vadot
51d5b0e70fSEmmanuel Vadot  vcc1-supply:
52d5b0e70fSEmmanuel Vadot    description:
53d5b0e70fSEmmanuel Vadot      The input supply for DCDC_REG1.
54d5b0e70fSEmmanuel Vadot
55d5b0e70fSEmmanuel Vadot  vcc2-supply:
56d5b0e70fSEmmanuel Vadot    description:
57d5b0e70fSEmmanuel Vadot      The input supply for DCDC_REG2.
58d5b0e70fSEmmanuel Vadot
59d5b0e70fSEmmanuel Vadot  vcc3-supply:
60d5b0e70fSEmmanuel Vadot    description:
61d5b0e70fSEmmanuel Vadot      The input supply for DCDC_REG3.
62d5b0e70fSEmmanuel Vadot
63d5b0e70fSEmmanuel Vadot  vcc4-supply:
64d5b0e70fSEmmanuel Vadot    description:
65d5b0e70fSEmmanuel Vadot      The input supply for DCDC_REG4.
66d5b0e70fSEmmanuel Vadot
67d5b0e70fSEmmanuel Vadot  vcc5-supply:
68d5b0e70fSEmmanuel Vadot    description:
69d5b0e70fSEmmanuel Vadot      The input supply for LDO_REG1, LDO_REG2, and LDO_REG3.
70d5b0e70fSEmmanuel Vadot
71d5b0e70fSEmmanuel Vadot  vcc6-supply:
72d5b0e70fSEmmanuel Vadot    description:
73d5b0e70fSEmmanuel Vadot      The input supply for LDO_REG4, LDO_REG5, and LDO_REG6.
74d5b0e70fSEmmanuel Vadot
75d5b0e70fSEmmanuel Vadot  vcc7-supply:
76d5b0e70fSEmmanuel Vadot    description:
77d5b0e70fSEmmanuel Vadot      The input supply for LDO_REG7, LDO_REG8, and LDO_REG9.
78d5b0e70fSEmmanuel Vadot
79d5b0e70fSEmmanuel Vadot  vcc8-supply:
80d5b0e70fSEmmanuel Vadot    description:
81d5b0e70fSEmmanuel Vadot      The input supply for SWITCH_REG1.
82d5b0e70fSEmmanuel Vadot
83d5b0e70fSEmmanuel Vadot  vcc9-supply:
84d5b0e70fSEmmanuel Vadot    description:
85d5b0e70fSEmmanuel Vadot      The input supply for DCDC_REG5 and SWITCH_REG2.
86d5b0e70fSEmmanuel Vadot
87d5b0e70fSEmmanuel Vadot  regulators:
88d5b0e70fSEmmanuel Vadot    type: object
89d5b0e70fSEmmanuel Vadot    patternProperties:
90d5b0e70fSEmmanuel Vadot      "^(LDO_REG[1-9]|DCDC_REG[1-5]|SWITCH_REG[1-2])$":
91d5b0e70fSEmmanuel Vadot        type: object
92*84943d6fSEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
93*84943d6fSEmmanuel Vadot        unevaluatedProperties: false
94d5b0e70fSEmmanuel Vadot    unevaluatedProperties: false
95d5b0e70fSEmmanuel Vadot
96d5b0e70fSEmmanuel VadotallOf:
97d5b0e70fSEmmanuel Vadot  - if:
98d5b0e70fSEmmanuel Vadot      properties:
99d5b0e70fSEmmanuel Vadot        '#clock-cells':
100d5b0e70fSEmmanuel Vadot          const: 0
101d5b0e70fSEmmanuel Vadot
102d5b0e70fSEmmanuel Vadot    then:
103d5b0e70fSEmmanuel Vadot      properties:
104d5b0e70fSEmmanuel Vadot        clock-output-names:
105d5b0e70fSEmmanuel Vadot          maxItems: 1
106d5b0e70fSEmmanuel Vadot
107d5b0e70fSEmmanuel Vadot    else:
108d5b0e70fSEmmanuel Vadot      properties:
109d5b0e70fSEmmanuel Vadot        clock-output-names:
110d5b0e70fSEmmanuel Vadot          maxItems: 2
111d5b0e70fSEmmanuel Vadot
112d5b0e70fSEmmanuel Vadotrequired:
113d5b0e70fSEmmanuel Vadot  - compatible
114d5b0e70fSEmmanuel Vadot  - reg
115d5b0e70fSEmmanuel Vadot  - interrupts
116d5b0e70fSEmmanuel Vadot  - "#clock-cells"
117d5b0e70fSEmmanuel Vadot
118d5b0e70fSEmmanuel VadotadditionalProperties: false
119d5b0e70fSEmmanuel Vadot
120d5b0e70fSEmmanuel Vadotexamples:
121d5b0e70fSEmmanuel Vadot  - |
122d5b0e70fSEmmanuel Vadot    #include <dt-bindings/pinctrl/rockchip.h>
123d5b0e70fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
124d5b0e70fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
125d5b0e70fSEmmanuel Vadot    i2c {
126d5b0e70fSEmmanuel Vadot        #address-cells = <1>;
127d5b0e70fSEmmanuel Vadot        #size-cells = <0>;
128d5b0e70fSEmmanuel Vadot
129d5b0e70fSEmmanuel Vadot        rk808: pmic@1b {
130d5b0e70fSEmmanuel Vadot            compatible = "rockchip,rk808";
131d5b0e70fSEmmanuel Vadot            reg = <0x1b>;
132d5b0e70fSEmmanuel Vadot            #clock-cells = <1>;
133d5b0e70fSEmmanuel Vadot            clock-output-names = "xin32k", "rk808-clkout2";
134d5b0e70fSEmmanuel Vadot            interrupt-parent = <&gpio3>;
135d5b0e70fSEmmanuel Vadot            interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
136d5b0e70fSEmmanuel Vadot            pinctrl-names = "default";
137d5b0e70fSEmmanuel Vadot            pinctrl-0 = <&pmic_int_l_pin>;
138d5b0e70fSEmmanuel Vadot            rockchip,system-power-controller;
139d5b0e70fSEmmanuel Vadot            wakeup-source;
140d5b0e70fSEmmanuel Vadot
141d5b0e70fSEmmanuel Vadot            vcc1-supply = <&vcc_sysin>;
142d5b0e70fSEmmanuel Vadot            vcc2-supply = <&vcc_sysin>;
143d5b0e70fSEmmanuel Vadot            vcc3-supply = <&vcc_sysin>;
144d5b0e70fSEmmanuel Vadot            vcc4-supply = <&vcc_sysin>;
145d5b0e70fSEmmanuel Vadot            vcc6-supply = <&vcc_sysin>;
146d5b0e70fSEmmanuel Vadot            vcc7-supply = <&vcc_sysin>;
147d5b0e70fSEmmanuel Vadot            vcc8-supply = <&vcc3v3_sys>;
148d5b0e70fSEmmanuel Vadot            vcc9-supply = <&vcc_sysin>;
149d5b0e70fSEmmanuel Vadot            vcc10-supply = <&vcc_sysin>;
150d5b0e70fSEmmanuel Vadot            vcc11-supply = <&vcc_sysin>;
151d5b0e70fSEmmanuel Vadot            vcc12-supply = <&vcc3v3_sys>;
152d5b0e70fSEmmanuel Vadot
153d5b0e70fSEmmanuel Vadot            regulators {
154d5b0e70fSEmmanuel Vadot                vdd_center: DCDC_REG1 {
155d5b0e70fSEmmanuel Vadot                    regulator-name = "vdd_center";
156d5b0e70fSEmmanuel Vadot                    regulator-always-on;
157d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
158d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <750000>;
159d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <1350000>;
160d5b0e70fSEmmanuel Vadot                    regulator-ramp-delay = <6001>;
161d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
162d5b0e70fSEmmanuel Vadot                        regulator-off-in-suspend;
163d5b0e70fSEmmanuel Vadot                    };
164d5b0e70fSEmmanuel Vadot                };
165d5b0e70fSEmmanuel Vadot
166d5b0e70fSEmmanuel Vadot                vdd_cpu_l: DCDC_REG2 {
167d5b0e70fSEmmanuel Vadot                    regulator-name = "vdd_cpu_l";
168d5b0e70fSEmmanuel Vadot                    regulator-always-on;
169d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
170d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <750000>;
171d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <1350000>;
172d5b0e70fSEmmanuel Vadot                    regulator-ramp-delay = <6001>;
173d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
174d5b0e70fSEmmanuel Vadot                        regulator-off-in-suspend;
175d5b0e70fSEmmanuel Vadot                    };
176d5b0e70fSEmmanuel Vadot                };
177d5b0e70fSEmmanuel Vadot
178d5b0e70fSEmmanuel Vadot                vcc_ddr: DCDC_REG3 {
179d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc_ddr";
180d5b0e70fSEmmanuel Vadot                    regulator-always-on;
181d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
182d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
183d5b0e70fSEmmanuel Vadot                        regulator-on-in-suspend;
184d5b0e70fSEmmanuel Vadot                    };
185d5b0e70fSEmmanuel Vadot                };
186d5b0e70fSEmmanuel Vadot
187d5b0e70fSEmmanuel Vadot                vcc_1v8: vcc_wl: DCDC_REG4 {
188d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc_1v8";
189d5b0e70fSEmmanuel Vadot                    regulator-always-on;
190d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
191d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
192d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
193d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
194d5b0e70fSEmmanuel Vadot                        regulator-on-in-suspend;
195d5b0e70fSEmmanuel Vadot                        regulator-suspend-microvolt = <1800000>;
196d5b0e70fSEmmanuel Vadot                    };
197d5b0e70fSEmmanuel Vadot                };
198d5b0e70fSEmmanuel Vadot
199d5b0e70fSEmmanuel Vadot                vcc1v8_pmupll: LDO_REG3 {
200d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc1v8_pmupll";
201d5b0e70fSEmmanuel Vadot                    regulator-always-on;
202d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
203d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
204d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
205d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
206d5b0e70fSEmmanuel Vadot                        regulator-on-in-suspend;
207d5b0e70fSEmmanuel Vadot                        regulator-suspend-microvolt = <1800000>;
208d5b0e70fSEmmanuel Vadot                    };
209d5b0e70fSEmmanuel Vadot                };
210d5b0e70fSEmmanuel Vadot
211d5b0e70fSEmmanuel Vadot                vcc_sdio: LDO_REG4 {
212d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc_sdio";
213d5b0e70fSEmmanuel Vadot                    regulator-always-on;
214d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
215d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
216d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <3000000>;
217d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
218d5b0e70fSEmmanuel Vadot                        regulator-on-in-suspend;
219d5b0e70fSEmmanuel Vadot                        regulator-suspend-microvolt = <3000000>;
220d5b0e70fSEmmanuel Vadot                    };
221d5b0e70fSEmmanuel Vadot                };
222d5b0e70fSEmmanuel Vadot
223d5b0e70fSEmmanuel Vadot                vcca3v0_codec: LDO_REG5 {
224d5b0e70fSEmmanuel Vadot                    regulator-name = "vcca3v0_codec";
225d5b0e70fSEmmanuel Vadot                    regulator-always-on;
226d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
227d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <3000000>;
228d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <3000000>;
229d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
230d5b0e70fSEmmanuel Vadot                        regulator-off-in-suspend;
231d5b0e70fSEmmanuel Vadot                    };
232d5b0e70fSEmmanuel Vadot                };
233d5b0e70fSEmmanuel Vadot
234d5b0e70fSEmmanuel Vadot                vcc_1v5: LDO_REG6 {
235d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc_1v5";
236d5b0e70fSEmmanuel Vadot                    regulator-always-on;
237d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
238d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <1500000>;
239d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <1500000>;
240d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
241d5b0e70fSEmmanuel Vadot                        regulator-on-in-suspend;
242d5b0e70fSEmmanuel Vadot                        regulator-suspend-microvolt = <1500000>;
243d5b0e70fSEmmanuel Vadot                    };
244d5b0e70fSEmmanuel Vadot                };
245d5b0e70fSEmmanuel Vadot
246d5b0e70fSEmmanuel Vadot                vcca1v8_codec: LDO_REG7 {
247d5b0e70fSEmmanuel Vadot                    regulator-name = "vcca1v8_codec";
248d5b0e70fSEmmanuel Vadot                    regulator-always-on;
249d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
250d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
251d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
252d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
253d5b0e70fSEmmanuel Vadot                        regulator-off-in-suspend;
254d5b0e70fSEmmanuel Vadot                    };
255d5b0e70fSEmmanuel Vadot                };
256d5b0e70fSEmmanuel Vadot
257d5b0e70fSEmmanuel Vadot                vcc_3v0: LDO_REG8 {
258d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc_3v0";
259d5b0e70fSEmmanuel Vadot                    regulator-always-on;
260d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
261d5b0e70fSEmmanuel Vadot                    regulator-min-microvolt = <3000000>;
262d5b0e70fSEmmanuel Vadot                    regulator-max-microvolt = <3000000>;
263d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
264d5b0e70fSEmmanuel Vadot                        regulator-on-in-suspend;
265d5b0e70fSEmmanuel Vadot                        regulator-suspend-microvolt = <3000000>;
266d5b0e70fSEmmanuel Vadot                    };
267d5b0e70fSEmmanuel Vadot                };
268d5b0e70fSEmmanuel Vadot
269d5b0e70fSEmmanuel Vadot                vcc3v3_s3: SWITCH_REG1 {
270d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc3v3_s3";
271d5b0e70fSEmmanuel Vadot                    regulator-always-on;
272d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
273d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
274d5b0e70fSEmmanuel Vadot                        regulator-off-in-suspend;
275d5b0e70fSEmmanuel Vadot                    };
276d5b0e70fSEmmanuel Vadot                };
277d5b0e70fSEmmanuel Vadot
278d5b0e70fSEmmanuel Vadot                vcc3v3_s0: SWITCH_REG2 {
279d5b0e70fSEmmanuel Vadot                    regulator-name = "vcc3v3_s0";
280d5b0e70fSEmmanuel Vadot                    regulator-always-on;
281d5b0e70fSEmmanuel Vadot                    regulator-boot-on;
282d5b0e70fSEmmanuel Vadot                    regulator-state-mem {
283d5b0e70fSEmmanuel Vadot                        regulator-off-in-suspend;
284d5b0e70fSEmmanuel Vadot                    };
285d5b0e70fSEmmanuel Vadot                };
286d5b0e70fSEmmanuel Vadot            };
287d5b0e70fSEmmanuel Vadot        };
288d5b0e70fSEmmanuel Vadot    };
289