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