xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/rockchip,rk816.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
1*7d0873ebSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*7d0873ebSEmmanuel Vadot%YAML 1.2
3*7d0873ebSEmmanuel Vadot---
4*7d0873ebSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/rockchip,rk816.yaml#
5*7d0873ebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7d0873ebSEmmanuel Vadot
7*7d0873ebSEmmanuel Vadottitle: RK816 Power Management Integrated Circuit
8*7d0873ebSEmmanuel Vadot
9*7d0873ebSEmmanuel Vadotmaintainers:
10*7d0873ebSEmmanuel Vadot  - Chris Zhong <zyw@rock-chips.com>
11*7d0873ebSEmmanuel Vadot  - Zhang Qing <zhangqing@rock-chips.com>
12*7d0873ebSEmmanuel Vadot
13*7d0873ebSEmmanuel Vadotdescription:
14*7d0873ebSEmmanuel Vadot  Rockchip RK816 series PMIC. This device consists of an i2c controlled MFD
15*7d0873ebSEmmanuel Vadot  that includes regulators, a RTC, a GPIO controller, a power button, and a
16*7d0873ebSEmmanuel Vadot  battery charger manager with fuel gauge.
17*7d0873ebSEmmanuel Vadot
18*7d0873ebSEmmanuel Vadotproperties:
19*7d0873ebSEmmanuel Vadot  compatible:
20*7d0873ebSEmmanuel Vadot    enum:
21*7d0873ebSEmmanuel Vadot      - rockchip,rk816
22*7d0873ebSEmmanuel Vadot
23*7d0873ebSEmmanuel Vadot  reg:
24*7d0873ebSEmmanuel Vadot    maxItems: 1
25*7d0873ebSEmmanuel Vadot
26*7d0873ebSEmmanuel Vadot  interrupts:
27*7d0873ebSEmmanuel Vadot    maxItems: 1
28*7d0873ebSEmmanuel Vadot
29*7d0873ebSEmmanuel Vadot  '#clock-cells':
30*7d0873ebSEmmanuel Vadot    description:
31*7d0873ebSEmmanuel Vadot      See <dt-bindings/clock/rockchip,rk808.h> for clock IDs.
32*7d0873ebSEmmanuel Vadot    const: 1
33*7d0873ebSEmmanuel Vadot
34*7d0873ebSEmmanuel Vadot  clock-output-names:
35*7d0873ebSEmmanuel Vadot    maxItems: 2
36*7d0873ebSEmmanuel Vadot
37*7d0873ebSEmmanuel Vadot  gpio-controller: true
38*7d0873ebSEmmanuel Vadot
39*7d0873ebSEmmanuel Vadot  '#gpio-cells':
40*7d0873ebSEmmanuel Vadot    const: 2
41*7d0873ebSEmmanuel Vadot
42*7d0873ebSEmmanuel Vadot  system-power-controller:
43*7d0873ebSEmmanuel Vadot    type: boolean
44*7d0873ebSEmmanuel Vadot    description:
45*7d0873ebSEmmanuel Vadot      Telling whether or not this PMIC is controlling the system power.
46*7d0873ebSEmmanuel Vadot
47*7d0873ebSEmmanuel Vadot  wakeup-source:
48*7d0873ebSEmmanuel Vadot    type: boolean
49*7d0873ebSEmmanuel Vadot
50*7d0873ebSEmmanuel Vadot  vcc1-supply:
51*7d0873ebSEmmanuel Vadot    description:
52*7d0873ebSEmmanuel Vadot      The input supply for dcdc1.
53*7d0873ebSEmmanuel Vadot
54*7d0873ebSEmmanuel Vadot  vcc2-supply:
55*7d0873ebSEmmanuel Vadot    description:
56*7d0873ebSEmmanuel Vadot      The input supply for dcdc2.
57*7d0873ebSEmmanuel Vadot
58*7d0873ebSEmmanuel Vadot  vcc3-supply:
59*7d0873ebSEmmanuel Vadot    description:
60*7d0873ebSEmmanuel Vadot      The input supply for dcdc3.
61*7d0873ebSEmmanuel Vadot
62*7d0873ebSEmmanuel Vadot  vcc4-supply:
63*7d0873ebSEmmanuel Vadot    description:
64*7d0873ebSEmmanuel Vadot      The input supply for dcdc4.
65*7d0873ebSEmmanuel Vadot
66*7d0873ebSEmmanuel Vadot  vcc5-supply:
67*7d0873ebSEmmanuel Vadot    description:
68*7d0873ebSEmmanuel Vadot      The input supply for ldo1, ldo2, and ldo3.
69*7d0873ebSEmmanuel Vadot
70*7d0873ebSEmmanuel Vadot  vcc6-supply:
71*7d0873ebSEmmanuel Vadot    description:
72*7d0873ebSEmmanuel Vadot      The input supply for ldo4, ldo5, and ldo6.
73*7d0873ebSEmmanuel Vadot
74*7d0873ebSEmmanuel Vadot  vcc7-supply:
75*7d0873ebSEmmanuel Vadot    description:
76*7d0873ebSEmmanuel Vadot      The input supply for boost.
77*7d0873ebSEmmanuel Vadot
78*7d0873ebSEmmanuel Vadot  vcc8-supply:
79*7d0873ebSEmmanuel Vadot    description:
80*7d0873ebSEmmanuel Vadot      The input supply for otg-switch.
81*7d0873ebSEmmanuel Vadot
82*7d0873ebSEmmanuel Vadot  regulators:
83*7d0873ebSEmmanuel Vadot    type: object
84*7d0873ebSEmmanuel Vadot    patternProperties:
85*7d0873ebSEmmanuel Vadot      '^(boost|dcdc[1-4]|ldo[1-6]|otg-switch)$':
86*7d0873ebSEmmanuel Vadot        type: object
87*7d0873ebSEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
88*7d0873ebSEmmanuel Vadot        unevaluatedProperties: false
89*7d0873ebSEmmanuel Vadot    additionalProperties: false
90*7d0873ebSEmmanuel Vadot
91*7d0873ebSEmmanuel VadotpatternProperties:
92*7d0873ebSEmmanuel Vadot  '-pins$':
93*7d0873ebSEmmanuel Vadot    type: object
94*7d0873ebSEmmanuel Vadot    additionalProperties: false
95*7d0873ebSEmmanuel Vadot    $ref: /schemas/pinctrl/pinmux-node.yaml
96*7d0873ebSEmmanuel Vadot
97*7d0873ebSEmmanuel Vadot    properties:
98*7d0873ebSEmmanuel Vadot      function:
99*7d0873ebSEmmanuel Vadot        enum: [gpio, thermistor]
100*7d0873ebSEmmanuel Vadot
101*7d0873ebSEmmanuel Vadot      pins:
102*7d0873ebSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/string
103*7d0873ebSEmmanuel Vadot        const: gpio0
104*7d0873ebSEmmanuel Vadot
105*7d0873ebSEmmanuel Vadotrequired:
106*7d0873ebSEmmanuel Vadot  - compatible
107*7d0873ebSEmmanuel Vadot  - reg
108*7d0873ebSEmmanuel Vadot  - interrupts
109*7d0873ebSEmmanuel Vadot  - '#clock-cells'
110*7d0873ebSEmmanuel Vadot
111*7d0873ebSEmmanuel VadotadditionalProperties: false
112*7d0873ebSEmmanuel Vadot
113*7d0873ebSEmmanuel Vadotexamples:
114*7d0873ebSEmmanuel Vadot  - |
115*7d0873ebSEmmanuel Vadot    #include <dt-bindings/pinctrl/rockchip.h>
116*7d0873ebSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
117*7d0873ebSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
118*7d0873ebSEmmanuel Vadot
119*7d0873ebSEmmanuel Vadot    i2c {
120*7d0873ebSEmmanuel Vadot        #address-cells = <1>;
121*7d0873ebSEmmanuel Vadot        #size-cells = <0>;
122*7d0873ebSEmmanuel Vadot
123*7d0873ebSEmmanuel Vadot        rk816: pmic@1a {
124*7d0873ebSEmmanuel Vadot            compatible = "rockchip,rk816";
125*7d0873ebSEmmanuel Vadot            reg = <0x1a>;
126*7d0873ebSEmmanuel Vadot            interrupt-parent = <&gpio0>;
127*7d0873ebSEmmanuel Vadot            interrupts = <RK_PA2 IRQ_TYPE_LEVEL_LOW>;
128*7d0873ebSEmmanuel Vadot            clock-output-names = "xin32k", "rk816-clkout2";
129*7d0873ebSEmmanuel Vadot            pinctrl-names = "default";
130*7d0873ebSEmmanuel Vadot            pinctrl-0 = <&pmic_int_l>;
131*7d0873ebSEmmanuel Vadot            gpio-controller;
132*7d0873ebSEmmanuel Vadot            system-power-controller;
133*7d0873ebSEmmanuel Vadot            wakeup-source;
134*7d0873ebSEmmanuel Vadot            #clock-cells = <1>;
135*7d0873ebSEmmanuel Vadot            #gpio-cells = <2>;
136*7d0873ebSEmmanuel Vadot
137*7d0873ebSEmmanuel Vadot            vcc1-supply = <&vcc_sys>;
138*7d0873ebSEmmanuel Vadot            vcc2-supply = <&vcc_sys>;
139*7d0873ebSEmmanuel Vadot            vcc3-supply = <&vcc_sys>;
140*7d0873ebSEmmanuel Vadot            vcc4-supply = <&vcc_sys>;
141*7d0873ebSEmmanuel Vadot            vcc5-supply = <&vcc33_io>;
142*7d0873ebSEmmanuel Vadot            vcc6-supply = <&vcc_sys>;
143*7d0873ebSEmmanuel Vadot
144*7d0873ebSEmmanuel Vadot            regulators {
145*7d0873ebSEmmanuel Vadot                vdd_cpu: dcdc1 {
146*7d0873ebSEmmanuel Vadot                    regulator-name = "vdd_cpu";
147*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <750000>;
148*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <1450000>;
149*7d0873ebSEmmanuel Vadot                    regulator-ramp-delay = <6001>;
150*7d0873ebSEmmanuel Vadot                    regulator-initial-mode = <1>;
151*7d0873ebSEmmanuel Vadot                    regulator-always-on;
152*7d0873ebSEmmanuel Vadot                    regulator-boot-on;
153*7d0873ebSEmmanuel Vadot
154*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
155*7d0873ebSEmmanuel Vadot                        regulator-off-in-suspend;
156*7d0873ebSEmmanuel Vadot                    };
157*7d0873ebSEmmanuel Vadot                };
158*7d0873ebSEmmanuel Vadot
159*7d0873ebSEmmanuel Vadot                vdd_logic: dcdc2 {
160*7d0873ebSEmmanuel Vadot                    regulator-name = "vdd_logic";
161*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <800000>;
162*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <1250000>;
163*7d0873ebSEmmanuel Vadot                    regulator-ramp-delay = <6001>;
164*7d0873ebSEmmanuel Vadot                    regulator-initial-mode = <1>;
165*7d0873ebSEmmanuel Vadot                    regulator-always-on;
166*7d0873ebSEmmanuel Vadot                    regulator-boot-on;
167*7d0873ebSEmmanuel Vadot
168*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
169*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
170*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <1000000>;
171*7d0873ebSEmmanuel Vadot                    };
172*7d0873ebSEmmanuel Vadot                };
173*7d0873ebSEmmanuel Vadot
174*7d0873ebSEmmanuel Vadot                vcc_ddr: dcdc3 {
175*7d0873ebSEmmanuel Vadot                    regulator-name = "vcc_ddr";
176*7d0873ebSEmmanuel Vadot                    regulator-initial-mode = <1>;
177*7d0873ebSEmmanuel Vadot                    regulator-always-on;
178*7d0873ebSEmmanuel Vadot                    regulator-boot-on;
179*7d0873ebSEmmanuel Vadot
180*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
181*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
182*7d0873ebSEmmanuel Vadot                    };
183*7d0873ebSEmmanuel Vadot                };
184*7d0873ebSEmmanuel Vadot
185*7d0873ebSEmmanuel Vadot                vcc33_io: dcdc4 {
186*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
187*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
188*7d0873ebSEmmanuel Vadot                    regulator-name = "vcc33_io";
189*7d0873ebSEmmanuel Vadot                    regulator-initial-mode = <1>;
190*7d0873ebSEmmanuel Vadot                    regulator-always-on;
191*7d0873ebSEmmanuel Vadot                    regulator-boot-on;
192*7d0873ebSEmmanuel Vadot
193*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
194*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
195*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <3300000>;
196*7d0873ebSEmmanuel Vadot                    };
197*7d0873ebSEmmanuel Vadot                };
198*7d0873ebSEmmanuel Vadot
199*7d0873ebSEmmanuel Vadot                vccio_pmu: ldo1 {
200*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
201*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
202*7d0873ebSEmmanuel Vadot                    regulator-name = "vccio_pmu";
203*7d0873ebSEmmanuel Vadot                    regulator-always-on;
204*7d0873ebSEmmanuel Vadot                    regulator-boot-on;
205*7d0873ebSEmmanuel Vadot
206*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
207*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
208*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <3300000>;
209*7d0873ebSEmmanuel Vadot                    };
210*7d0873ebSEmmanuel Vadot                };
211*7d0873ebSEmmanuel Vadot
212*7d0873ebSEmmanuel Vadot                vcc_tp: ldo2 {
213*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
214*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
215*7d0873ebSEmmanuel Vadot                    regulator-name = "vcc_tp";
216*7d0873ebSEmmanuel Vadot
217*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
218*7d0873ebSEmmanuel Vadot                        regulator-off-in-suspend;
219*7d0873ebSEmmanuel Vadot                    };
220*7d0873ebSEmmanuel Vadot                };
221*7d0873ebSEmmanuel Vadot
222*7d0873ebSEmmanuel Vadot                vdd_10: ldo3 {
223*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <1000000>;
224*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <1000000>;
225*7d0873ebSEmmanuel Vadot                    regulator-name = "vdd_10";
226*7d0873ebSEmmanuel Vadot                    regulator-always-on;
227*7d0873ebSEmmanuel Vadot                    regulator-boot-on;
228*7d0873ebSEmmanuel Vadot
229*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
230*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
231*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <1000000>;
232*7d0873ebSEmmanuel Vadot                    };
233*7d0873ebSEmmanuel Vadot                };
234*7d0873ebSEmmanuel Vadot
235*7d0873ebSEmmanuel Vadot                vcc18_lcd: ldo4 {
236*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
237*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
238*7d0873ebSEmmanuel Vadot                    regulator-name = "vcc18_lcd";
239*7d0873ebSEmmanuel Vadot
240*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
241*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
242*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <1800000>;
243*7d0873ebSEmmanuel Vadot                    };
244*7d0873ebSEmmanuel Vadot                };
245*7d0873ebSEmmanuel Vadot
246*7d0873ebSEmmanuel Vadot                vccio_sd: ldo5 {
247*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
248*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
249*7d0873ebSEmmanuel Vadot                    regulator-name = "vccio_sd";
250*7d0873ebSEmmanuel Vadot
251*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
252*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
253*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <3300000>;
254*7d0873ebSEmmanuel Vadot                    };
255*7d0873ebSEmmanuel Vadot                };
256*7d0873ebSEmmanuel Vadot
257*7d0873ebSEmmanuel Vadot                vdd10_lcd: ldo6 {
258*7d0873ebSEmmanuel Vadot                    regulator-min-microvolt = <1000000>;
259*7d0873ebSEmmanuel Vadot                    regulator-max-microvolt = <1000000>;
260*7d0873ebSEmmanuel Vadot                    regulator-name = "vdd10_lcd";
261*7d0873ebSEmmanuel Vadot
262*7d0873ebSEmmanuel Vadot                    regulator-state-mem {
263*7d0873ebSEmmanuel Vadot                        regulator-on-in-suspend;
264*7d0873ebSEmmanuel Vadot                        regulator-suspend-microvolt = <1000000>;
265*7d0873ebSEmmanuel Vadot                    };
266*7d0873ebSEmmanuel Vadot                };
267*7d0873ebSEmmanuel Vadot            };
268*7d0873ebSEmmanuel Vadot
269*7d0873ebSEmmanuel Vadot            rk816_gpio_pins: gpio-pins {
270*7d0873ebSEmmanuel Vadot                function = "gpio";
271*7d0873ebSEmmanuel Vadot                pins = "gpio0";
272*7d0873ebSEmmanuel Vadot            };
273*7d0873ebSEmmanuel Vadot        };
274*7d0873ebSEmmanuel Vadot    };
275