xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mfd/axp20x.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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