blob: 06f1779835a1ef9e57888cd5bd1879521a3dce5e [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/x-powers,axp152.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: X-Powers AXP PMIC
8
9maintainers:
10 - Chen-Yu Tsai <wens@csie.org>
11
12allOf:
13 - if:
14 properties:
15 compatible:
16 contains:
17 enum:
18 - x-powers,axp152
19 - x-powers,axp202
20 - x-powers,axp209
21
22 then:
23 properties:
24 regulators:
25 properties:
26 x-powers,dcdc-freq:
27 minimum: 750
28 maximum: 1875
29 default: 1500
30
31 else:
32 properties:
33 regulators:
34 properties:
35 x-powers,dcdc-freq:
36 minimum: 1800
37 maximum: 4050
38 default: 3000
39
40 - if:
41 properties:
42 compatible:
43 contains:
44 enum:
45 - x-powers,axp152
46 - x-powers,axp202
47 - x-powers,axp209
48
49 then:
50 properties:
51 x-powers,drive-vbus-en: false
52
53 - if:
54 not:
55 properties:
56 compatible:
57 contains:
58 const: x-powers,axp806
59
60 then:
61 properties:
62 x-powers,self-working-mode: false
63 x-powers,master-mode: false
64
65 - if:
66 not:
67 properties:
68 compatible:
69 contains:
70 enum:
71 - x-powers,axp15060
72 - x-powers,axp305
73 - x-powers,axp313a
74
75 then:
76 required:
77 - interrupts
78
79 - if:
80 properties:
81 compatible:
82 contains:
83 enum:
84 - x-powers,axp313a
85 - x-powers,axp15060
86
87 then:
88 properties:
89 x-powers,dcdc-freq: false
90
91properties:
92 compatible:
93 oneOf:
94 - enum:
95 - x-powers,axp152
96 - x-powers,axp192
97 - x-powers,axp202
98 - x-powers,axp209
99 - x-powers,axp221
100 - x-powers,axp223
101 - x-powers,axp313a
102 - x-powers,axp803
103 - x-powers,axp806
104 - x-powers,axp809
105 - x-powers,axp813
106 - x-powers,axp15060
107 - items:
108 - const: x-powers,axp228
109 - const: x-powers,axp221
110 - items:
111 - const: x-powers,axp805
112 - const: x-powers,axp806
113 - items:
114 - const: x-powers,axp305
115 - const: x-powers,axp805
116 - const: x-powers,axp806
117 - items:
118 - const: x-powers,axp818
119 - const: x-powers,axp813
120
121 reg:
122 maxItems: 1
123
124 interrupts:
125 maxItems: 1
126
127 interrupt-controller: true
128
129 "#interrupt-cells":
130 const: 1
131
132 x-powers,drive-vbus-en:
133 type: boolean
134 description: >
135 Set this when the N_VBUSEN pin is used as an output pin to control an
136 external regulator to drive the OTG VBus, rather then as an input pin
137 which signals whether the board is driving OTG VBus or not.
138
139 x-powers,self-working-mode:
140 type: boolean
141 description: >
142 Set this when the PMIC is wired for self-working mode through the MODESET
143 pin.
144
145 x-powers,master-mode:
146 type: boolean
147 description: >
148 Set this when the PMIC is wired for master mode through the MODESET pin.
149
150 vin1-supply:
151 description: >
152 DCDC1 power supply node, if present.
153
154 vin2-supply:
155 description: >
156 DCDC2 power supply node, if present.
157
158 vin3-supply:
159 description: >
160 DCDC3 power supply node, if present.
161
162 vin4-supply:
163 description: >
164 DCDC4 power supply node, if present.
165
166 vin5-supply:
167 description: >
168 DCDC5 power supply node, if present.
169
170 vin6-supply:
171 description: >
172 DCDC6 power supply node, if present.
173
174 vin7-supply:
175 description: >
176 DCDC7 power supply node, if present.
177
178 vina-supply:
179 description: >
180 DCDCA power supply node, if present.
181
182 vinb-supply:
183 description: >
184 DCDCB power supply node, if present.
185
186 vinc-supply:
187 description: >
188 DCDCC power supply node, if present.
189
190 vind-supply:
191 description: >
192 DCDCD power supply node, if present.
193
194 vine-supply:
195 description: >
196 DCDCE power supply node, if present.
197
198 acin-supply:
199 description: >
200 LDO1 power supply node, if present.
201
202 ldo24in-supply:
203 description: >
204 LDO2 and LDO4 power supply node, if present.
205
206 ldo3in-supply:
207 description: >
208 LDO3 power supply node, if present.
209
210 ldo5in-supply:
211 description: >
212 LDO5 power supply node, if present.
213
214 aldoin-supply:
215 description: >
216 ALDO* power supply node, if present.
217
218 bldoin-supply:
219 description: >
220 BLDO* power supply node, if present.
221
222 cldoin-supply:
223 description: >
224 CLDO* power supply node, if present.
225
226 dldoin-supply:
227 description: >
228 DLDO* power supply node, if present.
229
230 eldoin-supply:
231 description: >
232 ELDO* power supply node, if present.
233
234 fldoin-supply:
235 description: >
236 FLDO* power supply node, if present.
237
238 ips-supply:
239 description: >
240 LDO_IO0, LDO_IO1 and RTC_LDO power supply node, if present.
241
242 drivevbus-supply:
243 description: >
244 DRIVEVBUS power supply node, if present.
245
246 swin-supply:
247 description: >
248 SW power supply node, if present.
249
250 adc:
251 $ref: /schemas/iio/adc/x-powers,axp209-adc.yaml#
252
253 gpio:
254 $ref: /schemas/gpio/x-powers,axp209-gpio.yaml#
255
256 ac-power:
257 $ref: /schemas/power/supply/x-powers,axp20x-ac-power-supply.yaml#
258
259 battery-power:
260 $ref: /schemas/power/supply/x-powers,axp20x-battery-power-supply.yaml#
261
262 usb-power:
263 $ref: /schemas/power/supply/x-powers,axp20x-usb-power-supply.yaml#
264
265 regulators:
266 type: object
267
268 properties:
269 x-powers,dcdc-freq:
270 $ref: /schemas/types.yaml#/definitions/uint32
271 description: >
272 Defines the work frequency of DC-DC in kHz.
273
274 patternProperties:
275 "^(([a-f])?ldo[0-9]|dcdc[0-7a-e]|ldo(_|-)io(0|1)|(dc1)?sw|rtc(_|-)ldo|cpusldo|drivevbus|dc5ldo)$":
276 $ref: /schemas/regulator/regulator.yaml#
277 type: object
278 unevaluatedProperties: false
279
280 properties:
281 regulator-ramp-delay:
282 description: >
283 Only 800 and 1600 are valid for the DCDC2 and LDO3 regulators on
284 the AXP209.
285
286 regulator-soft-start:
287 description: >
288 Only valid for the LDO3 regulator.
289
290 x-powers,dcdc-workmode:
291 $ref: /schemas/types.yaml#/definitions/uint32
292 enum: [0, 1]
293 description: >
294 Only valid for DCDC regulators. Setup 1 for PWM mode, 0
295 for AUTO (PWM/PFM) mode. The DCDC regulators work in a
296 mixed PWM/PFM mode, using PFM under light loads and
297 switching to PWM for heavier loads. Forcing PWM mode
298 trades efficiency under light loads for lower output
299 noise. This probably makes sense for HiFi audio related
300 applications that aren't battery constrained.
301
302 additionalProperties: false
303
304required:
305 - compatible
306 - reg
307 - "#interrupt-cells"
308 - interrupt-controller
309
310additionalProperties: false
311
312examples:
313 - |
314 i2c {
315 #address-cells = <1>;
316 #size-cells = <0>;
317
318 pmic@30 {
319 compatible = "x-powers,axp152";
320 reg = <0x30>;
321 interrupts = <0>;
322 interrupt-controller;
323 #interrupt-cells = <1>;
324 };
325 };
326
327 - |
328 #include <dt-bindings/interrupt-controller/irq.h>
329
330 i2c {
331 #address-cells = <1>;
332 #size-cells = <0>;
333
334 pmic@34 {
335 compatible = "x-powers,axp209";
336 reg = <0x34>;
337 interrupt-parent = <&nmi_intc>;
338 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
339 interrupt-controller;
340 #interrupt-cells = <1>;
341
342 ac_power_supply: ac-power {
343 compatible = "x-powers,axp202-ac-power-supply";
344 };
345
346 axp_adc: adc {
347 compatible = "x-powers,axp209-adc";
348 #io-channel-cells = <1>;
349 };
350
351 axp_gpio: gpio {
352 compatible = "x-powers,axp209-gpio";
353 gpio-controller;
354 #gpio-cells = <2>;
355
356 gpio0-adc-pin {
357 pins = "GPIO0";
358 function = "adc";
359 };
360 };
361
362 battery_power_supply: battery-power {
363 compatible = "x-powers,axp209-battery-power-supply";
364 };
365
366 regulators {
367 /* Default work frequency for buck regulators */
368 x-powers,dcdc-freq = <1500>;
369
370 reg_dcdc2: dcdc2 {
371 regulator-always-on;
372 regulator-min-microvolt = <1000000>;
373 regulator-max-microvolt = <1450000>;
374 regulator-name = "vdd-cpu";
375 };
376
377 reg_dcdc3: dcdc3 {
378 regulator-always-on;
379 regulator-min-microvolt = <1000000>;
380 regulator-max-microvolt = <1400000>;
381 regulator-name = "vdd-int-dll";
382 };
383
384 reg_ldo1: ldo1 {
385 /* LDO1 is a fixed output regulator */
386 regulator-always-on;
387 regulator-min-microvolt = <1300000>;
388 regulator-max-microvolt = <1300000>;
389 regulator-name = "vdd-rtc";
390 };
391
392 reg_ldo2: ldo2 {
393 regulator-always-on;
394 regulator-min-microvolt = <3000000>;
395 regulator-max-microvolt = <3000000>;
396 regulator-name = "avcc";
397 };
398
399 reg_ldo3: ldo3 {
400 regulator-name = "ldo3";
401 };
402
403 reg_ldo4: ldo4 {
404 regulator-name = "ldo4";
405 };
406
407 reg_ldo5: ldo5 {
408 regulator-name = "ldo5";
409 };
410 };
411
412 usb_power_supply: usb-power {
413 compatible = "x-powers,axp202-usb-power-supply";
414 };
415 };
416 };