xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/stericsson,ab8500.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
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
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
523