162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/x-powers,axp152.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: X-Powers AXP PMIC 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Chen-Yu Tsai <wens@csie.org> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciallOf: 1362306a36Sopenharmony_ci - if: 1462306a36Sopenharmony_ci properties: 1562306a36Sopenharmony_ci compatible: 1662306a36Sopenharmony_ci contains: 1762306a36Sopenharmony_ci enum: 1862306a36Sopenharmony_ci - x-powers,axp152 1962306a36Sopenharmony_ci - x-powers,axp202 2062306a36Sopenharmony_ci - x-powers,axp209 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci then: 2362306a36Sopenharmony_ci properties: 2462306a36Sopenharmony_ci regulators: 2562306a36Sopenharmony_ci properties: 2662306a36Sopenharmony_ci x-powers,dcdc-freq: 2762306a36Sopenharmony_ci minimum: 750 2862306a36Sopenharmony_ci maximum: 1875 2962306a36Sopenharmony_ci default: 1500 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci else: 3262306a36Sopenharmony_ci properties: 3362306a36Sopenharmony_ci regulators: 3462306a36Sopenharmony_ci properties: 3562306a36Sopenharmony_ci x-powers,dcdc-freq: 3662306a36Sopenharmony_ci minimum: 1800 3762306a36Sopenharmony_ci maximum: 4050 3862306a36Sopenharmony_ci default: 3000 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci - if: 4162306a36Sopenharmony_ci properties: 4262306a36Sopenharmony_ci compatible: 4362306a36Sopenharmony_ci contains: 4462306a36Sopenharmony_ci enum: 4562306a36Sopenharmony_ci - x-powers,axp152 4662306a36Sopenharmony_ci - x-powers,axp202 4762306a36Sopenharmony_ci - x-powers,axp209 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ci then: 5062306a36Sopenharmony_ci properties: 5162306a36Sopenharmony_ci x-powers,drive-vbus-en: false 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci - if: 5462306a36Sopenharmony_ci not: 5562306a36Sopenharmony_ci properties: 5662306a36Sopenharmony_ci compatible: 5762306a36Sopenharmony_ci contains: 5862306a36Sopenharmony_ci const: x-powers,axp806 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci then: 6162306a36Sopenharmony_ci properties: 6262306a36Sopenharmony_ci x-powers,self-working-mode: false 6362306a36Sopenharmony_ci x-powers,master-mode: false 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci - if: 6662306a36Sopenharmony_ci not: 6762306a36Sopenharmony_ci properties: 6862306a36Sopenharmony_ci compatible: 6962306a36Sopenharmony_ci contains: 7062306a36Sopenharmony_ci const: x-powers,axp305 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci then: 7362306a36Sopenharmony_ci required: 7462306a36Sopenharmony_ci - interrupts 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci - if: 7762306a36Sopenharmony_ci properties: 7862306a36Sopenharmony_ci compatible: 7962306a36Sopenharmony_ci contains: 8062306a36Sopenharmony_ci enum: 8162306a36Sopenharmony_ci - x-powers,axp313a 8262306a36Sopenharmony_ci - x-powers,axp15060 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci then: 8562306a36Sopenharmony_ci properties: 8662306a36Sopenharmony_ci x-powers,dcdc-freq: false 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ciproperties: 8962306a36Sopenharmony_ci compatible: 9062306a36Sopenharmony_ci oneOf: 9162306a36Sopenharmony_ci - enum: 9262306a36Sopenharmony_ci - x-powers,axp152 9362306a36Sopenharmony_ci - x-powers,axp192 9462306a36Sopenharmony_ci - x-powers,axp202 9562306a36Sopenharmony_ci - x-powers,axp209 9662306a36Sopenharmony_ci - x-powers,axp221 9762306a36Sopenharmony_ci - x-powers,axp223 9862306a36Sopenharmony_ci - x-powers,axp313a 9962306a36Sopenharmony_ci - x-powers,axp803 10062306a36Sopenharmony_ci - x-powers,axp806 10162306a36Sopenharmony_ci - x-powers,axp809 10262306a36Sopenharmony_ci - x-powers,axp813 10362306a36Sopenharmony_ci - x-powers,axp15060 10462306a36Sopenharmony_ci - items: 10562306a36Sopenharmony_ci - const: x-powers,axp228 10662306a36Sopenharmony_ci - const: x-powers,axp221 10762306a36Sopenharmony_ci - items: 10862306a36Sopenharmony_ci - const: x-powers,axp805 10962306a36Sopenharmony_ci - const: x-powers,axp806 11062306a36Sopenharmony_ci - items: 11162306a36Sopenharmony_ci - const: x-powers,axp305 11262306a36Sopenharmony_ci - const: x-powers,axp805 11362306a36Sopenharmony_ci - const: x-powers,axp806 11462306a36Sopenharmony_ci - items: 11562306a36Sopenharmony_ci - const: x-powers,axp818 11662306a36Sopenharmony_ci - const: x-powers,axp813 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci reg: 11962306a36Sopenharmony_ci maxItems: 1 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci interrupts: 12262306a36Sopenharmony_ci maxItems: 1 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci interrupt-controller: true 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_ci "#interrupt-cells": 12762306a36Sopenharmony_ci const: 1 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci x-powers,drive-vbus-en: 13062306a36Sopenharmony_ci type: boolean 13162306a36Sopenharmony_ci description: > 13262306a36Sopenharmony_ci Set this when the N_VBUSEN pin is used as an output pin to control an 13362306a36Sopenharmony_ci external regulator to drive the OTG VBus, rather then as an input pin 13462306a36Sopenharmony_ci which signals whether the board is driving OTG VBus or not. 13562306a36Sopenharmony_ci 13662306a36Sopenharmony_ci x-powers,self-working-mode: 13762306a36Sopenharmony_ci type: boolean 13862306a36Sopenharmony_ci description: > 13962306a36Sopenharmony_ci Set this when the PMIC is wired for self-working mode through the MODESET 14062306a36Sopenharmony_ci pin. 14162306a36Sopenharmony_ci 14262306a36Sopenharmony_ci x-powers,master-mode: 14362306a36Sopenharmony_ci type: boolean 14462306a36Sopenharmony_ci description: > 14562306a36Sopenharmony_ci Set this when the PMIC is wired for master mode through the MODESET pin. 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ci vin1-supply: 14862306a36Sopenharmony_ci description: > 14962306a36Sopenharmony_ci DCDC1 power supply node, if present. 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci vin2-supply: 15262306a36Sopenharmony_ci description: > 15362306a36Sopenharmony_ci DCDC2 power supply node, if present. 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ci vin3-supply: 15662306a36Sopenharmony_ci description: > 15762306a36Sopenharmony_ci DCDC3 power supply node, if present. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci vin4-supply: 16062306a36Sopenharmony_ci description: > 16162306a36Sopenharmony_ci DCDC4 power supply node, if present. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci vin5-supply: 16462306a36Sopenharmony_ci description: > 16562306a36Sopenharmony_ci DCDC5 power supply node, if present. 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci vin6-supply: 16862306a36Sopenharmony_ci description: > 16962306a36Sopenharmony_ci DCDC6 power supply node, if present. 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci vin7-supply: 17262306a36Sopenharmony_ci description: > 17362306a36Sopenharmony_ci DCDC7 power supply node, if present. 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci vina-supply: 17662306a36Sopenharmony_ci description: > 17762306a36Sopenharmony_ci DCDCA power supply node, if present. 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci vinb-supply: 18062306a36Sopenharmony_ci description: > 18162306a36Sopenharmony_ci DCDCB power supply node, if present. 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ci vinc-supply: 18462306a36Sopenharmony_ci description: > 18562306a36Sopenharmony_ci DCDCC power supply node, if present. 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci vind-supply: 18862306a36Sopenharmony_ci description: > 18962306a36Sopenharmony_ci DCDCD power supply node, if present. 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ci vine-supply: 19262306a36Sopenharmony_ci description: > 19362306a36Sopenharmony_ci DCDCE power supply node, if present. 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci acin-supply: 19662306a36Sopenharmony_ci description: > 19762306a36Sopenharmony_ci LDO1 power supply node, if present. 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ci ldo24in-supply: 20062306a36Sopenharmony_ci description: > 20162306a36Sopenharmony_ci LDO2 and LDO4 power supply node, if present. 20262306a36Sopenharmony_ci 20362306a36Sopenharmony_ci ldo3in-supply: 20462306a36Sopenharmony_ci description: > 20562306a36Sopenharmony_ci LDO3 power supply node, if present. 20662306a36Sopenharmony_ci 20762306a36Sopenharmony_ci ldo5in-supply: 20862306a36Sopenharmony_ci description: > 20962306a36Sopenharmony_ci LDO5 power supply node, if present. 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ci aldoin-supply: 21262306a36Sopenharmony_ci description: > 21362306a36Sopenharmony_ci ALDO* power supply node, if present. 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci bldoin-supply: 21662306a36Sopenharmony_ci description: > 21762306a36Sopenharmony_ci BLDO* power supply node, if present. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci cldoin-supply: 22062306a36Sopenharmony_ci description: > 22162306a36Sopenharmony_ci CLDO* power supply node, if present. 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci dldoin-supply: 22462306a36Sopenharmony_ci description: > 22562306a36Sopenharmony_ci DLDO* power supply node, if present. 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci eldoin-supply: 22862306a36Sopenharmony_ci description: > 22962306a36Sopenharmony_ci ELDO* power supply node, if present. 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ci fldoin-supply: 23262306a36Sopenharmony_ci description: > 23362306a36Sopenharmony_ci FLDO* power supply node, if present. 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci ips-supply: 23662306a36Sopenharmony_ci description: > 23762306a36Sopenharmony_ci LDO_IO0, LDO_IO1 and RTC_LDO power supply node, if present. 23862306a36Sopenharmony_ci 23962306a36Sopenharmony_ci drivevbus-supply: 24062306a36Sopenharmony_ci description: > 24162306a36Sopenharmony_ci DRIVEVBUS power supply node, if present. 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci swin-supply: 24462306a36Sopenharmony_ci description: > 24562306a36Sopenharmony_ci SW power supply node, if present. 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ci adc: 24862306a36Sopenharmony_ci $ref: /schemas/iio/adc/x-powers,axp209-adc.yaml# 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci gpio: 25162306a36Sopenharmony_ci $ref: /schemas/gpio/x-powers,axp209-gpio.yaml# 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci ac-power: 25462306a36Sopenharmony_ci $ref: /schemas/power/supply/x-powers,axp20x-ac-power-supply.yaml# 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci battery-power: 25762306a36Sopenharmony_ci $ref: /schemas/power/supply/x-powers,axp20x-battery-power-supply.yaml# 25862306a36Sopenharmony_ci 25962306a36Sopenharmony_ci usb-power: 26062306a36Sopenharmony_ci $ref: /schemas/power/supply/x-powers,axp20x-usb-power-supply.yaml# 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci regulators: 26362306a36Sopenharmony_ci type: object 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ci properties: 26662306a36Sopenharmony_ci x-powers,dcdc-freq: 26762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 26862306a36Sopenharmony_ci description: > 26962306a36Sopenharmony_ci Defines the work frequency of DC-DC in kHz. 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ci patternProperties: 27262306a36Sopenharmony_ci "^(([a-f])?ldo[0-9]|dcdc[0-7a-e]|ldo(_|-)io(0|1)|(dc1)?sw|rtc(_|-)ldo|cpusldo|drivevbus|dc5ldo)$": 27362306a36Sopenharmony_ci $ref: /schemas/regulator/regulator.yaml# 27462306a36Sopenharmony_ci type: object 27562306a36Sopenharmony_ci unevaluatedProperties: false 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci properties: 27862306a36Sopenharmony_ci regulator-ramp-delay: 27962306a36Sopenharmony_ci description: > 28062306a36Sopenharmony_ci Only 800 and 1600 are valid for the DCDC2 and LDO3 regulators on 28162306a36Sopenharmony_ci the AXP209. 28262306a36Sopenharmony_ci 28362306a36Sopenharmony_ci regulator-soft-start: 28462306a36Sopenharmony_ci description: > 28562306a36Sopenharmony_ci Only valid for the LDO3 regulator. 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci x-powers,dcdc-workmode: 28862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 28962306a36Sopenharmony_ci enum: [0, 1] 29062306a36Sopenharmony_ci description: > 29162306a36Sopenharmony_ci Only valid for DCDC regulators. Setup 1 for PWM mode, 0 29262306a36Sopenharmony_ci for AUTO (PWM/PFM) mode. The DCDC regulators work in a 29362306a36Sopenharmony_ci mixed PWM/PFM mode, using PFM under light loads and 29462306a36Sopenharmony_ci switching to PWM for heavier loads. Forcing PWM mode 29562306a36Sopenharmony_ci trades efficiency under light loads for lower output 29662306a36Sopenharmony_ci noise. This probably makes sense for HiFi audio related 29762306a36Sopenharmony_ci applications that aren't battery constrained. 29862306a36Sopenharmony_ci 29962306a36Sopenharmony_ci additionalProperties: false 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_cirequired: 30262306a36Sopenharmony_ci - compatible 30362306a36Sopenharmony_ci - reg 30462306a36Sopenharmony_ci - "#interrupt-cells" 30562306a36Sopenharmony_ci - interrupt-controller 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ciadditionalProperties: false 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_ciexamples: 31062306a36Sopenharmony_ci - | 31162306a36Sopenharmony_ci i2c { 31262306a36Sopenharmony_ci #address-cells = <1>; 31362306a36Sopenharmony_ci #size-cells = <0>; 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ci pmic@30 { 31662306a36Sopenharmony_ci compatible = "x-powers,axp152"; 31762306a36Sopenharmony_ci reg = <0x30>; 31862306a36Sopenharmony_ci interrupts = <0>; 31962306a36Sopenharmony_ci interrupt-controller; 32062306a36Sopenharmony_ci #interrupt-cells = <1>; 32162306a36Sopenharmony_ci }; 32262306a36Sopenharmony_ci }; 32362306a36Sopenharmony_ci 32462306a36Sopenharmony_ci - | 32562306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 32662306a36Sopenharmony_ci 32762306a36Sopenharmony_ci i2c { 32862306a36Sopenharmony_ci #address-cells = <1>; 32962306a36Sopenharmony_ci #size-cells = <0>; 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ci pmic@34 { 33262306a36Sopenharmony_ci compatible = "x-powers,axp209"; 33362306a36Sopenharmony_ci reg = <0x34>; 33462306a36Sopenharmony_ci interrupt-parent = <&nmi_intc>; 33562306a36Sopenharmony_ci interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 33662306a36Sopenharmony_ci interrupt-controller; 33762306a36Sopenharmony_ci #interrupt-cells = <1>; 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci ac_power_supply: ac-power { 34062306a36Sopenharmony_ci compatible = "x-powers,axp202-ac-power-supply"; 34162306a36Sopenharmony_ci }; 34262306a36Sopenharmony_ci 34362306a36Sopenharmony_ci axp_adc: adc { 34462306a36Sopenharmony_ci compatible = "x-powers,axp209-adc"; 34562306a36Sopenharmony_ci #io-channel-cells = <1>; 34662306a36Sopenharmony_ci }; 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci axp_gpio: gpio { 34962306a36Sopenharmony_ci compatible = "x-powers,axp209-gpio"; 35062306a36Sopenharmony_ci gpio-controller; 35162306a36Sopenharmony_ci #gpio-cells = <2>; 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci gpio0-adc-pin { 35462306a36Sopenharmony_ci pins = "GPIO0"; 35562306a36Sopenharmony_ci function = "adc"; 35662306a36Sopenharmony_ci }; 35762306a36Sopenharmony_ci }; 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci battery_power_supply: battery-power { 36062306a36Sopenharmony_ci compatible = "x-powers,axp209-battery-power-supply"; 36162306a36Sopenharmony_ci }; 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci regulators { 36462306a36Sopenharmony_ci /* Default work frequency for buck regulators */ 36562306a36Sopenharmony_ci x-powers,dcdc-freq = <1500>; 36662306a36Sopenharmony_ci 36762306a36Sopenharmony_ci reg_dcdc2: dcdc2 { 36862306a36Sopenharmony_ci regulator-always-on; 36962306a36Sopenharmony_ci regulator-min-microvolt = <1000000>; 37062306a36Sopenharmony_ci regulator-max-microvolt = <1450000>; 37162306a36Sopenharmony_ci regulator-name = "vdd-cpu"; 37262306a36Sopenharmony_ci }; 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ci reg_dcdc3: dcdc3 { 37562306a36Sopenharmony_ci regulator-always-on; 37662306a36Sopenharmony_ci regulator-min-microvolt = <1000000>; 37762306a36Sopenharmony_ci regulator-max-microvolt = <1400000>; 37862306a36Sopenharmony_ci regulator-name = "vdd-int-dll"; 37962306a36Sopenharmony_ci }; 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ci reg_ldo1: ldo1 { 38262306a36Sopenharmony_ci /* LDO1 is a fixed output regulator */ 38362306a36Sopenharmony_ci regulator-always-on; 38462306a36Sopenharmony_ci regulator-min-microvolt = <1300000>; 38562306a36Sopenharmony_ci regulator-max-microvolt = <1300000>; 38662306a36Sopenharmony_ci regulator-name = "vdd-rtc"; 38762306a36Sopenharmony_ci }; 38862306a36Sopenharmony_ci 38962306a36Sopenharmony_ci reg_ldo2: ldo2 { 39062306a36Sopenharmony_ci regulator-always-on; 39162306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 39262306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 39362306a36Sopenharmony_ci regulator-name = "avcc"; 39462306a36Sopenharmony_ci }; 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ci reg_ldo3: ldo3 { 39762306a36Sopenharmony_ci regulator-name = "ldo3"; 39862306a36Sopenharmony_ci }; 39962306a36Sopenharmony_ci 40062306a36Sopenharmony_ci reg_ldo4: ldo4 { 40162306a36Sopenharmony_ci regulator-name = "ldo4"; 40262306a36Sopenharmony_ci }; 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ci reg_ldo5: ldo5 { 40562306a36Sopenharmony_ci regulator-name = "ldo5"; 40662306a36Sopenharmony_ci }; 40762306a36Sopenharmony_ci }; 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ci usb_power_supply: usb-power { 41062306a36Sopenharmony_ci compatible = "x-powers,axp202-usb-power-supply"; 41162306a36Sopenharmony_ci }; 41262306a36Sopenharmony_ci }; 41362306a36Sopenharmony_ci }; 414