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