Merge tag 'mfd-next-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
[linux-2.6-block.git] / Documentation / devicetree / bindings / mfd / stericsson,ab8500.yaml
CommitLineData
a002f65a
LW
1# 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
42839dca 54 additionalProperties: false
a002f65a
LW
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
42839dca 67 additionalProperties: false
a002f65a
LW
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
42839dca 83 additionalProperties: false
a002f65a
LW
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
1482489b 129 $ref: /schemas/iio/adc/adc.yaml#
a002f65a
LW
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
1482489b 183 $ref: /schemas/power/supply/stericsson,ab8500-fg.yaml
a002f65a
LW
184
185 ab8500_btemp:
186 description: Node describing the AB8500 battery temperature control block.
187 type: object
1482489b 188 $ref: /schemas/power/supply/stericsson,ab8500-btemp.yaml
a002f65a
LW
189
190 ab8500_charger:
191 description: Node describing the AB8500 battery charger control block.
192 type: object
1482489b 193 $ref: /schemas/power/supply/stericsson,ab8500-charger.yaml
a002f65a
LW
194
195 ab8500_chargalg:
196 description: Node describing the AB8500 battery charger algorithm.
197 type: object
1482489b 198 $ref: /schemas/power/supply/stericsson,ab8500-chargalg.yaml
a002f65a
LW
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:
47aab533 316 description: Earpiece voltage
a002f65a
LW
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:
47aab533 340 description: The voltage for the auxiliary LDO regulator 1
a002f65a 341 type: object
1482489b 342 $ref: /schemas/regulator/regulator.yaml#
42839dca 343 unevaluatedProperties: false
a002f65a
LW
344
345 ab8500_ldo_aux2:
47aab533 346 description: The voltage for the auxiliary LDO regulator 2
a002f65a 347 type: object
1482489b 348 $ref: /schemas/regulator/regulator.yaml#
42839dca 349 unevaluatedProperties: false
a002f65a
LW
350
351 ab8500_ldo_aux3:
47aab533 352 description: The voltage for the auxiliary LDO regulator 3
a002f65a 353 type: object
1482489b 354 $ref: /schemas/regulator/regulator.yaml#
42839dca 355 unevaluatedProperties: false
a002f65a
LW
356
357 ab8500_ldo_aux4:
47aab533 358 description: The voltage for the auxiliary LDO regulator 4
a002f65a
LW
359 only present on AB8505
360 type: object
1482489b 361 $ref: /schemas/regulator/regulator.yaml#
42839dca 362 unevaluatedProperties: false
a002f65a
LW
363
364 ab8500_ldo_aux5:
47aab533 365 description: The voltage for the auxiliary LDO regulator 5
a002f65a
LW
366 only present on AB8505
367 type: object
1482489b 368 $ref: /schemas/regulator/regulator.yaml#
42839dca 369 unevaluatedProperties: false
a002f65a
LW
370
371 ab8500_ldo_aux6:
47aab533 372 description: The voltage for the auxiliary LDO regulator 6
a002f65a
LW
373 only present on AB8505
374 type: object
1482489b 375 $ref: /schemas/regulator/regulator.yaml#
42839dca 376 unevaluatedProperties: false
a002f65a
LW
377
378 # There is never any AUX7 regulator which is confusing
379
380 ab8500_ldo_aux8:
47aab533 381 description: The voltage for the auxiliary LDO regulator 8
a002f65a
LW
382 only present on AB8505
383 type: object
1482489b 384 $ref: /schemas/regulator/regulator.yaml#
42839dca 385 unevaluatedProperties: false
a002f65a
LW
386
387 ab8500_ldo_intcore:
388 description: The LDO regulator for the internal core voltage
389 of the AB8500
390 type: object
1482489b 391 $ref: /schemas/regulator/regulator.yaml#
42839dca 392 unevaluatedProperties: false
a002f65a
LW
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
1482489b 398 $ref: /schemas/regulator/regulator.yaml#
42839dca 399 unevaluatedProperties: false
a002f65a
LW
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
1482489b 407 $ref: /schemas/regulator/regulator.yaml#
42839dca 408 unevaluatedProperties: false
a002f65a
LW
409
410 ab8500_ldo_audio:
411 description: The LDO regulator for the audio codec output
412 type: object
1482489b 413 $ref: /schemas/regulator/regulator.yaml#
42839dca 414 unevaluatedProperties: false
a002f65a
LW
415
416 ab8500_ldo_anamic1:
417 description: The LDO regulator for the analog microphone 1
418 type: object
1482489b 419 $ref: /schemas/regulator/regulator.yaml#
42839dca 420 unevaluatedProperties: false
a002f65a
LW
421
422 ab8500_ldo_anamic2:
423 description: The LDO regulator for the analog microphone 2
424 type: object
1482489b 425 $ref: /schemas/regulator/regulator.yaml#
42839dca 426 unevaluatedProperties: false
a002f65a
LW
427
428 ab8500_ldo_dmic:
429 description: The LDO regulator for the digital microphone
430 only present on AB8500
431 type: object
1482489b 432 $ref: /schemas/regulator/regulator.yaml#
42839dca 433 unevaluatedProperties: false
a002f65a
LW
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
1482489b 439 $ref: /schemas/regulator/regulator.yaml#
42839dca 440 unevaluatedProperties: false
a002f65a
LW
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
1482489b 462 $ref: /schemas/regulator/regulator.yaml#
42839dca 463 unevaluatedProperties: false
a002f65a
LW
464
465 ab8500_ext2:
466 description: The voltage for the VSMPS2 external regulator
467 type: object
1482489b 468 $ref: /schemas/regulator/regulator.yaml#
42839dca 469 unevaluatedProperties: false
a002f65a
LW
470
471 ab8500_ext3:
472 description: The voltage for the VSMPS3 external regulator
473 type: object
1482489b 474 $ref: /schemas/regulator/regulator.yaml#
42839dca 475 unevaluatedProperties: false
a002f65a
LW
476
477 required:
478 - compatible
479
480 additionalProperties: false
481
482patternProperties:
483 "^pwm@[1-9]+?$":
484 type: object
1482489b 485 $ref: /schemas/pwm/pwm.yaml#
42839dca 486 unevaluatedProperties: false
a002f65a
LW
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