blob: 94f9767a927d64e2c84b59e4f3fc333e11da907d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mfd/stericsson,ab8500.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: ST-Ericsson Analog Baseband AB8500 and AB8505
8
9maintainers:
10 - Linus Walleij <linus.walleij@linaro.org>
11
12description:
13 the AB8500 "Analog Baseband" is the mixed-signals integrated circuit
14 handling power management (regulators), analog-to-digital conversion
15 (ADC), battery charging, fuel gauging of the battery, battery-backed
16 RTC, PWM, USB PHY and some GPIO lines in the ST-Ericsson U8500 platforms
17 in connection with the DB8500 digital baseband. The DB8500 PRCMU
18 communicates directly and autonomously with the AB8500 and thus it
19 appears as a subnode of the DB8500 PRCMU. An altered version called
20 AB8505 also exist, the difference in AB8505 is that some of the USB and
21 USB charging handling has changed, and it has an embedded USB-to-serial
22 converter. Most subblocks takes their interrupts directly from the
23 AB8500 embedded interrupt controller.
24
25properties:
26 $nodename:
27 pattern: '^ab850[05]$'
28
29 compatible:
30 enum:
31 - stericsson,ab8500
32 - stericsson,ab8505
33
34 interrupts:
35 maxItems: 1
36
37 interrupt-controller: true
38
39 '#interrupt-cells':
40 const: 2
41
42 # Some subnodes use a reg, some don't. Those that do use a single cell.
43 '#address-cells':
44 const: 1
45
46 '#size-cells':
47 const: 0
48
49 clock-controller:
50 description: Node describing the AB8500 clock controller. This
51 provides the reference clock for the entire U8500 system and
52 the DB8500 counterpart.
53 type: object
54 additionalProperties: false
55
56 properties:
57 compatible:
58 const: stericsson,ab8500-clk
59
60 '#clock-cells':
61 const: 1
62
63 gpio:
64 description: Node describing the AB8500 GPIO controller. A few
65 GPIO pins available for misc usage.
66 type: object
67 additionalProperties: false
68
69 properties:
70 compatible:
71 enum:
72 - stericsson,ab8500-gpio
73 - stericsson,ab8505-gpio
74
75 gpio-controller: true
76
77 '#gpio-cells':
78 const: 2
79
80 rtc:
81 description: Node describing the AB8500 battery-backed RTC.
82 type: object
83 additionalProperties: false
84
85 properties:
86 compatible:
87 const: stericsson,ab8500-rtc
88
89 interrupts:
90 items:
91 - description: 60 second interval alarm interrupt
92 - description: RTC alarm
93
94 interrupt-names:
95 items:
96 - const: 60S
97 - const: ALARM
98
99 adc:
100 description: Node describing the AB8500 general purpose analog to digital
101 converter, GPADC.
102 type: object
103
104 properties:
105 compatible:
106 const: stericsson,ab8500-gpadc
107
108 # AB8505 only supports one (software) EOC interrupt
109 interrupts:
110 minItems: 1
111 maxItems: 2
112
113 interrupt-names: true
114
115 vddadc-supply: true
116
117 '#address-cells':
118 const: 1
119
120 '#size-cells':
121 const: 0
122
123 '#io-channel-cells':
124 const: 1
125
126 patternProperties:
127 "^channel@[0-9a-f]+$":
128 type: object
129 $ref: ../iio/adc/adc.yaml#
130 description: Represents each of the external channels which are
131 connected to the ADC.
132
133 properties:
134 reg:
135 items:
136 minimum: 1
137 maximum: 31
138
139 required:
140 - reg
141
142 additionalProperties: false
143
144 required:
145 - compatible
146 - interrupts
147 - interrupt-names
148 - vddadc-supply
149 - '#address-cells'
150 - '#size-cells'
151 - '#io-channel-cells'
152
153 additionalProperties: false
154
155 thermal:
156 description: Node describing the AB8500 thermal control block. All this block
157 really does is to fire an interrupt when the die becomes 130 degrees Celsius
158 in temperature.
159 type: object
160
161 properties:
162 compatible:
163 const: stericsson,abx500-temp
164
165 interrupts:
166 items:
167 - description: Thermal warm warning interrupt
168
169 interrupt-names:
170 items:
171 - const: ABX500_TEMP_WARM
172
173 required:
174 - compatible
175 - interrupts
176 - interrupt-names
177
178 additionalProperties: false
179
180 ab8500_fg:
181 description: Node describing the AB8500 fuel gauge control block.
182 type: object
183 $ref: ../power/supply/stericsson,ab8500-fg.yaml
184
185 ab8500_btemp:
186 description: Node describing the AB8500 battery temperature control block.
187 type: object
188 $ref: ../power/supply/stericsson,ab8500-btemp.yaml
189
190 ab8500_charger:
191 description: Node describing the AB8500 battery charger control block.
192 type: object
193 $ref: ../power/supply/stericsson,ab8500-charger.yaml
194
195 ab8500_chargalg:
196 description: Node describing the AB8500 battery charger algorithm.
197 type: object
198 $ref: ../power/supply/stericsson,ab8500-chargalg.yaml
199
200 phy:
201 description: Node describing the AB8500 USB PHY control block.
202 type: object
203
204 properties:
205 compatible:
206 const: stericsson,ab8500-usb
207
208 interrupts:
209 items:
210 - description: ID wakeup rising IRQ
211 - description: ID wakeup falling IRQ
212 - description: VBUS detection falling IRQ
213 - description: VBUS detection rising IRQ
214 - description: USB link status change IRQ
215 - description: ADP probe plug IRQ
216 - description: ADP probe unplug IRQ
217
218 interrupt-names:
219 items:
220 - const: ID_WAKEUP_R
221 - const: ID_WAKEUP_F
222 - const: VBUS_DET_F
223 - const: VBUS_DET_R
224 - const: USB_LINK_STATUS
225 - const: USB_ADP_PROBE_PLUG
226 - const: USB_ADP_PROBE_UNPLUG
227
228 vddulpivio18-supply: true
229 v-ape-supply: true
230 musb_1v8-supply: true
231
232 clocks:
233 items:
234 - description: PRCMY system clock
235
236 clock-names:
237 items:
238 - const: sysclk
239
240 '#phy-cells':
241 const: 0
242
243 required:
244 - compatible
245 - interrupts
246 - interrupt-names
247 - vddulpivio18-supply
248 - v-ape-supply
249 - musb_1v8-supply
250 - clocks
251 - clock-names
252 - '#phy-cells'
253
254 additionalProperties: false
255
256 key:
257 description: Node describing the AB8500 power-on key control block.
258 type: object
259
260 properties:
261 compatible:
262 const: stericsson,ab8500-poweron-key
263
264 interrupts:
265 items:
266 - description: ON key falling IRQ
267 - description: ON key rising IRQ
268
269 interrupt-names:
270 items:
271 - const: ONKEY_DBF
272 - const: ONKEY_DBR
273
274 required:
275 - compatible
276 - interrupts
277 - interrupt-names
278
279 additionalProperties: false
280
281 ab8500-sysctrl:
282 description: Node describing the AB8500 system control block.
283 type: object
284
285 properties:
286 compatible:
287 const: stericsson,ab8500-sysctrl
288
289 required:
290 - compatible
291
292 additionalProperties: false
293
294 codec:
295 description: Node describing the AB8500 audio codec block.
296 type: object
297
298 properties:
299 compatible:
300 const: stericsson,ab8500-codec
301
302 V-AUD-supply: true
303 V-AMIC1-supply: true
304 V-AMIC2-supply: true
305 V-DMIC-supply: true
306
307 clocks:
308 items:
309 - description: Audio system clock
310
311 clock-names:
312 items:
313 - const: audioclk
314
315 stericsson,earpeice-cmv:
316 description: Earpiece voltage
317 $ref: /schemas/types.yaml#/definitions/uint32
318 enum: [ 950, 1100, 1270, 1580 ]
319
320 required:
321 - compatible
322
323 additionalProperties: false
324
325 regulator:
326 description: Node describing the AB8500 internal regulators.
327 type: object
328
329 properties:
330 compatible:
331 enum:
332 - stericsson,ab8500-regulator
333 - stericsson,ab8505-regulator
334
335 vin-supply:
336 description: The regulator supplying all of the internal regulators
337 with power.
338
339 ab8500_ldo_aux1:
340 description: The voltage for the auxiliary LDO regulator 1
341 type: object
342 $ref: ../regulator/regulator.yaml#
343 unevaluatedProperties: false
344
345 ab8500_ldo_aux2:
346 description: The voltage for the auxiliary LDO regulator 2
347 type: object
348 $ref: ../regulator/regulator.yaml#
349 unevaluatedProperties: false
350
351 ab8500_ldo_aux3:
352 description: The voltage for the auxiliary LDO regulator 3
353 type: object
354 $ref: ../regulator/regulator.yaml#
355 unevaluatedProperties: false
356
357 ab8500_ldo_aux4:
358 description: The voltage for the auxiliary LDO regulator 4
359 only present on AB8505
360 type: object
361 $ref: ../regulator/regulator.yaml#
362 unevaluatedProperties: false
363
364 ab8500_ldo_aux5:
365 description: The voltage for the auxiliary LDO regulator 5
366 only present on AB8505
367 type: object
368 $ref: ../regulator/regulator.yaml#
369 unevaluatedProperties: false
370
371 ab8500_ldo_aux6:
372 description: The voltage for the auxiliary LDO regulator 6
373 only present on AB8505
374 type: object
375 $ref: ../regulator/regulator.yaml#
376 unevaluatedProperties: false
377
378 # There is never any AUX7 regulator which is confusing
379
380 ab8500_ldo_aux8:
381 description: The voltage for the auxiliary LDO regulator 8
382 only present on AB8505
383 type: object
384 $ref: ../regulator/regulator.yaml#
385 unevaluatedProperties: false
386
387 ab8500_ldo_intcore:
388 description: The LDO regulator for the internal core voltage
389 of the AB8500
390 type: object
391 $ref: ../regulator/regulator.yaml#
392 unevaluatedProperties: false
393
394 ab8500_ldo_adc:
395 description: Analog power regulator for the analog to digital converter
396 ADC, only present on AB8505
397 type: object
398 $ref: ../regulator/regulator.yaml#
399 unevaluatedProperties: false
400
401 ab8500_ldo_tvout:
402 description: The voltage for the TV output regulator, incidentally
403 this voltage is also used for other purposes such as measuring
404 the temperature of the NTC thermistor on the battery.
405 Only present on AB8500.
406 type: object
407 $ref: ../regulator/regulator.yaml#
408 unevaluatedProperties: false
409
410 ab8500_ldo_audio:
411 description: The LDO regulator for the audio codec output
412 type: object
413 $ref: ../regulator/regulator.yaml#
414 unevaluatedProperties: false
415
416 ab8500_ldo_anamic1:
417 description: The LDO regulator for the analog microphone 1
418 type: object
419 $ref: ../regulator/regulator.yaml#
420 unevaluatedProperties: false
421
422 ab8500_ldo_anamic2:
423 description: The LDO regulator for the analog microphone 2
424 type: object
425 $ref: ../regulator/regulator.yaml#
426 unevaluatedProperties: false
427
428 ab8500_ldo_dmic:
429 description: The LDO regulator for the digital microphone
430 only present on AB8500
431 type: object
432 $ref: ../regulator/regulator.yaml#
433 unevaluatedProperties: false
434
435 ab8500_ldo_ana:
436 description: Analog power regulator for CSI and DSI interfaces,
437 Camera Serial Interface CSI and Display Serial Interface DSI.
438 type: object
439 $ref: ../regulator/regulator.yaml#
440 unevaluatedProperties: false
441
442 required:
443 - compatible
444
445 additionalProperties: false
446
447
448 regulator-external:
449 description: Node describing the AB8500 external regulators. This
450 concerns the autonomous regulators VSMPS1, VSMPS2 and VSMPS3
451 that are normally controlled by external electronics but also
452 sometimes need to be explicitly controlled by software.
453 type: object
454
455 properties:
456 compatible:
457 const: stericsson,ab8500-ext-regulator
458
459 ab8500_ext1:
460 description: The voltage for the VSMPS1 external regulator
461 type: object
462 $ref: ../regulator/regulator.yaml#
463 unevaluatedProperties: false
464
465 ab8500_ext2:
466 description: The voltage for the VSMPS2 external regulator
467 type: object
468 $ref: ../regulator/regulator.yaml#
469 unevaluatedProperties: false
470
471 ab8500_ext3:
472 description: The voltage for the VSMPS3 external regulator
473 type: object
474 $ref: ../regulator/regulator.yaml#
475 unevaluatedProperties: false
476
477 required:
478 - compatible
479
480 additionalProperties: false
481
482patternProperties:
483 "^pwm@[1-9]+?$":
484 type: object
485 $ref: ../pwm/pwm.yaml#
486 unevaluatedProperties: false
487 description: Represents each of the PWM blocks in the AB8500
488
489 properties:
490 compatible:
491 const: stericsson,ab8500-pwm
492
493 reg: true
494
495 clocks:
496 items:
497 - description: internal clock
498
499 clock-names:
500 items:
501 - const: intclk
502
503 required:
504 - compatible
505 - reg
506
507required:
508 - compatible
509 - clock-controller
510 - gpio
511 - rtc
512 - adc
513 - thermal
514 - ab8500_fg
515 - ab8500_btemp
516 - ab8500_charger
517 - ab8500_chargalg
518 - phy
519 - key
520 - regulator
521
522additionalProperties: false