325 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause2%YAML 1.23---4$id: http://devicetree.org/schemas/mfd/maxim,max8998.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Maxim MAX8998, National/TI LP3974 Power Management IC8 9maintainers:10 - Krzysztof Kozlowski <krzk@kernel.org>11 12description:13 The Maxim MAX8998 is a Power Management IC which includes voltage/current14 regulators, real time clock, battery charging controller and several other15 sub-blocks. It is interfaced using an I2C interface. Each sub-block is16 addressed by the host system using different i2c slave address.17 18properties:19 compatible:20 enum:21 - maxim,max899822 - national,lp397423 - ti,lp397424 25 reg:26 maxItems: 127 28 interrupts:29 minItems: 130 items:31 - description: Main interrupt32 - description: Power-on/-off interrupt33 34 max8998,pmic-buck1-dvs-gpios:35 maxItems: 236 description:37 Two host gpios used for buck1 DVS.38 39 max8998,pmic-buck2-dvs-gpio:40 maxItems: 141 description:42 Host gpio used for buck2 DVS.43 44 max8998,pmic-buck1-default-dvs-idx:45 $ref: /schemas/types.yaml#/definitions/uint3246 enum: [0, 1, 2, 3]47 default: 048 description:49 Default voltage setting selected from the possible 4 options selectable50 by the DVS gpios.51 52 max8998,pmic-buck2-default-dvs-idx:53 $ref: /schemas/types.yaml#/definitions/uint3254 enum: [0, 1]55 default: 056 description:57 Default voltage setting selected from the possible 2 options selectable58 by the DVS GPIOs.59 60 max8998,pmic-buck-voltage-lock:61 type: boolean62 description:63 If present, disallows changing of preprogrammed buck DVS voltages.64 65 max8998,pmic-buck1-dvs-voltage:66 $ref: /schemas/types.yaml#/definitions/uint32-array67 maxItems: 468 description:69 Four voltage values in microvolts for buck1 regulator that can be70 selected using DVS GPIO.71 72 max8998,pmic-buck2-dvs-voltage:73 $ref: /schemas/types.yaml#/definitions/uint32-array74 maxItems: 275 description:76 Two voltage values in microvolts for buck2 regulator that can be77 selected using DVS GPIO.78 79 regulators:80 type: object81 additionalProperties: false82 83 properties:84 CHARGER:85 type: object86 $ref: /schemas/regulator/regulator.yaml#87 unevaluatedProperties: false88 description:89 CHARGER is main battery charger current control, wrongly represented90 as regulator.91 92 properties:93 regulator-min-microamp:94 minimum: 9000095 maximum: 80000096 97 regulator-max-microamp:98 minimum: 9000099 maximum: 800000100 101 regulator-min-microvolt: false102 regulator-max-microvolt: false103 104 required:105 - regulator-name106 107 patternProperties:108 "^(LDO([2-9]|1[0-7])|BUCK[1-4])$":109 type: object110 $ref: /schemas/regulator/regulator.yaml#111 unevaluatedProperties: false112 113 required:114 - regulator-name115 116 "^(EN32KHz-AP|EN32KHz-CP|ENVICHG|ESAFEOUT[12])$":117 type: object118 $ref: /schemas/regulator/regulator.yaml#119 unevaluatedProperties: false120 description: |121 EN32KHz-AP and EN32KHz-CP are 32768 Hz clocks, wrongly represented as122 regulators.123 ENVICHG is a Battery Charging Current Monitor Output.124 125 properties:126 regulator-min-microvolt: false127 regulator-max-microvolt: false128 129 required:130 - regulator-name131 132dependencies:133 max8998,pmic-buck1-dvs-gpios: [ "max8998,pmic-buck1-dvs-voltage" ]134 max8998,pmic-buck2-dvs-gpio: [ "max8998,pmic-buck2-dvs-voltage" ]135 136required:137 - compatible138 - reg139 - regulators140 141additionalProperties: false142 143examples:144 - |145 #include <dt-bindings/gpio/gpio.h>146 #include <dt-bindings/interrupt-controller/irq.h>147 148 i2c {149 #address-cells = <1>;150 #size-cells = <0>;151 152 pmic@66 {153 compatible = "national,lp3974";154 reg = <0x66>;155 interrupts-extended = <&gpx0 7 IRQ_TYPE_LEVEL_LOW>,156 <&gpx2 7 IRQ_TYPE_LEVEL_LOW>;157 pinctrl-names = "default";158 pinctrl-0 = <&lp3974_irq>;159 160 max8998,pmic-buck1-default-dvs-idx = <0>;161 max8998,pmic-buck1-dvs-gpios = <&gpx0 5 GPIO_ACTIVE_HIGH>,162 <&gpx0 6 GPIO_ACTIVE_HIGH>;163 max8998,pmic-buck1-dvs-voltage = <1100000>, <1000000>,164 <1100000>, <1000000>;165 max8998,pmic-buck2-default-dvs-idx = <0>;166 max8998,pmic-buck2-dvs-gpio = <&gpe2 0 GPIO_ACTIVE_HIGH>;167 max8998,pmic-buck2-dvs-voltage = <1200000>, <1100000>;168 169 regulators {170 LDO2 {171 regulator-name = "VALIVE_1.2V";172 regulator-min-microvolt = <1200000>;173 regulator-max-microvolt = <1200000>;174 regulator-always-on;175 };176 177 LDO3 {178 regulator-name = "VUSB+MIPI_1.1V";179 regulator-min-microvolt = <1100000>;180 regulator-max-microvolt = <1100000>;181 regulator-always-on;182 };183 184 LDO4 {185 regulator-name = "VADC_3.3V";186 regulator-min-microvolt = <3300000>;187 regulator-max-microvolt = <3300000>;188 };189 190 LDO5 {191 regulator-name = "VTF_2.8V";192 regulator-min-microvolt = <2800000>;193 regulator-max-microvolt = <2800000>;194 };195 196 LDO6 {197 regulator-name = "LDO6";198 regulator-min-microvolt = <2000000>;199 regulator-max-microvolt = <2000000>;200 };201 202 LDO7 {203 regulator-name = "VLCD+VMIPI_1.8V";204 regulator-min-microvolt = <1800000>;205 regulator-max-microvolt = <1800000>;206 };207 208 LDO8 {209 regulator-name = "VUSB+VDAC_3.3V";210 regulator-min-microvolt = <3300000>;211 regulator-max-microvolt = <3300000>;212 regulator-always-on;213 };214 215 LDO9 {216 regulator-name = "VCC_2.8V";217 regulator-min-microvolt = <2800000>;218 regulator-max-microvolt = <2800000>;219 regulator-always-on;220 };221 222 LDO10 {223 regulator-name = "VPLL_1.1V";224 regulator-min-microvolt = <1100000>;225 regulator-max-microvolt = <1100000>;226 regulator-boot-on;227 regulator-always-on;228 };229 230 LDO11 {231 regulator-name = "CAM_AF_3.3V";232 regulator-min-microvolt = <3300000>;233 regulator-max-microvolt = <3300000>;234 };235 236 LDO12 {237 regulator-name = "PS_2.8V";238 regulator-min-microvolt = <2800000>;239 regulator-max-microvolt = <2800000>;240 };241 242 LDO13 {243 regulator-name = "VHIC_1.2V";244 regulator-min-microvolt = <1200000>;245 regulator-max-microvolt = <1200000>;246 };247 248 LDO14 {249 regulator-name = "CAM_I_HOST_1.8V";250 regulator-min-microvolt = <1800000>;251 regulator-max-microvolt = <1800000>;252 };253 254 LDO15 {255 regulator-name = "CAM_S_DIG+FM33_CORE_1.2V";256 regulator-min-microvolt = <1200000>;257 regulator-max-microvolt = <1200000>;258 };259 260 LDO16 {261 regulator-name = "CAM_S_ANA_2.8V";262 regulator-min-microvolt = <2800000>;263 regulator-max-microvolt = <2800000>;264 };265 266 LDO17 {267 regulator-name = "VCC_3.0V_LCD";268 regulator-min-microvolt = <3000000>;269 regulator-max-microvolt = <3000000>;270 };271 272 BUCK1 {273 regulator-name = "VINT_1.1V";274 regulator-min-microvolt = <750000>;275 regulator-max-microvolt = <1500000>;276 regulator-boot-on;277 regulator-always-on;278 };279 280 BUCK2 {281 regulator-name = "VG3D_1.1V";282 regulator-min-microvolt = <750000>;283 regulator-max-microvolt = <1500000>;284 regulator-boot-on;285 };286 287 BUCK3 {288 regulator-name = "VCC_1.8V";289 regulator-min-microvolt = <1800000>;290 regulator-max-microvolt = <1800000>;291 regulator-always-on;292 };293 294 BUCK4 {295 regulator-name = "VMEM_1.2V";296 regulator-min-microvolt = <1200000>;297 regulator-max-microvolt = <1200000>;298 regulator-always-on;299 };300 301 EN32KHz-AP {302 regulator-name = "32KHz AP";303 regulator-always-on;304 };305 306 EN32KHz-CP {307 regulator-name = "32KHz CP";308 };309 310 ENVICHG {311 regulator-name = "VICHG";312 };313 314 ESAFEOUT1 {315 regulator-name = "SAFEOUT1";316 };317 318 ESAFEOUT2 {319 regulator-name = "SAFEOUT2";320 regulator-boot-on;321 };322 };323 };324 };325