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.
115 List of child nodes that specify the regulators.
119 "^LDO([1-9]|1[0-8]|21)$":
121 $ref: regulator.yaml#
123 Properties for single LDO regulator.
131 unevaluatedProperties: false
136 $ref: regulator.yaml#
138 Properties for single BUCK regulator.
146 unevaluatedProperties: false
150 $ref: regulator.yaml#
152 32768 Hz clock output (modelled as regulator)
156 regulator-always-on: true
157 regulator-boot-on: true
162 additionalProperties: false
167 $ref: regulator.yaml#
168 description: main battery charger current control
176 unevaluatedProperties: false
180 $ref: regulator.yaml#
181 description: main battery charger voltage control
189 unevaluatedProperties: false
193 $ref: regulator.yaml#
194 description: end of charge current threshold level
202 unevaluatedProperties: false
206 $ref: regulator.yaml#
208 Battery Charging Current Monitor Output. This is a fixed voltage type
216 unevaluatedProperties: false
220 $ref: regulator.yaml#
229 unevaluatedProperties: false
233 $ref: regulator.yaml#
242 unevaluatedProperties: false
246 - max8997,pmic-buck1-dvs-voltage
247 - max8997,pmic-buck2-dvs-voltage
248 - max8997,pmic-buck5-dvs-voltage
253 max8997,pmic-buck1-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
254 max8997,pmic-buck2-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
255 max8997,pmic-buck5-uses-gpio-dvs: [ 'max8997,pmic-buck125-dvs-gpios' ]
257 additionalProperties: false
262 - max8997,pmic-buck1-uses-gpio-dvs
264 - max8997,pmic-buck2-uses-gpio-dvs
266 - max8997,pmic-buck5-uses-gpio-dvs
269 max8997,pmic-buck1-dvs-voltage:
272 max8997,pmic-buck2-dvs-voltage:
275 max8997,pmic-buck5-dvs-voltage:
281 #include <dt-bindings/gpio/gpio.h>
282 #include <dt-bindings/interrupt-controller/irq.h>
285 #address-cells = <1>;
289 compatible = "maxim,max8997-pmic";
292 interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,
293 <&gpx2 3 IRQ_TYPE_EDGE_FALLING>;
295 max8997,pmic-buck1-uses-gpio-dvs;
296 max8997,pmic-buck2-uses-gpio-dvs;
297 max8997,pmic-buck5-uses-gpio-dvs;
299 max8997,pmic-ignore-gpiodvs-side-effect;
300 max8997,pmic-buck125-default-dvs-idx = <0>;
302 max8997,pmic-buck125-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,
303 <&gpx0 6 GPIO_ACTIVE_HIGH>,
304 <&gpl0 0 GPIO_ACTIVE_HIGH>;
306 max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>,
307 <1250000>, <1200000>,
308 <1150000>, <1100000>,
311 max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>,
313 <1100000>, <1000000>,
316 max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>,
317 <1200000>, <1200000>,
318 <1200000>, <1200000>,
319 <1200000>, <1200000>;
321 pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>;
322 pinctrl-names = "default";
324 charger-supply = <&charger_reg>;
328 regulator-name = "VADC_3.3V_C210";
329 regulator-min-microvolt = <3300000>;
330 regulator-max-microvolt = <3300000>;
335 regulator-name = "VALIVE_1.1V_C210";
336 regulator-min-microvolt = <1100000>;
337 regulator-max-microvolt = <1100000>;
342 regulator-name = "VARM_1.2V_C210";
343 regulator-min-microvolt = <65000>;
344 regulator-max-microvolt = <2225000>;
351 regulator-name = "VCC_SUB_2.0V";
352 regulator-min-microvolt = <2000000>;
353 regulator-max-microvolt = <2000000>;
358 regulator-name = "SAFEOUT1";
362 regulator-name = "SAFEOUT2";
367 regulator-name = "EN32KHZ_AP";
372 regulator-name = "EN32KHZ_CP";
377 regulator-name = "CHARGER";
378 regulator-min-microamp = <200000>;
379 regulator-max-microamp = <950000>;
383 regulator-name = "CHARGER_CV";
384 regulator-min-microvolt = <4200000>;
385 regulator-max-microvolt = <4200000>;
390 regulator-name = "CHARGER_TOPOFF";
391 regulator-min-microamp = <200000>;
392 regulator-max-microamp = <200000>;
400 #include <dt-bindings/interrupt-controller/irq.h>
403 #address-cells = <1>;
407 compatible = "maxim,max8997-pmic";
410 interrupt-parent = <&gpx0>;
411 interrupts = <4 IRQ_TYPE_LEVEL_LOW>,
412 <3 IRQ_TYPE_EDGE_FALLING>;
413 pinctrl-names = "default";
414 pinctrl-0 = <&max8997_irq>;
416 max8997,pmic-buck1-dvs-voltage = <1350000>;
417 max8997,pmic-buck2-dvs-voltage = <1100000>;
418 max8997,pmic-buck5-dvs-voltage = <1200000>;
422 regulator-name = "VDD_ABB_3.3V";
423 regulator-min-microvolt = <3300000>;
424 regulator-max-microvolt = <3300000>;
430 regulator-name = "VDD_ARM_1.2V";
431 regulator-min-microvolt = <950000>;
432 regulator-max-microvolt = <1350000>;
440 regulator-name = "EN32KHZ_AP";