1*4882a593SmuzhiyunAXP family PMIC device tree bindings 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunThe axp20x family current members : 4*4882a593Smuzhiyunaxp152 (X-Powers) 5*4882a593Smuzhiyunaxp202 (X-Powers) 6*4882a593Smuzhiyunaxp209 (X-Powers) 7*4882a593Smuzhiyunaxp221 (X-Powers) 8*4882a593Smuzhiyunaxp223 (X-Powers) 9*4882a593Smuzhiyunaxp803 (X-Powers) 10*4882a593Smuzhiyunaxp806 (X-Powers) 11*4882a593Smuzhiyunaxp809 (X-Powers) 12*4882a593Smuzhiyunaxp813 (X-Powers) 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunThe AXP813 is 2 chips packaged into 1. The 2 chips do not share anything 15*4882a593Smuzhiyunother than the packaging. Pins are routed separately. As such they should 16*4882a593Smuzhiyunbe treated as separate entities. The other half is an AC100 RTC/codec 17*4882a593Smuzhiyuncombo chip. Please see ./ac100.txt for its bindings. 18*4882a593Smuzhiyun 19*4882a593SmuzhiyunRequired properties: 20*4882a593Smuzhiyun- compatible: should be one of: 21*4882a593Smuzhiyun * "x-powers,axp152" 22*4882a593Smuzhiyun * "x-powers,axp202" 23*4882a593Smuzhiyun * "x-powers,axp209" 24*4882a593Smuzhiyun * "x-powers,axp221" 25*4882a593Smuzhiyun * "x-powers,axp223" 26*4882a593Smuzhiyun * "x-powers,axp803" 27*4882a593Smuzhiyun * "x-powers,axp806" 28*4882a593Smuzhiyun * "x-powers,axp805", "x-powers,axp806" 29*4882a593Smuzhiyun * "x-powers,axp809" 30*4882a593Smuzhiyun * "x-powers,axp813" 31*4882a593Smuzhiyun- reg: The I2C slave address or RSB hardware address for the AXP chip 32*4882a593Smuzhiyun- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin 33*4882a593Smuzhiyun- interrupt-controller: The PMIC has its own internal IRQs 34*4882a593Smuzhiyun- #interrupt-cells: Should be set to 1 35*4882a593Smuzhiyun 36*4882a593SmuzhiyunSupported common regulator properties, see ../regulator/regulator.txt for 37*4882a593Smuzhiyunmore information: 38*4882a593Smuzhiyun- regulator-ramp-delay: sets the ramp up delay in uV/us 39*4882a593Smuzhiyun AXP20x/DCDC2: 1600, 800 40*4882a593Smuzhiyun AXP20x/LDO3: 1600, 800 41*4882a593Smuzhiyun- regulator-soft-start: enable the output at the lowest possible voltage and 42*4882a593Smuzhiyun only then set the desired voltage 43*4882a593Smuzhiyun AXP20x/LDO3: software-based implementation 44*4882a593Smuzhiyun 45*4882a593SmuzhiyunOptional properties: 46*4882a593Smuzhiyun- x-powers,dcdc-freq: defines the work frequency of DC-DC in KHz 47*4882a593Smuzhiyun AXP152/20X: range: 750-1875, Default: 1.5 MHz 48*4882a593Smuzhiyun AXP22X/8XX: range: 1800-4050, Default: 3 MHz 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun- x-powers,drive-vbus-en: boolean, set this when the N_VBUSEN pin is 51*4882a593Smuzhiyun used as an output pin to control an external 52*4882a593Smuzhiyun regulator to drive the OTG VBus, rather then 53*4882a593Smuzhiyun as an input pin which signals whether the 54*4882a593Smuzhiyun board is driving OTG VBus or not. 55*4882a593Smuzhiyun (axp221 / axp223 / axp803/ axp813 only) 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun- x-powers,self-working-mode and 58*4882a593Smuzhiyun x-powers,master-mode: Boolean (axp806 only). Set either of these when the 59*4882a593Smuzhiyun PMIC is wired for self-working mode or master mode. 60*4882a593Smuzhiyun If neither is set then slave mode is assumed. 61*4882a593Smuzhiyun This corresponds to how the MODESET pin is wired. 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun- <input>-supply: a phandle to the regulator supply node. May be omitted if 64*4882a593Smuzhiyun inputs are unregulated, such as using the IPSOUT output 65*4882a593Smuzhiyun from the PMIC. 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun- regulators: A node that houses a sub-node for each regulator. Regulators 68*4882a593Smuzhiyun not used but preferred to be managed by the OS should be 69*4882a593Smuzhiyun listed as well. 70*4882a593Smuzhiyun See Documentation/devicetree/bindings/regulator/regulator.txt 71*4882a593Smuzhiyun for more information on standard regulator bindings. 72*4882a593Smuzhiyun 73*4882a593SmuzhiyunOptional properties for DCDC regulators: 74*4882a593Smuzhiyun- x-powers,dcdc-workmode: 1 for PWM mode, 0 for AUTO (PWM/PFM) mode 75*4882a593Smuzhiyun Default: Current hardware setting 76*4882a593Smuzhiyun The DCDC regulators work in a mixed PWM/PFM mode, 77*4882a593Smuzhiyun using PFM under light loads and switching to PWM 78*4882a593Smuzhiyun for heavier loads. Forcing PWM mode trades efficiency 79*4882a593Smuzhiyun under light loads for lower output noise. This 80*4882a593Smuzhiyun probably makes sense for HiFi audio related 81*4882a593Smuzhiyun applications that aren't battery constrained. 82*4882a593Smuzhiyun 83*4882a593SmuzhiyunAXP202/AXP209 regulators, type, and corresponding input supply names: 84*4882a593Smuzhiyun 85*4882a593SmuzhiyunRegulator Type Supply Name Notes 86*4882a593Smuzhiyun--------- ---- ----------- ----- 87*4882a593SmuzhiyunDCDC2 : DC-DC buck : vin2-supply 88*4882a593SmuzhiyunDCDC3 : DC-DC buck : vin3-supply 89*4882a593SmuzhiyunLDO1 : LDO : acin-supply : always on 90*4882a593SmuzhiyunLDO2 : LDO : ldo24in-supply : shared supply 91*4882a593SmuzhiyunLDO3 : LDO : ldo3in-supply 92*4882a593SmuzhiyunLDO4 : LDO : ldo24in-supply : shared supply 93*4882a593SmuzhiyunLDO5 : LDO : ldo5in-supply 94*4882a593Smuzhiyun 95*4882a593SmuzhiyunAXP221/AXP223 regulators, type, and corresponding input supply names: 96*4882a593Smuzhiyun 97*4882a593SmuzhiyunRegulator Type Supply Name Notes 98*4882a593Smuzhiyun--------- ---- ----------- ----- 99*4882a593SmuzhiyunDCDC1 : DC-DC buck : vin1-supply 100*4882a593SmuzhiyunDCDC2 : DC-DC buck : vin2-supply 101*4882a593SmuzhiyunDCDC3 : DC-DC buck : vin3-supply 102*4882a593SmuzhiyunDCDC4 : DC-DC buck : vin4-supply 103*4882a593SmuzhiyunDCDC5 : DC-DC buck : vin5-supply 104*4882a593SmuzhiyunDC1SW : On/Off Switch : : DCDC1 secondary output 105*4882a593SmuzhiyunDC5LDO : LDO : : input from DCDC5 106*4882a593SmuzhiyunALDO1 : LDO : aldoin-supply : shared supply 107*4882a593SmuzhiyunALDO2 : LDO : aldoin-supply : shared supply 108*4882a593SmuzhiyunALDO3 : LDO : aldoin-supply : shared supply 109*4882a593SmuzhiyunDLDO1 : LDO : dldoin-supply : shared supply 110*4882a593SmuzhiyunDLDO2 : LDO : dldoin-supply : shared supply 111*4882a593SmuzhiyunDLDO3 : LDO : dldoin-supply : shared supply 112*4882a593SmuzhiyunDLDO4 : LDO : dldoin-supply : shared supply 113*4882a593SmuzhiyunELDO1 : LDO : eldoin-supply : shared supply 114*4882a593SmuzhiyunELDO2 : LDO : eldoin-supply : shared supply 115*4882a593SmuzhiyunELDO3 : LDO : eldoin-supply : shared supply 116*4882a593SmuzhiyunLDO_IO0 : LDO : ips-supply : GPIO 0 117*4882a593SmuzhiyunLDO_IO1 : LDO : ips-supply : GPIO 1 118*4882a593SmuzhiyunRTC_LDO : LDO : ips-supply : always on 119*4882a593SmuzhiyunDRIVEVBUS : Enable output : drivevbus-supply : external regulator 120*4882a593Smuzhiyun 121*4882a593SmuzhiyunAXP803 regulators, type, and corresponding input supply names: 122*4882a593Smuzhiyun 123*4882a593SmuzhiyunRegulator Type Supply Name Notes 124*4882a593Smuzhiyun--------- ---- ----------- ----- 125*4882a593SmuzhiyunDCDC1 : DC-DC buck : vin1-supply 126*4882a593SmuzhiyunDCDC2 : DC-DC buck : vin2-supply : poly-phase capable 127*4882a593SmuzhiyunDCDC3 : DC-DC buck : vin3-supply : poly-phase capable 128*4882a593SmuzhiyunDCDC4 : DC-DC buck : vin4-supply 129*4882a593SmuzhiyunDCDC5 : DC-DC buck : vin5-supply : poly-phase capable 130*4882a593SmuzhiyunDCDC6 : DC-DC buck : vin6-supply : poly-phase capable 131*4882a593SmuzhiyunDC1SW : On/Off Switch : : DCDC1 secondary output 132*4882a593SmuzhiyunALDO1 : LDO : aldoin-supply : shared supply 133*4882a593SmuzhiyunALDO2 : LDO : aldoin-supply : shared supply 134*4882a593SmuzhiyunALDO3 : LDO : aldoin-supply : shared supply 135*4882a593SmuzhiyunDLDO1 : LDO : dldoin-supply : shared supply 136*4882a593SmuzhiyunDLDO2 : LDO : dldoin-supply : shared supply 137*4882a593SmuzhiyunDLDO3 : LDO : dldoin-supply : shared supply 138*4882a593SmuzhiyunDLDO4 : LDO : dldoin-supply : shared supply 139*4882a593SmuzhiyunELDO1 : LDO : eldoin-supply : shared supply 140*4882a593SmuzhiyunELDO2 : LDO : eldoin-supply : shared supply 141*4882a593SmuzhiyunELDO3 : LDO : eldoin-supply : shared supply 142*4882a593SmuzhiyunFLDO1 : LDO : fldoin-supply : shared supply 143*4882a593SmuzhiyunFLDO2 : LDO : fldoin-supply : shared supply 144*4882a593SmuzhiyunLDO_IO0 : LDO : ips-supply : GPIO 0 145*4882a593SmuzhiyunLDO_IO1 : LDO : ips-supply : GPIO 1 146*4882a593SmuzhiyunRTC_LDO : LDO : ips-supply : always on 147*4882a593SmuzhiyunDRIVEVBUS : Enable output : drivevbus-supply : external regulator 148*4882a593Smuzhiyun 149*4882a593SmuzhiyunAXP806 regulators, type, and corresponding input supply names: 150*4882a593Smuzhiyun 151*4882a593SmuzhiyunRegulator Type Supply Name Notes 152*4882a593Smuzhiyun--------- ---- ----------- ----- 153*4882a593SmuzhiyunDCDCA : DC-DC buck : vina-supply : poly-phase capable 154*4882a593SmuzhiyunDCDCB : DC-DC buck : vinb-supply : poly-phase capable 155*4882a593SmuzhiyunDCDCC : DC-DC buck : vinc-supply : poly-phase capable 156*4882a593SmuzhiyunDCDCD : DC-DC buck : vind-supply : poly-phase capable 157*4882a593SmuzhiyunDCDCE : DC-DC buck : vine-supply : poly-phase capable 158*4882a593SmuzhiyunALDO1 : LDO : aldoin-supply : shared supply 159*4882a593SmuzhiyunALDO2 : LDO : aldoin-supply : shared supply 160*4882a593SmuzhiyunALDO3 : LDO : aldoin-supply : shared supply 161*4882a593SmuzhiyunBLDO1 : LDO : bldoin-supply : shared supply 162*4882a593SmuzhiyunBLDO2 : LDO : bldoin-supply : shared supply 163*4882a593SmuzhiyunBLDO3 : LDO : bldoin-supply : shared supply 164*4882a593SmuzhiyunBLDO4 : LDO : bldoin-supply : shared supply 165*4882a593SmuzhiyunCLDO1 : LDO : cldoin-supply : shared supply 166*4882a593SmuzhiyunCLDO2 : LDO : cldoin-supply : shared supply 167*4882a593SmuzhiyunCLDO3 : LDO : cldoin-supply : shared supply 168*4882a593SmuzhiyunSW : On/Off Switch : swin-supply 169*4882a593Smuzhiyun 170*4882a593SmuzhiyunAdditionally, the AXP806 DC-DC regulators support poly-phase arrangements 171*4882a593Smuzhiyunfor higher output current. The possible groupings are: A+B, A+B+C, D+E. 172*4882a593Smuzhiyun 173*4882a593SmuzhiyunAXP809 regulators, type, and corresponding input supply names: 174*4882a593Smuzhiyun 175*4882a593SmuzhiyunRegulator Type Supply Name Notes 176*4882a593Smuzhiyun--------- ---- ----------- ----- 177*4882a593SmuzhiyunDCDC1 : DC-DC buck : vin1-supply 178*4882a593SmuzhiyunDCDC2 : DC-DC buck : vin2-supply 179*4882a593SmuzhiyunDCDC3 : DC-DC buck : vin3-supply 180*4882a593SmuzhiyunDCDC4 : DC-DC buck : vin4-supply 181*4882a593SmuzhiyunDCDC5 : DC-DC buck : vin5-supply 182*4882a593SmuzhiyunDC1SW : On/Off Switch : : DCDC1 secondary output 183*4882a593SmuzhiyunDC5LDO : LDO : : input from DCDC5 184*4882a593SmuzhiyunALDO1 : LDO : aldoin-supply : shared supply 185*4882a593SmuzhiyunALDO2 : LDO : aldoin-supply : shared supply 186*4882a593SmuzhiyunALDO3 : LDO : aldoin-supply : shared supply 187*4882a593SmuzhiyunDLDO1 : LDO : dldoin-supply : shared supply 188*4882a593SmuzhiyunDLDO2 : LDO : dldoin-supply : shared supply 189*4882a593SmuzhiyunELDO1 : LDO : eldoin-supply : shared supply 190*4882a593SmuzhiyunELDO2 : LDO : eldoin-supply : shared supply 191*4882a593SmuzhiyunELDO3 : LDO : eldoin-supply : shared supply 192*4882a593SmuzhiyunLDO_IO0 : LDO : ips-supply : GPIO 0 193*4882a593SmuzhiyunLDO_IO1 : LDO : ips-supply : GPIO 1 194*4882a593SmuzhiyunRTC_LDO : LDO : ips-supply : always on 195*4882a593SmuzhiyunSW : On/Off Switch : swin-supply 196*4882a593Smuzhiyun 197*4882a593SmuzhiyunAXP813 regulators, type, and corresponding input supply names: 198*4882a593Smuzhiyun 199*4882a593SmuzhiyunRegulator Type Supply Name Notes 200*4882a593Smuzhiyun--------- ---- ----------- ----- 201*4882a593SmuzhiyunDCDC1 : DC-DC buck : vin1-supply 202*4882a593SmuzhiyunDCDC2 : DC-DC buck : vin2-supply : poly-phase capable 203*4882a593SmuzhiyunDCDC3 : DC-DC buck : vin3-supply : poly-phase capable 204*4882a593SmuzhiyunDCDC4 : DC-DC buck : vin4-supply 205*4882a593SmuzhiyunDCDC5 : DC-DC buck : vin5-supply : poly-phase capable 206*4882a593SmuzhiyunDCDC6 : DC-DC buck : vin6-supply : poly-phase capable 207*4882a593SmuzhiyunDCDC7 : DC-DC buck : vin7-supply 208*4882a593SmuzhiyunALDO1 : LDO : aldoin-supply : shared supply 209*4882a593SmuzhiyunALDO2 : LDO : aldoin-supply : shared supply 210*4882a593SmuzhiyunALDO3 : LDO : aldoin-supply : shared supply 211*4882a593SmuzhiyunDLDO1 : LDO : dldoin-supply : shared supply 212*4882a593SmuzhiyunDLDO2 : LDO : dldoin-supply : shared supply 213*4882a593SmuzhiyunDLDO3 : LDO : dldoin-supply : shared supply 214*4882a593SmuzhiyunDLDO4 : LDO : dldoin-supply : shared supply 215*4882a593SmuzhiyunELDO1 : LDO : eldoin-supply : shared supply 216*4882a593SmuzhiyunELDO2 : LDO : eldoin-supply : shared supply 217*4882a593SmuzhiyunELDO3 : LDO : eldoin-supply : shared supply 218*4882a593SmuzhiyunFLDO1 : LDO : fldoin-supply : shared supply 219*4882a593SmuzhiyunFLDO2 : LDO : fldoin-supply : shared supply 220*4882a593SmuzhiyunFLDO3 : LDO : fldoin-supply : shared supply 221*4882a593SmuzhiyunLDO_IO0 : LDO : ips-supply : GPIO 0 222*4882a593SmuzhiyunLDO_IO1 : LDO : ips-supply : GPIO 1 223*4882a593SmuzhiyunRTC_LDO : LDO : ips-supply : always on 224*4882a593SmuzhiyunSW : On/Off Switch : swin-supply 225*4882a593SmuzhiyunDRIVEVBUS : Enable output : drivevbus-supply : external regulator 226*4882a593Smuzhiyun 227*4882a593SmuzhiyunExample: 228*4882a593Smuzhiyun 229*4882a593Smuzhiyunaxp209: pmic@34 { 230*4882a593Smuzhiyun compatible = "x-powers,axp209"; 231*4882a593Smuzhiyun reg = <0x34>; 232*4882a593Smuzhiyun interrupt-parent = <&nmi_intc>; 233*4882a593Smuzhiyun interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 234*4882a593Smuzhiyun interrupt-controller; 235*4882a593Smuzhiyun #interrupt-cells = <1>; 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun regulators { 238*4882a593Smuzhiyun x-powers,dcdc-freq = <1500>; 239*4882a593Smuzhiyun 240*4882a593Smuzhiyun vdd_cpu: dcdc2 { 241*4882a593Smuzhiyun regulator-always-on; 242*4882a593Smuzhiyun regulator-min-microvolt = <1000000>; 243*4882a593Smuzhiyun regulator-max-microvolt = <1450000>; 244*4882a593Smuzhiyun regulator-name = "vdd-cpu"; 245*4882a593Smuzhiyun }; 246*4882a593Smuzhiyun 247*4882a593Smuzhiyun vdd_int_dll: dcdc3 { 248*4882a593Smuzhiyun regulator-always-on; 249*4882a593Smuzhiyun regulator-min-microvolt = <1000000>; 250*4882a593Smuzhiyun regulator-max-microvolt = <1400000>; 251*4882a593Smuzhiyun regulator-name = "vdd-int-dll"; 252*4882a593Smuzhiyun }; 253*4882a593Smuzhiyun 254*4882a593Smuzhiyun vdd_rtc: ldo1 { 255*4882a593Smuzhiyun regulator-always-on; 256*4882a593Smuzhiyun regulator-min-microvolt = <1200000>; 257*4882a593Smuzhiyun regulator-max-microvolt = <1400000>; 258*4882a593Smuzhiyun regulator-name = "vdd-rtc"; 259*4882a593Smuzhiyun }; 260*4882a593Smuzhiyun 261*4882a593Smuzhiyun avcc: ldo2 { 262*4882a593Smuzhiyun regulator-always-on; 263*4882a593Smuzhiyun regulator-min-microvolt = <2700000>; 264*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 265*4882a593Smuzhiyun regulator-name = "avcc"; 266*4882a593Smuzhiyun }; 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun ldo3 { 269*4882a593Smuzhiyun /* unused but preferred to be managed by OS */ 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun }; 272*4882a593Smuzhiyun}; 273