GNU Linux-libre 6.8.9-gnu
[releases.git] / Documentation / devicetree / bindings / mfd / stericsson,ab8500.yaml
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
7 title: ST-Ericsson Analog Baseband AB8500 and AB8505
8
9 maintainers:
10   - Linus Walleij <linus.walleij@linaro.org>
11
12 description:
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
25 properties:
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
482 patternProperties:
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
507 required:
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
522 additionalProperties: false