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 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 461patternProperties: 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 485required: 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 500additionalProperties: false 501