xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/maxim,max8998.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1*84943d6fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*84943d6fSEmmanuel Vadot%YAML 1.2
3*84943d6fSEmmanuel Vadot---
4*84943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/maxim,max8998.yaml#
5*84943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*84943d6fSEmmanuel Vadot
7*84943d6fSEmmanuel Vadottitle: Maxim MAX8998, National/TI LP3974 Power Management IC
8*84943d6fSEmmanuel Vadot
9*84943d6fSEmmanuel Vadotmaintainers:
10*84943d6fSEmmanuel Vadot  - Krzysztof Kozlowski <krzk@kernel.org>
11*84943d6fSEmmanuel Vadot
12*84943d6fSEmmanuel Vadotdescription:
13*84943d6fSEmmanuel Vadot  The Maxim MAX8998 is a Power Management IC which includes voltage/current
14*84943d6fSEmmanuel Vadot  regulators, real time clock, battery charging controller and several other
15*84943d6fSEmmanuel Vadot  sub-blocks. It is interfaced using an I2C interface. Each sub-block is
16*84943d6fSEmmanuel Vadot  addressed by the host system using different i2c slave address.
17*84943d6fSEmmanuel Vadot
18*84943d6fSEmmanuel Vadotproperties:
19*84943d6fSEmmanuel Vadot  compatible:
20*84943d6fSEmmanuel Vadot    enum:
21*84943d6fSEmmanuel Vadot      - maxim,max8998
22*84943d6fSEmmanuel Vadot      - national,lp3974
23*84943d6fSEmmanuel Vadot      - ti,lp3974
24*84943d6fSEmmanuel Vadot
25*84943d6fSEmmanuel Vadot  reg:
26*84943d6fSEmmanuel Vadot    maxItems: 1
27*84943d6fSEmmanuel Vadot
28*84943d6fSEmmanuel Vadot  interrupts:
29*84943d6fSEmmanuel Vadot    minItems: 1
30*84943d6fSEmmanuel Vadot    items:
31*84943d6fSEmmanuel Vadot      - description: Main interrupt
32*84943d6fSEmmanuel Vadot      - description: Power-on/-off interrupt
33*84943d6fSEmmanuel Vadot
34*84943d6fSEmmanuel Vadot  max8998,pmic-buck1-dvs-gpios:
35*84943d6fSEmmanuel Vadot    maxItems: 2
36*84943d6fSEmmanuel Vadot    description:
37*84943d6fSEmmanuel Vadot      Two host gpios used for buck1 DVS.
38*84943d6fSEmmanuel Vadot
39*84943d6fSEmmanuel Vadot  max8998,pmic-buck2-dvs-gpio:
40*84943d6fSEmmanuel Vadot    maxItems: 1
41*84943d6fSEmmanuel Vadot    description:
42*84943d6fSEmmanuel Vadot      Host gpio used for buck2 DVS.
43*84943d6fSEmmanuel Vadot
44*84943d6fSEmmanuel Vadot  max8998,pmic-buck1-default-dvs-idx:
45*84943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
46*84943d6fSEmmanuel Vadot    enum: [0, 1, 2, 3]
47*84943d6fSEmmanuel Vadot    default: 0
48*84943d6fSEmmanuel Vadot    description:
49*84943d6fSEmmanuel Vadot      Default voltage setting selected from the possible 4 options selectable
50*84943d6fSEmmanuel Vadot      by the DVS gpios.
51*84943d6fSEmmanuel Vadot
52*84943d6fSEmmanuel Vadot  max8998,pmic-buck2-default-dvs-idx:
53*84943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
54*84943d6fSEmmanuel Vadot    enum: [0, 1]
55*84943d6fSEmmanuel Vadot    default: 0
56*84943d6fSEmmanuel Vadot    description:
57*84943d6fSEmmanuel Vadot      Default voltage setting selected from the possible 2 options selectable
58*84943d6fSEmmanuel Vadot      by the DVS GPIOs.
59*84943d6fSEmmanuel Vadot
60*84943d6fSEmmanuel Vadot  max8998,pmic-buck-voltage-lock:
61*84943d6fSEmmanuel Vadot    type: boolean
62*84943d6fSEmmanuel Vadot    description:
63*84943d6fSEmmanuel Vadot      If present, disallows changing of preprogrammed buck DVS voltages.
64*84943d6fSEmmanuel Vadot
65*84943d6fSEmmanuel Vadot  max8998,pmic-buck1-dvs-voltage:
66*84943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
67*84943d6fSEmmanuel Vadot    maxItems: 4
68*84943d6fSEmmanuel Vadot    description:
69*84943d6fSEmmanuel Vadot      Four voltage values in microvolts for buck1 regulator that can be
70*84943d6fSEmmanuel Vadot      selected using DVS GPIO.
71*84943d6fSEmmanuel Vadot
72*84943d6fSEmmanuel Vadot  max8998,pmic-buck2-dvs-voltage:
73*84943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
74*84943d6fSEmmanuel Vadot    maxItems: 2
75*84943d6fSEmmanuel Vadot    description:
76*84943d6fSEmmanuel Vadot      Two voltage values in microvolts for buck2 regulator that can be
77*84943d6fSEmmanuel Vadot      selected using DVS GPIO.
78*84943d6fSEmmanuel Vadot
79*84943d6fSEmmanuel Vadot  regulators:
80*84943d6fSEmmanuel Vadot    type: object
81*84943d6fSEmmanuel Vadot    additionalProperties: false
82*84943d6fSEmmanuel Vadot
83*84943d6fSEmmanuel Vadot    properties:
84*84943d6fSEmmanuel Vadot      CHARGER:
85*84943d6fSEmmanuel Vadot        type: object
86*84943d6fSEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
87*84943d6fSEmmanuel Vadot        unevaluatedProperties: false
88*84943d6fSEmmanuel Vadot        description:
89*84943d6fSEmmanuel Vadot          CHARGER is main battery charger current control, wrongly represented
90*84943d6fSEmmanuel Vadot          as regulator.
91*84943d6fSEmmanuel Vadot
92*84943d6fSEmmanuel Vadot        properties:
93*84943d6fSEmmanuel Vadot          regulator-min-microamp:
94*84943d6fSEmmanuel Vadot            minimum: 90000
95*84943d6fSEmmanuel Vadot            maximum: 800000
96*84943d6fSEmmanuel Vadot
97*84943d6fSEmmanuel Vadot          regulator-max-microamp:
98*84943d6fSEmmanuel Vadot            minimum: 90000
99*84943d6fSEmmanuel Vadot            maximum: 800000
100*84943d6fSEmmanuel Vadot
101*84943d6fSEmmanuel Vadot          regulator-min-microvolt: false
102*84943d6fSEmmanuel Vadot          regulator-max-microvolt: false
103*84943d6fSEmmanuel Vadot
104*84943d6fSEmmanuel Vadot        required:
105*84943d6fSEmmanuel Vadot          - regulator-name
106*84943d6fSEmmanuel Vadot
107*84943d6fSEmmanuel Vadot    patternProperties:
108*84943d6fSEmmanuel Vadot      "^(LDO([2-9]|1[0-7])|BUCK[1-4])$":
109*84943d6fSEmmanuel Vadot        type: object
110*84943d6fSEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
111*84943d6fSEmmanuel Vadot        unevaluatedProperties: false
112*84943d6fSEmmanuel Vadot
113*84943d6fSEmmanuel Vadot        required:
114*84943d6fSEmmanuel Vadot          - regulator-name
115*84943d6fSEmmanuel Vadot
116*84943d6fSEmmanuel Vadot      "^(EN32KHz-AP|EN32KHz-CP|ENVICHG|ESAFEOUT[12])$":
117*84943d6fSEmmanuel Vadot        type: object
118*84943d6fSEmmanuel Vadot        $ref: /schemas/regulator/regulator.yaml#
119*84943d6fSEmmanuel Vadot        unevaluatedProperties: false
120*84943d6fSEmmanuel Vadot        description: |
121*84943d6fSEmmanuel Vadot          EN32KHz-AP and EN32KHz-CP are 32768 Hz clocks, wrongly represented as
122*84943d6fSEmmanuel Vadot          regulators.
123*84943d6fSEmmanuel Vadot          ENVICHG is a Battery Charging Current Monitor Output.
124*84943d6fSEmmanuel Vadot
125*84943d6fSEmmanuel Vadot        properties:
126*84943d6fSEmmanuel Vadot          regulator-min-microvolt: false
127*84943d6fSEmmanuel Vadot          regulator-max-microvolt: false
128*84943d6fSEmmanuel Vadot
129*84943d6fSEmmanuel Vadot        required:
130*84943d6fSEmmanuel Vadot          - regulator-name
131*84943d6fSEmmanuel Vadot
132*84943d6fSEmmanuel Vadotdependencies:
133*84943d6fSEmmanuel Vadot  max8998,pmic-buck1-dvs-gpios: [ "max8998,pmic-buck1-dvs-voltage" ]
134*84943d6fSEmmanuel Vadot  max8998,pmic-buck2-dvs-gpio: [ "max8998,pmic-buck2-dvs-voltage" ]
135*84943d6fSEmmanuel Vadot
136*84943d6fSEmmanuel Vadotrequired:
137*84943d6fSEmmanuel Vadot  - compatible
138*84943d6fSEmmanuel Vadot  - reg
139*84943d6fSEmmanuel Vadot  - regulators
140*84943d6fSEmmanuel Vadot
141*84943d6fSEmmanuel VadotadditionalProperties: false
142*84943d6fSEmmanuel Vadot
143*84943d6fSEmmanuel Vadotexamples:
144*84943d6fSEmmanuel Vadot  - |
145*84943d6fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
146*84943d6fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
147*84943d6fSEmmanuel Vadot
148*84943d6fSEmmanuel Vadot    i2c {
149*84943d6fSEmmanuel Vadot        #address-cells = <1>;
150*84943d6fSEmmanuel Vadot        #size-cells = <0>;
151*84943d6fSEmmanuel Vadot
152*84943d6fSEmmanuel Vadot        pmic@66 {
153*84943d6fSEmmanuel Vadot            compatible = "national,lp3974";
154*84943d6fSEmmanuel Vadot            reg = <0x66>;
155*84943d6fSEmmanuel Vadot            interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
156*84943d6fSEmmanuel Vadot                                  <&gpx2 7 IRQ_TYPE_LEVEL_LOW>;
157*84943d6fSEmmanuel Vadot            pinctrl-names = "default";
158*84943d6fSEmmanuel Vadot            pinctrl-0 = <&lp3974_irq>;
159*84943d6fSEmmanuel Vadot
160*84943d6fSEmmanuel Vadot            max8998,pmic-buck1-default-dvs-idx = <0>;
161*84943d6fSEmmanuel Vadot            max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
162*84943d6fSEmmanuel Vadot                                           <&gpx0 6 GPIO_ACTIVE_HIGH>;
163*84943d6fSEmmanuel Vadot            max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,
164*84943d6fSEmmanuel Vadot                                             <1100000>, <1000000>;
165*84943d6fSEmmanuel Vadot            max8998,pmic-buck2-default-dvs-idx = <0>;
166*84943d6fSEmmanuel Vadot            max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;
167*84943d6fSEmmanuel Vadot            max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;
168*84943d6fSEmmanuel Vadot
169*84943d6fSEmmanuel Vadot            regulators {
170*84943d6fSEmmanuel Vadot                LDO2 {
171*84943d6fSEmmanuel Vadot                    regulator-name = "VALIVE_1.2V";
172*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
173*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1200000>;
174*84943d6fSEmmanuel Vadot                    regulator-always-on;
175*84943d6fSEmmanuel Vadot                };
176*84943d6fSEmmanuel Vadot
177*84943d6fSEmmanuel Vadot                LDO3 {
178*84943d6fSEmmanuel Vadot                    regulator-name = "VUSB+MIPI_1.1V";
179*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1100000>;
180*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1100000>;
181*84943d6fSEmmanuel Vadot                    regulator-always-on;
182*84943d6fSEmmanuel Vadot                };
183*84943d6fSEmmanuel Vadot
184*84943d6fSEmmanuel Vadot                LDO4 {
185*84943d6fSEmmanuel Vadot                    regulator-name = "VADC_3.3V";
186*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
187*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
188*84943d6fSEmmanuel Vadot                };
189*84943d6fSEmmanuel Vadot
190*84943d6fSEmmanuel Vadot                LDO5 {
191*84943d6fSEmmanuel Vadot                    regulator-name = "VTF_2.8V";
192*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <2800000>;
193*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <2800000>;
194*84943d6fSEmmanuel Vadot                };
195*84943d6fSEmmanuel Vadot
196*84943d6fSEmmanuel Vadot                LDO6 {
197*84943d6fSEmmanuel Vadot                    regulator-name = "LDO6";
198*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <2000000>;
199*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <2000000>;
200*84943d6fSEmmanuel Vadot                };
201*84943d6fSEmmanuel Vadot
202*84943d6fSEmmanuel Vadot                LDO7 {
203*84943d6fSEmmanuel Vadot                    regulator-name = "VLCD+VMIPI_1.8V";
204*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
205*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
206*84943d6fSEmmanuel Vadot                };
207*84943d6fSEmmanuel Vadot
208*84943d6fSEmmanuel Vadot                LDO8 {
209*84943d6fSEmmanuel Vadot                    regulator-name = "VUSB+VDAC_3.3V";
210*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
211*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
212*84943d6fSEmmanuel Vadot                    regulator-always-on;
213*84943d6fSEmmanuel Vadot                };
214*84943d6fSEmmanuel Vadot
215*84943d6fSEmmanuel Vadot                LDO9 {
216*84943d6fSEmmanuel Vadot                    regulator-name = "VCC_2.8V";
217*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <2800000>;
218*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <2800000>;
219*84943d6fSEmmanuel Vadot                    regulator-always-on;
220*84943d6fSEmmanuel Vadot                };
221*84943d6fSEmmanuel Vadot
222*84943d6fSEmmanuel Vadot                LDO10 {
223*84943d6fSEmmanuel Vadot                    regulator-name = "VPLL_1.1V";
224*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1100000>;
225*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1100000>;
226*84943d6fSEmmanuel Vadot                    regulator-boot-on;
227*84943d6fSEmmanuel Vadot                    regulator-always-on;
228*84943d6fSEmmanuel Vadot                };
229*84943d6fSEmmanuel Vadot
230*84943d6fSEmmanuel Vadot                LDO11 {
231*84943d6fSEmmanuel Vadot                    regulator-name = "CAM_AF_3.3V";
232*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <3300000>;
233*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
234*84943d6fSEmmanuel Vadot                };
235*84943d6fSEmmanuel Vadot
236*84943d6fSEmmanuel Vadot                LDO12 {
237*84943d6fSEmmanuel Vadot                    regulator-name = "PS_2.8V";
238*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <2800000>;
239*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <2800000>;
240*84943d6fSEmmanuel Vadot                };
241*84943d6fSEmmanuel Vadot
242*84943d6fSEmmanuel Vadot                LDO13 {
243*84943d6fSEmmanuel Vadot                    regulator-name = "VHIC_1.2V";
244*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
245*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1200000>;
246*84943d6fSEmmanuel Vadot                };
247*84943d6fSEmmanuel Vadot
248*84943d6fSEmmanuel Vadot                LDO14 {
249*84943d6fSEmmanuel Vadot                    regulator-name = "CAM_I_HOST_1.8V";
250*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
251*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
252*84943d6fSEmmanuel Vadot                };
253*84943d6fSEmmanuel Vadot
254*84943d6fSEmmanuel Vadot                LDO15 {
255*84943d6fSEmmanuel Vadot                    regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";
256*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
257*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1200000>;
258*84943d6fSEmmanuel Vadot                };
259*84943d6fSEmmanuel Vadot
260*84943d6fSEmmanuel Vadot                LDO16 {
261*84943d6fSEmmanuel Vadot                    regulator-name = "CAM_S_ANA_2.8V";
262*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <2800000>;
263*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <2800000>;
264*84943d6fSEmmanuel Vadot                };
265*84943d6fSEmmanuel Vadot
266*84943d6fSEmmanuel Vadot                LDO17 {
267*84943d6fSEmmanuel Vadot                    regulator-name = "VCC_3.0V_LCD";
268*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <3000000>;
269*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <3000000>;
270*84943d6fSEmmanuel Vadot                };
271*84943d6fSEmmanuel Vadot
272*84943d6fSEmmanuel Vadot                BUCK1 {
273*84943d6fSEmmanuel Vadot                    regulator-name = "VINT_1.1V";
274*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <750000>;
275*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1500000>;
276*84943d6fSEmmanuel Vadot                    regulator-boot-on;
277*84943d6fSEmmanuel Vadot                    regulator-always-on;
278*84943d6fSEmmanuel Vadot                };
279*84943d6fSEmmanuel Vadot
280*84943d6fSEmmanuel Vadot                BUCK2 {
281*84943d6fSEmmanuel Vadot                    regulator-name = "VG3D_1.1V";
282*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <750000>;
283*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1500000>;
284*84943d6fSEmmanuel Vadot                    regulator-boot-on;
285*84943d6fSEmmanuel Vadot                };
286*84943d6fSEmmanuel Vadot
287*84943d6fSEmmanuel Vadot                BUCK3 {
288*84943d6fSEmmanuel Vadot                    regulator-name = "VCC_1.8V";
289*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1800000>;
290*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1800000>;
291*84943d6fSEmmanuel Vadot                    regulator-always-on;
292*84943d6fSEmmanuel Vadot                };
293*84943d6fSEmmanuel Vadot
294*84943d6fSEmmanuel Vadot                BUCK4 {
295*84943d6fSEmmanuel Vadot                    regulator-name = "VMEM_1.2V";
296*84943d6fSEmmanuel Vadot                    regulator-min-microvolt = <1200000>;
297*84943d6fSEmmanuel Vadot                    regulator-max-microvolt = <1200000>;
298*84943d6fSEmmanuel Vadot                    regulator-always-on;
299*84943d6fSEmmanuel Vadot                };
300*84943d6fSEmmanuel Vadot
301*84943d6fSEmmanuel Vadot                EN32KHz-AP {
302*84943d6fSEmmanuel Vadot                    regulator-name = "32KHz AP";
303*84943d6fSEmmanuel Vadot                    regulator-always-on;
304*84943d6fSEmmanuel Vadot                };
305*84943d6fSEmmanuel Vadot
306*84943d6fSEmmanuel Vadot                EN32KHz-CP {
307*84943d6fSEmmanuel Vadot                    regulator-name = "32KHz CP";
308*84943d6fSEmmanuel Vadot                };
309*84943d6fSEmmanuel Vadot
310*84943d6fSEmmanuel Vadot                ENVICHG {
311*84943d6fSEmmanuel Vadot                    regulator-name = "VICHG";
312*84943d6fSEmmanuel Vadot                };
313*84943d6fSEmmanuel Vadot
314*84943d6fSEmmanuel Vadot                ESAFEOUT1 {
315*84943d6fSEmmanuel Vadot                    regulator-name = "SAFEOUT1";
316*84943d6fSEmmanuel Vadot                };
317*84943d6fSEmmanuel Vadot
318*84943d6fSEmmanuel Vadot                ESAFEOUT2 {
319*84943d6fSEmmanuel Vadot                    regulator-name = "SAFEOUT2";
320*84943d6fSEmmanuel Vadot                    regulator-boot-on;
321*84943d6fSEmmanuel Vadot                };
322*84943d6fSEmmanuel Vadot            };
323*84943d6fSEmmanuel Vadot        };
324*84943d6fSEmmanuel Vadot    };
325