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