1*172e611bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only
2*172e611bSKrzysztof Kozlowski%YAML 1.2
3*172e611bSKrzysztof Kozlowski---
4*172e611bSKrzysztof Kozlowski$id: http://devicetree.org/schemas/mfd/maxim,max77802.yaml#
5*172e611bSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*172e611bSKrzysztof Kozlowski
7*172e611bSKrzysztof Kozlowskititle: Maxim MAX77802 Power Management IC
8*172e611bSKrzysztof Kozlowski
9*172e611bSKrzysztof Kozlowskimaintainers:
10*172e611bSKrzysztof Kozlowski  - Javier Martinez Canillas <javier@dowhile0.org>
11*172e611bSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
12*172e611bSKrzysztof Kozlowski
13*172e611bSKrzysztof Kozlowskidescription: |
14*172e611bSKrzysztof Kozlowski  This is a part of device tree bindings for Maxim MAX77802 Power Management
15*172e611bSKrzysztof Kozlowski  Integrated Circuit (PMIC).
16*172e611bSKrzysztof Kozlowski
17*172e611bSKrzysztof Kozlowski  The Maxim MAX77802 is a Power Management IC which includes voltage and
18*172e611bSKrzysztof Kozlowski  current regulators (10 high efficiency Buck regulators and 32 Low-DropOut
19*172e611bSKrzysztof Kozlowski  (LDO)), RTC and clock outputs.
20*172e611bSKrzysztof Kozlowski
21*172e611bSKrzysztof Kozlowski  The MAX77802 provides two 32.768khz clock outputs that can be controlled
22*172e611bSKrzysztof Kozlowski  (gated/ungated) over I2C.  The clock IDs are defined as preprocessor macros
23*172e611bSKrzysztof Kozlowski  in dt-bindings/clock/maxim,max77802.h.
24*172e611bSKrzysztof Kozlowski
25*172e611bSKrzysztof Kozlowskiproperties:
26*172e611bSKrzysztof Kozlowski  compatible:
27*172e611bSKrzysztof Kozlowski    const: maxim,max77802
28*172e611bSKrzysztof Kozlowski
29*172e611bSKrzysztof Kozlowski  '#clock-cells':
30*172e611bSKrzysztof Kozlowski    const: 1
31*172e611bSKrzysztof Kozlowski
32*172e611bSKrzysztof Kozlowski  interrupts:
33*172e611bSKrzysztof Kozlowski    maxItems: 1
34*172e611bSKrzysztof Kozlowski
35*172e611bSKrzysztof Kozlowski  reg:
36*172e611bSKrzysztof Kozlowski    maxItems: 1
37*172e611bSKrzysztof Kozlowski
38*172e611bSKrzysztof Kozlowski  regulators:
39*172e611bSKrzysztof Kozlowski    $ref: /schemas/regulator/maxim,max77802.yaml
40*172e611bSKrzysztof Kozlowski    description:
41*172e611bSKrzysztof Kozlowski      List of child nodes that specify the regulators.
42*172e611bSKrzysztof Kozlowski
43*172e611bSKrzysztof Kozlowski  inb1-supply:
44*172e611bSKrzysztof Kozlowski    description: Power supply for buck1
45*172e611bSKrzysztof Kozlowski  inb2-supply:
46*172e611bSKrzysztof Kozlowski    description: Power supply for buck2
47*172e611bSKrzysztof Kozlowski  inb3-supply:
48*172e611bSKrzysztof Kozlowski    description: Power supply for buck3
49*172e611bSKrzysztof Kozlowski  inb4-supply:
50*172e611bSKrzysztof Kozlowski    description: Power supply for buck4
51*172e611bSKrzysztof Kozlowski  inb5-supply:
52*172e611bSKrzysztof Kozlowski    description: Power supply for buck5
53*172e611bSKrzysztof Kozlowski  inb6-supply:
54*172e611bSKrzysztof Kozlowski    description: Power supply for buck6
55*172e611bSKrzysztof Kozlowski  inb7-supply:
56*172e611bSKrzysztof Kozlowski    description: Power supply for buck7
57*172e611bSKrzysztof Kozlowski  inb8-supply:
58*172e611bSKrzysztof Kozlowski    description: Power supply for buck8
59*172e611bSKrzysztof Kozlowski  inb9-supply:
60*172e611bSKrzysztof Kozlowski    description: Power supply for buck9
61*172e611bSKrzysztof Kozlowski  inb10-supply:
62*172e611bSKrzysztof Kozlowski    description: Power supply for buck10
63*172e611bSKrzysztof Kozlowski
64*172e611bSKrzysztof Kozlowski  inl1-supply:
65*172e611bSKrzysztof Kozlowski    description: Power supply for LDO8, LDO15
66*172e611bSKrzysztof Kozlowski  inl2-supply:
67*172e611bSKrzysztof Kozlowski    description: Power supply for LDO17, LDO27, LDO30, LDO35
68*172e611bSKrzysztof Kozlowski  inl3-supply:
69*172e611bSKrzysztof Kozlowski    description: Power supply for LDO3, LDO5, LDO7, LDO7
70*172e611bSKrzysztof Kozlowski  inl4-supply:
71*172e611bSKrzysztof Kozlowski    description: Power supply for LDO10, LDO11, LDO13, LDO14
72*172e611bSKrzysztof Kozlowski  inl5-supply:
73*172e611bSKrzysztof Kozlowski    description: Power supply for LDO9, LDO19
74*172e611bSKrzysztof Kozlowski  inl6-supply:
75*172e611bSKrzysztof Kozlowski    description: Power supply for LDO4, LDO21, LDO24, LDO33
76*172e611bSKrzysztof Kozlowski  inl7-supply:
77*172e611bSKrzysztof Kozlowski    description: Power supply for LDO18, LDO20, LDO28, LDO29
78*172e611bSKrzysztof Kozlowski  inl9-supply:
79*172e611bSKrzysztof Kozlowski    description: Power supply for LDO12, LDO23, LDO25, LDO26, LDO32, LDO34
80*172e611bSKrzysztof Kozlowski  inl10-supply:
81*172e611bSKrzysztof Kozlowski    description: Power supply for LDO1, LDO2
82*172e611bSKrzysztof Kozlowski
83*172e611bSKrzysztof Kozlowski  wakeup-source: true
84*172e611bSKrzysztof Kozlowski
85*172e611bSKrzysztof Kozlowskirequired:
86*172e611bSKrzysztof Kozlowski  - compatible
87*172e611bSKrzysztof Kozlowski  - '#clock-cells'
88*172e611bSKrzysztof Kozlowski  - reg
89*172e611bSKrzysztof Kozlowski
90*172e611bSKrzysztof KozlowskiadditionalProperties: false
91*172e611bSKrzysztof Kozlowski
92*172e611bSKrzysztof Kozlowskiexamples:
93*172e611bSKrzysztof Kozlowski  - |
94*172e611bSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/irq.h>
95*172e611bSKrzysztof Kozlowski    #include <dt-bindings/regulator/maxim,max77802.h>
96*172e611bSKrzysztof Kozlowski
97*172e611bSKrzysztof Kozlowski    i2c {
98*172e611bSKrzysztof Kozlowski        #address-cells = <1>;
99*172e611bSKrzysztof Kozlowski        #size-cells = <0>;
100*172e611bSKrzysztof Kozlowski
101*172e611bSKrzysztof Kozlowski        pmic@9 {
102*172e611bSKrzysztof Kozlowski            compatible = "maxim,max77802";
103*172e611bSKrzysztof Kozlowski            interrupt-parent = <&gpx3>;
104*172e611bSKrzysztof Kozlowski            interrupts = <1 IRQ_TYPE_NONE>;
105*172e611bSKrzysztof Kozlowski            pinctrl-names = "default";
106*172e611bSKrzysztof Kozlowski            pinctrl-0 = <&max77802_irq>, <&pmic_selb>,
107*172e611bSKrzysztof Kozlowski                        <&pmic_dvs_1>, <&pmic_dvs_2>, <&pmic_dvs_3>;
108*172e611bSKrzysztof Kozlowski            wakeup-source;
109*172e611bSKrzysztof Kozlowski            reg = <0x9>;
110*172e611bSKrzysztof Kozlowski            #clock-cells = <1>;
111*172e611bSKrzysztof Kozlowski
112*172e611bSKrzysztof Kozlowski            inb1-supply = <&tps65090_dcdc2>;
113*172e611bSKrzysztof Kozlowski            inb2-supply = <&tps65090_dcdc1>;
114*172e611bSKrzysztof Kozlowski            inb3-supply = <&tps65090_dcdc2>;
115*172e611bSKrzysztof Kozlowski            inb4-supply = <&tps65090_dcdc2>;
116*172e611bSKrzysztof Kozlowski            inb5-supply = <&tps65090_dcdc1>;
117*172e611bSKrzysztof Kozlowski            inb6-supply = <&tps65090_dcdc2>;
118*172e611bSKrzysztof Kozlowski            inb7-supply = <&tps65090_dcdc1>;
119*172e611bSKrzysztof Kozlowski            inb8-supply = <&tps65090_dcdc1>;
120*172e611bSKrzysztof Kozlowski            inb9-supply = <&tps65090_dcdc1>;
121*172e611bSKrzysztof Kozlowski            inb10-supply = <&tps65090_dcdc1>;
122*172e611bSKrzysztof Kozlowski
123*172e611bSKrzysztof Kozlowski            inl1-supply = <&buck5_reg>;
124*172e611bSKrzysztof Kozlowski            inl2-supply = <&buck7_reg>;
125*172e611bSKrzysztof Kozlowski            inl3-supply = <&buck9_reg>;
126*172e611bSKrzysztof Kozlowski            inl4-supply = <&buck9_reg>;
127*172e611bSKrzysztof Kozlowski            inl5-supply = <&buck9_reg>;
128*172e611bSKrzysztof Kozlowski            inl6-supply = <&tps65090_dcdc2>;
129*172e611bSKrzysztof Kozlowski            inl7-supply = <&buck9_reg>;
130*172e611bSKrzysztof Kozlowski            inl9-supply = <&tps65090_dcdc2>;
131*172e611bSKrzysztof Kozlowski            inl10-supply = <&buck7_reg>;
132*172e611bSKrzysztof Kozlowski
133*172e611bSKrzysztof Kozlowski            regulators {
134*172e611bSKrzysztof Kozlowski                BUCK1 {
135*172e611bSKrzysztof Kozlowski                    regulator-name = "vdd_mif";
136*172e611bSKrzysztof Kozlowski                    regulator-min-microvolt = <800000>;
137*172e611bSKrzysztof Kozlowski                    regulator-max-microvolt = <1300000>;
138*172e611bSKrzysztof Kozlowski                    regulator-always-on;
139*172e611bSKrzysztof Kozlowski                    regulator-boot-on;
140*172e611bSKrzysztof Kozlowski                    regulator-ramp-delay = <12500>;
141*172e611bSKrzysztof Kozlowski                    regulator-state-mem {
142*172e611bSKrzysztof Kozlowski                        regulator-off-in-suspend;
143*172e611bSKrzysztof Kozlowski                    };
144*172e611bSKrzysztof Kozlowski                };
145*172e611bSKrzysztof Kozlowski
146*172e611bSKrzysztof Kozlowski                BUCK2 {
147*172e611bSKrzysztof Kozlowski                    regulator-name = "vdd_arm";
148*172e611bSKrzysztof Kozlowski                    regulator-min-microvolt = <800000>;
149*172e611bSKrzysztof Kozlowski                    regulator-max-microvolt = <1500000>;
150*172e611bSKrzysztof Kozlowski                    regulator-always-on;
151*172e611bSKrzysztof Kozlowski                    regulator-boot-on;
152*172e611bSKrzysztof Kozlowski                    regulator-ramp-delay = <12500>;
153*172e611bSKrzysztof Kozlowski                    regulator-coupled-with = <&buck3_reg>;
154*172e611bSKrzysztof Kozlowski                    regulator-coupled-max-spread = <300000>;
155*172e611bSKrzysztof Kozlowski                    regulator-state-mem {
156*172e611bSKrzysztof Kozlowski                        regulator-off-in-suspend;
157*172e611bSKrzysztof Kozlowski                    };
158*172e611bSKrzysztof Kozlowski                };
159*172e611bSKrzysztof Kozlowski
160*172e611bSKrzysztof Kozlowski                // ...
161*172e611bSKrzysztof Kozlowski
162*172e611bSKrzysztof Kozlowski                BUCK10 {
163*172e611bSKrzysztof Kozlowski                    regulator-name = "vdd_1v8";
164*172e611bSKrzysztof Kozlowski                    regulator-min-microvolt = <1800000>;
165*172e611bSKrzysztof Kozlowski                    regulator-max-microvolt = <1800000>;
166*172e611bSKrzysztof Kozlowski                    regulator-always-on;
167*172e611bSKrzysztof Kozlowski                    regulator-boot-on;
168*172e611bSKrzysztof Kozlowski                    regulator-state-mem {
169*172e611bSKrzysztof Kozlowski                        regulator-on-in-suspend;
170*172e611bSKrzysztof Kozlowski                    };
171*172e611bSKrzysztof Kozlowski                };
172*172e611bSKrzysztof Kozlowski
173*172e611bSKrzysztof Kozlowski                LDO1 {
174*172e611bSKrzysztof Kozlowski                    regulator-name = "vdd_1v0";
175*172e611bSKrzysztof Kozlowski                    regulator-min-microvolt = <1000000>;
176*172e611bSKrzysztof Kozlowski                    regulator-max-microvolt = <1000000>;
177*172e611bSKrzysztof Kozlowski                    regulator-always-on;
178*172e611bSKrzysztof Kozlowski                    regulator-initial-mode = <MAX77802_OPMODE_NORMAL>;
179*172e611bSKrzysztof Kozlowski                    regulator-state-mem {
180*172e611bSKrzysztof Kozlowski                        regulator-on-in-suspend;
181*172e611bSKrzysztof Kozlowski                        regulator-mode = <MAX77802_OPMODE_LP>;
182*172e611bSKrzysztof Kozlowski                    };
183*172e611bSKrzysztof Kozlowski                };
184*172e611bSKrzysztof Kozlowski
185*172e611bSKrzysztof Kozlowski                // ...
186*172e611bSKrzysztof Kozlowski
187*172e611bSKrzysztof Kozlowski                LDO35 {
188*172e611bSKrzysztof Kozlowski                    regulator-name = "ldo_35";
189*172e611bSKrzysztof Kozlowski                    regulator-min-microvolt = <1200000>;
190*172e611bSKrzysztof Kozlowski                    regulator-max-microvolt = <1200000>;
191*172e611bSKrzysztof Kozlowski                };
192*172e611bSKrzysztof Kozlowski            };
193*172e611bSKrzysztof Kozlowski        };
194*172e611bSKrzysztof Kozlowski    };
195