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