0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/stericsson,ab8500.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: ST-Ericsson Analog Baseband AB8500 and AB8505
0008
0009 maintainers:
0010 - Linus Walleij <linus.walleij@linaro.org>
0011
0012 description:
0013 the AB8500 "Analog Baseband" is the mixed-signals integrated circuit
0014 handling power management (regulators), analog-to-digital conversion
0015 (ADC), battery charging, fuel gauging of the battery, battery-backed
0016 RTC, PWM, USB PHY and some GPIO lines in the ST-Ericsson U8500 platforms
0017 in connection with the DB8500 digital baseband. The DB8500 PRCMU
0018 communicates directly and autonomously with the AB8500 and thus it
0019 appears as a subnode of the DB8500 PRCMU. An altered version called
0020 AB8505 also exist, the difference in AB8505 is that some of the USB and
0021 USB charging handling has changed, and it has an embedded USB-to-serial
0022 converter. Most subblocks takes their interrupts directly from the
0023 AB8500 embedded interrupt controller.
0024
0025 properties:
0026 $nodename:
0027 pattern: '^ab850[05]$'
0028
0029 compatible:
0030 enum:
0031 - stericsson,ab8500
0032 - stericsson,ab8505
0033
0034 interrupts:
0035 maxItems: 1
0036
0037 interrupt-controller: true
0038
0039 '#interrupt-cells':
0040 const: 2
0041
0042 # Some subnodes use a reg, some don't. Those that do use a single cell.
0043 '#address-cells':
0044 const: 1
0045
0046 '#size-cells':
0047 const: 0
0048
0049 clock-controller:
0050 description: Node describing the AB8500 clock controller. This
0051 provides the reference clock for the entire U8500 system and
0052 the DB8500 counterpart.
0053 type: object
0054
0055 properties:
0056 compatible:
0057 const: stericsson,ab8500-clk
0058
0059 '#clock-cells':
0060 const: 1
0061
0062 gpio:
0063 description: Node describing the AB8500 GPIO controller. A few
0064 GPIO pins available for misc usage.
0065 type: object
0066
0067 properties:
0068 compatible:
0069 enum:
0070 - stericsson,ab8500-gpio
0071 - stericsson,ab8505-gpio
0072
0073 gpio-controller: true
0074
0075 '#gpio-cells':
0076 const: 2
0077
0078 rtc:
0079 description: Node describing the AB8500 battery-backed RTC.
0080 type: object
0081
0082 properties:
0083 compatible:
0084 const: stericsson,ab8500-rtc
0085
0086 interrupts:
0087 items:
0088 - description: 60 second interval alarm interrupt
0089 - description: RTC alarm
0090
0091 interrupt-names:
0092 items:
0093 - const: 60S
0094 - const: ALARM
0095
0096 adc:
0097 description: Node describing the AB8500 general purpose analog to digital
0098 converter, GPADC.
0099 type: object
0100
0101 properties:
0102 compatible:
0103 const: stericsson,ab8500-gpadc
0104
0105 # AB8505 only supports one (software) EOC interrupt
0106 interrupts:
0107 minItems: 1
0108 maxItems: 2
0109
0110 interrupt-names: true
0111
0112 vddadc-supply: true
0113
0114 '#address-cells':
0115 const: 1
0116
0117 '#size-cells':
0118 const: 0
0119
0120 '#io-channel-cells':
0121 const: 1
0122
0123 patternProperties:
0124 "^channel@[0-9a-f]+$":
0125 type: object
0126 $ref: ../iio/adc/adc.yaml#
0127 description: Represents each of the external channels which are
0128 connected to the ADC.
0129
0130 properties:
0131 reg:
0132 items:
0133 minimum: 1
0134 maximum: 31
0135
0136 required:
0137 - reg
0138
0139 additionalProperties: false
0140
0141 required:
0142 - compatible
0143 - interrupts
0144 - interrupt-names
0145 - vddadc-supply
0146 - '#address-cells'
0147 - '#size-cells'
0148 - '#io-channel-cells'
0149
0150 additionalProperties: false
0151
0152 thermal:
0153 description: Node describing the AB8500 thermal control block. All this block
0154 really does is to fire an interrupt when the die becomes 130 degrees Celsius
0155 in temperature.
0156 type: object
0157
0158 properties:
0159 compatible:
0160 const: stericsson,abx500-temp
0161
0162 interrupts:
0163 items:
0164 - description: Thermal warm warning interrupt
0165
0166 interrupt-names:
0167 items:
0168 - const: ABX500_TEMP_WARM
0169
0170 required:
0171 - compatible
0172 - interrupts
0173 - interrupt-names
0174
0175 additionalProperties: false
0176
0177 ab8500_fg:
0178 description: Node describing the AB8500 fuel gauge control block.
0179 type: object
0180 $ref: ../power/supply/stericsson,ab8500-fg.yaml
0181
0182 ab8500_btemp:
0183 description: Node describing the AB8500 battery temperature control block.
0184 type: object
0185 $ref: ../power/supply/stericsson,ab8500-btemp.yaml
0186
0187 ab8500_charger:
0188 description: Node describing the AB8500 battery charger control block.
0189 type: object
0190 $ref: ../power/supply/stericsson,ab8500-charger.yaml
0191
0192 ab8500_chargalg:
0193 description: Node describing the AB8500 battery charger algorithm.
0194 type: object
0195 $ref: ../power/supply/stericsson,ab8500-chargalg.yaml
0196
0197 phy:
0198 description: Node describing the AB8500 USB PHY control block.
0199 type: object
0200
0201 properties:
0202 compatible:
0203 const: stericsson,ab8500-usb
0204
0205 interrupts:
0206 items:
0207 - description: ID wakeup rising IRQ
0208 - description: ID wakeup falling IRQ
0209 - description: VBUS detection falling IRQ
0210 - description: VBUS detection rising IRQ
0211 - description: USB link status change IRQ
0212 - description: ADP probe plug IRQ
0213 - description: ADP probe unplug IRQ
0214
0215 interrupt-names:
0216 items:
0217 - const: ID_WAKEUP_R
0218 - const: ID_WAKEUP_F
0219 - const: VBUS_DET_F
0220 - const: VBUS_DET_R
0221 - const: USB_LINK_STATUS
0222 - const: USB_ADP_PROBE_PLUG
0223 - const: USB_ADP_PROBE_UNPLUG
0224
0225 vddulpivio18-supply: true
0226 v-ape-supply: true
0227 musb_1v8-supply: true
0228
0229 clocks:
0230 items:
0231 - description: PRCMY system clock
0232
0233 clock-names:
0234 items:
0235 - const: sysclk
0236
0237 '#phy-cells':
0238 const: 0
0239
0240 required:
0241 - compatible
0242 - interrupts
0243 - interrupt-names
0244 - vddulpivio18-supply
0245 - v-ape-supply
0246 - musb_1v8-supply
0247 - clocks
0248 - clock-names
0249 - '#phy-cells'
0250
0251 additionalProperties: false
0252
0253 key:
0254 description: Node describing the AB8500 power-on key control block.
0255 type: object
0256
0257 properties:
0258 compatible:
0259 const: stericsson,ab8500-poweron-key
0260
0261 interrupts:
0262 items:
0263 - description: ON key falling IRQ
0264 - description: ON key rising IRQ
0265
0266 interrupt-names:
0267 items:
0268 - const: ONKEY_DBF
0269 - const: ONKEY_DBR
0270
0271 required:
0272 - compatible
0273 - interrupts
0274 - interrupt-names
0275
0276 additionalProperties: false
0277
0278 ab8500-sysctrl:
0279 description: Node describing the AB8500 system control block.
0280 type: object
0281
0282 properties:
0283 compatible:
0284 const: stericsson,ab8500-sysctrl
0285
0286 required:
0287 - compatible
0288
0289 additionalProperties: false
0290
0291 codec:
0292 description: Node describing the AB8500 audio codec block.
0293 type: object
0294
0295 properties:
0296 compatible:
0297 const: stericsson,ab8500-codec
0298
0299 V-AUD-supply: true
0300 V-AMIC1-supply: true
0301 V-AMIC2-supply: true
0302 V-DMIC-supply: true
0303
0304 clocks:
0305 items:
0306 - description: Audio system clock
0307
0308 clock-names:
0309 items:
0310 - const: audioclk
0311
0312 stericsson,earpeice-cmv:
0313 description: Earpeice voltage
0314 $ref: /schemas/types.yaml#/definitions/uint32
0315 enum: [ 950, 1100, 1270, 1580 ]
0316
0317 required:
0318 - compatible
0319
0320 additionalProperties: false
0321
0322 regulator:
0323 description: Node describing the AB8500 internal regulators.
0324 type: object
0325
0326 properties:
0327 compatible:
0328 enum:
0329 - stericsson,ab8500-regulator
0330 - stericsson,ab8505-regulator
0331
0332 vin-supply:
0333 description: The regulator supplying all of the internal regulators
0334 with power.
0335
0336 ab8500_ldo_aux1:
0337 description: The voltage for the auxilary LDO regulator 1
0338 type: object
0339 $ref: ../regulator/regulator.yaml#
0340
0341 ab8500_ldo_aux2:
0342 description: The voltage for the auxilary LDO regulator 2
0343 type: object
0344 $ref: ../regulator/regulator.yaml#
0345
0346 ab8500_ldo_aux3:
0347 description: The voltage for the auxilary LDO regulator 3
0348 type: object
0349 $ref: ../regulator/regulator.yaml#
0350
0351 ab8500_ldo_aux4:
0352 description: The voltage for the auxilary LDO regulator 4
0353 only present on AB8505
0354 type: object
0355 $ref: ../regulator/regulator.yaml#
0356
0357 ab8500_ldo_aux5:
0358 description: The voltage for the auxilary LDO regulator 5
0359 only present on AB8505
0360 type: object
0361 $ref: ../regulator/regulator.yaml#
0362
0363 ab8500_ldo_aux6:
0364 description: The voltage for the auxilary LDO regulator 6
0365 only present on AB8505
0366 type: object
0367 $ref: ../regulator/regulator.yaml#
0368
0369 # There is never any AUX7 regulator which is confusing
0370
0371 ab8500_ldo_aux8:
0372 description: The voltage for the auxilary LDO regulator 8
0373 only present on AB8505
0374 type: object
0375 $ref: ../regulator/regulator.yaml#
0376
0377 ab8500_ldo_intcore:
0378 description: The LDO regulator for the internal core voltage
0379 of the AB8500
0380 type: object
0381 $ref: ../regulator/regulator.yaml#
0382
0383 ab8500_ldo_adc:
0384 description: Analog power regulator for the analog to digital converter
0385 ADC, only present on AB8505
0386 type: object
0387 $ref: ../regulator/regulator.yaml#
0388
0389 ab8500_ldo_tvout:
0390 description: The voltage for the TV output regulator, incidentally
0391 this voltage is also used for other purposes such as measuring
0392 the temperature of the NTC thermistor on the battery.
0393 Only present on AB8500.
0394 type: object
0395 $ref: ../regulator/regulator.yaml#
0396
0397 ab8500_ldo_audio:
0398 description: The LDO regulator for the audio codec output
0399 type: object
0400 $ref: ../regulator/regulator.yaml#
0401
0402 ab8500_ldo_anamic1:
0403 description: The LDO regulator for the analog microphone 1
0404 type: object
0405 $ref: ../regulator/regulator.yaml#
0406
0407 ab8500_ldo_anamic2:
0408 description: The LDO regulator for the analog microphone 2
0409 type: object
0410 $ref: ../regulator/regulator.yaml#
0411
0412 ab8500_ldo_dmic:
0413 description: The LDO regulator for the digital microphone
0414 only present on AB8500
0415 type: object
0416 $ref: ../regulator/regulator.yaml#
0417
0418 ab8500_ldo_ana:
0419 description: Analog power regulator for CSI and DSI interfaces,
0420 Camera Serial Interface CSI and Display Serial Interface DSI.
0421 type: object
0422 $ref: ../regulator/regulator.yaml#
0423
0424 required:
0425 - compatible
0426
0427 additionalProperties: false
0428
0429
0430 regulator-external:
0431 description: Node describing the AB8500 external regulators. This
0432 concerns the autonomous regulators VSMPS1, VSMPS2 and VSMPS3
0433 that are normally controlled by external electronics but also
0434 sometimes need to be explicitly controlled by software.
0435 type: object
0436
0437 properties:
0438 compatible:
0439 const: stericsson,ab8500-ext-regulator
0440
0441 ab8500_ext1:
0442 description: The voltage for the VSMPS1 external regulator
0443 type: object
0444 $ref: ../regulator/regulator.yaml#
0445
0446 ab8500_ext2:
0447 description: The voltage for the VSMPS2 external regulator
0448 type: object
0449 $ref: ../regulator/regulator.yaml#
0450
0451 ab8500_ext3:
0452 description: The voltage for the VSMPS3 external regulator
0453 type: object
0454 $ref: ../regulator/regulator.yaml#
0455
0456 required:
0457 - compatible
0458
0459 additionalProperties: false
0460
0461 patternProperties:
0462 "^pwm@[1-9]+?$":
0463 type: object
0464 $ref: ../pwm/pwm.yaml#
0465 description: Represents each of the PWM blocks in the AB8500
0466
0467 properties:
0468 compatible:
0469 const: stericsson,ab8500-pwm
0470
0471 reg: true
0472
0473 clocks:
0474 items:
0475 - description: internal clock
0476
0477 clock-names:
0478 items:
0479 - const: intclk
0480
0481 required:
0482 - compatible
0483 - reg
0484
0485 required:
0486 - compatible
0487 - clock-controller
0488 - gpio
0489 - rtc
0490 - adc
0491 - thermal
0492 - ab8500_fg
0493 - ab8500_btemp
0494 - ab8500_charger
0495 - ab8500_chargalg
0496 - phy
0497 - key
0498 - regulator
0499
0500 additionalProperties: false