1 # SPDX-License-Identifier: GPL-2.0-only
4 $id: http://devicetree.org/schemas/regulator/maxim,max8997.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Maxim MAX8997 Power Management IC
10 - Krzysztof Kozlowski <krzk@kernel.org>
13 The Maxim MAX8997 is a Power Management IC which includes voltage and current
14 regulators, charger controller with fuel gauge, RTC, clock outputs, haptic
15 motor driver, flash LED driver and Micro-USB Interface Controller.
17 The binding here is not complete and describes only regulator and charger
22 const: maxim,max8997-pmic
26 Regulator node for charging current.
30 - description: irq1 interrupt
31 - description: alert interrupt
33 max8997,pmic-buck1-dvs-voltage:
34 $ref: /schemas/types.yaml#/definitions/uint32-array
38 A set of 8 voltage values in micro-volt (uV) units for buck1 when
39 changing voltage using GPIO DVS.
40 If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
41 specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
42 specify at least one voltage level (which would be a safe operating
45 max8997,pmic-buck2-dvs-voltage:
46 $ref: /schemas/types.yaml#/definitions/uint32-array
50 A set of 8 voltage values in micro-volt (uV) units for buck2 when
51 changing voltage using GPIO DVS.
52 If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
53 specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
54 specify at least one voltage level (which would be a safe operating
57 max8997,pmic-buck5-dvs-voltage:
58 $ref: /schemas/types.yaml#/definitions/uint32-array
62 A set of 8 voltage values in micro-volt (uV) units for buck5 when
63 changing voltage using GPIO DVS.
64 If none of max8997,pmic-buck[1/2/5]-uses-gpio-dvs optional property is
65 specified, the max8997,pmic-buck[1/2/5]-dvs-voltage property should
66 specify at least one voltage level (which would be a safe operating
69 max8997,pmic-buck1-uses-gpio-dvs:
72 buck1 can be controlled by GPIO DVS.
74 max8997,pmic-buck2-uses-gpio-dvs:
77 buck2 can be controlled by GPIO DVS.
79 max8997,pmic-buck5-uses-gpio-dvs:
82 buck5 can be controlled by GPIO DVS.
84 max8997,pmic-buck125-default-dvs-idx:
85 $ref: /schemas/types.yaml#/definitions/uint32
90 Default voltage setting selected from the possible 8 options selectable
91 by the dvs gpios. The value of this property should be between 0 and 7.
92 If not specified or if out of range, the default value of this property
95 max8997,pmic-buck125-dvs-gpios:
99 GPIO specifiers for three host gpio's used for DVS.
101 max8997,pmic-ignore-gpiodvs-side-effect:
104 When GPIO-DVS mode is used for multiple bucks, changing the voltage value
105 of one of the bucks may affect that of another buck, which is the side
106 effect of the change (set_voltage). Use this property to ignore such
107 side effects and change the voltage.
114 additionalProperties: false
116 List of child nodes that specify the regulators.
120 "^LDO([1-9]|1[0-8]|21)$":
122 $ref: regulator.yaml#
124 Properties for single LDO regulator.
132 unevaluatedProperties: false
137 $ref: regulator.yaml#
139 Properties for single BUCK regulator.
147 unevaluatedProperties: false
151 $ref: regulator.yaml#
153 32768 Hz clock output (modelled as regulator)
157 regulator-always-on: true
158 regulator-boot-on: true
163 additionalProperties: false
168 $ref: regulator.yaml#
169 description: main battery charger current control
177 unevaluatedProperties: false
181 $ref: regulator.yaml#
182 description: main battery charger voltage control
190 unevaluatedProperties: false
194 $ref: regulator.yaml#
195 description: end of charge current threshold level
203 unevaluatedProperties: false
207 $ref: regulator.yaml#
209 Battery Charging Current Monitor Output. This is a fixed voltage type
217 unevaluatedProperties: false
221 $ref: regulator.yaml#
230 unevaluatedProperties: false
234 $ref: regulator.yaml#
243 unevaluatedProperties: false
247 - max8997,pmic-buck1-dvs-voltage
248 - max8997,pmic-buck2-dvs-voltage
249 - max8997,pmic-buck5-dvs-voltage
254 max8997,pmic-buck1-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
255 max8997,pmic-buck2-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
256 max8997,pmic-buck5-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
258 additionalProperties: false
263 - max8997,pmic-buck1-uses-gpio-dvs
265 - max8997,pmic-buck2-uses-gpio-dvs
267 - max8997,pmic-buck5-uses-gpio-dvs
270 max8997,pmic-buck1-dvs-voltage:
273 max8997,pmic-buck2-dvs-voltage:
276 max8997,pmic-buck5-dvs-voltage:
282 #include <dt-bindings/gpio/gpio.h>
283 #include <dt-bindings/interrupt-controller/irq.h>
286 #address-cells = <1>;
290 compatible = "maxim,max8997-pmic";
293 interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
294 <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
296 max8997,pmic-buck1-uses-gpio-dvs;
297 max8997,pmic-buck2-uses-gpio-dvs;
298 max8997,pmic-buck5-uses-gpio-dvs;
300 max8997,pmic-ignore-gpiodvs-side-effect;
301 max8997,pmic-buck125-default-dvs-idx = <0>;
303 max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
304 <&gpx0 6 GPIO_ACTIVE_HIGH>,
305 <&gpl0 0 GPIO_ACTIVE_HIGH>;
307 max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
308 <1250000>, <1200000>,
309 <1150000>, <1100000>,
312 max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
314 <1100000>, <1000000>,
317 max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
318 <1200000>, <1200000>,
319 <1200000>, <1200000>,
320 <1200000>, <1200000>;
322 pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
323 pinctrl-names = "default";
325 charger-supply = <&charger_reg>;
329 regulator-name = "VADC_3.3V_C210";
330 regulator-min-microvolt = <3300000>;
331 regulator-max-microvolt = <3300000>;
336 regulator-name = "VALIVE_1.1V_C210";
337 regulator-min-microvolt = <1100000>;
338 regulator-max-microvolt = <1100000>;
343 regulator-name = "VARM_1.2V_C210";
344 regulator-min-microvolt = <65000>;
345 regulator-max-microvolt = <2225000>;
352 regulator-name = "VCC_SUB_2.0V";
353 regulator-min-microvolt = <2000000>;
354 regulator-max-microvolt = <2000000>;
359 regulator-name = "SAFEOUT1";
363 regulator-name = "SAFEOUT2";
368 regulator-name = "EN32KHZ_AP";
373 regulator-name = "EN32KHZ_CP";
378 regulator-name = "CHARGER";
379 regulator-min-microamp = <200000>;
380 regulator-max-microamp = <950000>;
384 regulator-name = "CHARGER_CV";
385 regulator-min-microvolt = <4200000>;
386 regulator-max-microvolt = <4200000>;
391 regulator-name = "CHARGER_TOPOFF";
392 regulator-min-microamp = <200000>;
393 regulator-max-microamp = <200000>;
401 #include <dt-bindings/interrupt-controller/irq.h>
404 #address-cells = <1>;
408 compatible = "maxim,max8997-pmic";
411 interrupt-parent = <&gpx0>;
412 interrupts = <4 IRQ_TYPE_LEVEL_LOW>,
413 <3 IRQ_TYPE_EDGE_FALLING>;
414 pinctrl-names = "default";
415 pinctrl-0 = <&max8997_irq>;
417 max8997,pmic-buck1-dvs-voltage = <1350000>;
418 max8997,pmic-buck2-dvs-voltage = <1100000>;
419 max8997,pmic-buck5-dvs-voltage = <1200000>;
423 regulator-name = "VDD_ABB_3.3V";
424 regulator-min-microvolt = <3300000>;
425 regulator-max-microvolt = <3300000>;
431 regulator-name = "VDD_ARM_1.2V";
432 regulator-min-microvolt = <950000>;
433 regulator-max-microvolt = <1350000>;
441 regulator-name = "EN32KHZ_AP";