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