# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/maxim,max8998.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Maxim MAX8998, National/TI LP3974 Power Management IC maintainers: - Krzysztof Kozlowski description: The Maxim MAX8998 is a Power Management IC which includes voltage/current regulators, real time clock, battery charging controller and several other sub-blocks. It is interfaced using an I2C interface. Each sub-block is addressed by the host system using different i2c slave address. properties: compatible: enum: - maxim,max8998 - national,lp3974 - ti,lp3974 reg: maxItems: 1 interrupts: minItems: 1 items: - description: Main interrupt - description: Power-on/-off interrupt max8998,pmic-buck1-dvs-gpios: maxItems: 2 description: Two host gpios used for buck1 DVS. max8998,pmic-buck2-dvs-gpio: maxItems: 1 description: Host gpio used for buck2 DVS. max8998,pmic-buck1-default-dvs-idx: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1, 2, 3] default: 0 description: Default voltage setting selected from the possible 4 options selectable by the DVS gpios. max8998,pmic-buck2-default-dvs-idx: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] default: 0 description: Default voltage setting selected from the possible 2 options selectable by the DVS GPIOs. max8998,pmic-buck-voltage-lock: type: boolean description: If present, disallows changing of preprogrammed buck DVS voltages. max8998,pmic-buck1-dvs-voltage: $ref: /schemas/types.yaml#/definitions/uint32-array maxItems: 4 description: Four voltage values in microvolts for buck1 regulator that can be selected using DVS GPIO. max8998,pmic-buck2-dvs-voltage: $ref: /schemas/types.yaml#/definitions/uint32-array maxItems: 2 description: Two voltage values in microvolts for buck2 regulator that can be selected using DVS GPIO. regulators: type: object additionalProperties: false properties: CHARGER: type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false description: CHARGER is main battery charger current control, wrongly represented as regulator. properties: regulator-min-microamp: minimum: 90000 maximum: 800000 regulator-max-microamp: minimum: 90000 maximum: 800000 regulator-min-microvolt: false regulator-max-microvolt: false required: - regulator-name patternProperties: "^(LDO([2-9]|1[0-7])|BUCK[1-4])$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false required: - regulator-name "^(EN32KHz-AP|EN32KHz-CP|ENVICHG|ESAFEOUT[12])$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false description: | EN32KHz-AP and EN32KHz-CP are 32768 Hz clocks, wrongly represented as regulators. ENVICHG is a Battery Charging Current Monitor Output. properties: regulator-min-microvolt: false regulator-max-microvolt: false required: - regulator-name dependencies: max8998,pmic-buck1-dvs-gpios: [ "max8998,pmic-buck1-dvs-voltage" ] max8998,pmic-buck2-dvs-gpio: [ "max8998,pmic-buck2-dvs-voltage" ] required: - compatible - reg - regulators additionalProperties: false examples: - | #include #include i2c { #address-cells = <1>; #size-cells = <0>; pmic@66 { compatible = "national,lp3974"; reg = <0x66>; interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>, <&gpx2 7 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&lp3974_irq>; max8998,pmic-buck1-default-dvs-idx = <0>; max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>, <&gpx0 6 GPIO_ACTIVE_HIGH>; max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>, <1100000>, <1000000>; max8998,pmic-buck2-default-dvs-idx = <0>; max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>; max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>; regulators { LDO2 { regulator-name = "VALIVE_1.2V"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-always-on; }; LDO3 { regulator-name = "VUSB+MIPI_1.1V"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-always-on; }; LDO4 { regulator-name = "VADC_3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; LDO5 { regulator-name = "VTF_2.8V"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; LDO6 { regulator-name = "LDO6"; regulator-min-microvolt = <2000000>; regulator-max-microvolt = <2000000>; }; LDO7 { regulator-name = "VLCD+VMIPI_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; LDO8 { regulator-name = "VUSB+VDAC_3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-always-on; }; LDO9 { regulator-name = "VCC_2.8V"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; regulator-always-on; }; LDO10 { regulator-name = "VPLL_1.1V"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-boot-on; regulator-always-on; }; LDO11 { regulator-name = "CAM_AF_3.3V"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; LDO12 { regulator-name = "PS_2.8V"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; LDO13 { regulator-name = "VHIC_1.2V"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; LDO14 { regulator-name = "CAM_I_HOST_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; }; LDO15 { regulator-name = "CAM_S_DIG+FM33_CORE_1.2V"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; }; LDO16 { regulator-name = "CAM_S_ANA_2.8V"; regulator-min-microvolt = <2800000>; regulator-max-microvolt = <2800000>; }; LDO17 { regulator-name = "VCC_3.0V_LCD"; regulator-min-microvolt = <3000000>; regulator-max-microvolt = <3000000>; }; BUCK1 { regulator-name = "VINT_1.1V"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1500000>; regulator-boot-on; regulator-always-on; }; BUCK2 { regulator-name = "VG3D_1.1V"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <1500000>; regulator-boot-on; }; BUCK3 { regulator-name = "VCC_1.8V"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-always-on; }; BUCK4 { regulator-name = "VMEM_1.2V"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-always-on; }; EN32KHz-AP { regulator-name = "32KHz AP"; regulator-always-on; }; EN32KHz-CP { regulator-name = "32KHz CP"; }; ENVICHG { regulator-name = "VICHG"; }; ESAFEOUT1 { regulator-name = "SAFEOUT1"; }; ESAFEOUT2 { regulator-name = "SAFEOUT2"; regulator-boot-on; }; }; }; };