| # 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 <krzk@kernel.org> |
| |
| 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 <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| 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; |
| }; |
| }; |
| }; |
| }; |