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