| # SPDX-License-Identifier: GPL-2.0 |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/mfd/ti,twl.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Texas Instruments TWL family |
| |
| maintainers: |
| - Andreas Kemnade <andreas@kemnade.info> |
| |
| description: | |
| The TWLs are Integrated Power Management Chips. |
| Some versions might contain much more analog functions like |
| USB transceiver or Audio amplifier. |
| These chips are connected to an I2C bus. |
| |
| allOf: |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: ti,twl4030 |
| then: |
| patternProperties: |
| "^regulator-": |
| properties: |
| compatible: |
| enum: |
| - ti,twl4030-vaux1 |
| - ti,twl4030-vaux2 |
| - ti,twl4030-vaux3 |
| - ti,twl4030-vaux4 |
| - ti,twl4030-vmmc1 |
| - ti,twl4030-vmmc2 |
| - ti,twl4030-vpll1 |
| - ti,twl4030-vpll2 |
| - ti,twl4030-vsim |
| - ti,twl4030-vdac |
| - ti,twl4030-vintana2 |
| - ti,twl4030-vio |
| - ti,twl4030-vdd1 |
| - ti,twl4030-vdd2 |
| - ti,twl4030-vintana1 |
| - ti,twl4030-vintdig |
| - ti,twl4030-vusb1v5 |
| - ti,twl4030-vusb1v8 |
| - ti,twl4030-vusb3v1 |
| ti,retain-on-reset: false |
| |
| properties: |
| charger: |
| $ref: /schemas/power/supply/twl4030-charger.yaml |
| unevaluatedProperties: false |
| |
| gpadc: false |
| |
| pwrbutton: |
| properties: |
| compatible: |
| const: ti,twl4030-pwrbutton |
| interrupts: |
| items: |
| - items: |
| const: 8 |
| |
| usb-comparator: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: ti,twl6030 |
| then: |
| patternProperties: |
| "^regulator-": |
| properties: |
| compatible: |
| enum: |
| - ti,twl6030-vaux1 |
| - ti,twl6030-vaux2 |
| - ti,twl6030-vaux3 |
| - ti,twl6030-vmmc |
| - ti,twl6030-vpp |
| - ti,twl6030-vusim |
| - ti,twl6030-vana |
| - ti,twl6030-vcxio |
| - ti,twl6030-vdac |
| - ti,twl6030-vusb |
| - ti,twl6030-v1v8 |
| - ti,twl6030-v2v1 |
| - ti,twl6030-vdd1 |
| - ti,twl6030-vdd2 |
| - ti,twl6030-vdd3 |
| regulator-initial-mode: false |
| |
| properties: |
| charger: |
| $ref: /schemas/power/supply/ti,twl6030-charger.yaml |
| unevaluatedProperties: false |
| |
| gpadc: |
| properties: |
| compatible: |
| const: ti,twl6030-gpadc |
| |
| pwrbutton: |
| properties: |
| compatible: |
| const: ti,twl6030-pwrbutton |
| interrupts: |
| items: |
| - items: |
| const: 0 |
| |
| madc: false |
| |
| watchdog: false |
| |
| audio: false |
| |
| keypad: false |
| |
| twl4030-usb: false |
| |
| gpio: false |
| |
| power: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: ti,twl6032 |
| then: |
| patternProperties: |
| "^regulator-": |
| properties: |
| compatible: |
| enum: |
| - ti,twl6032-ldo1 |
| - ti,twl6032-ldo2 |
| - ti,twl6032-ldo3 |
| - ti,twl6032-ldo4 |
| - ti,twl6032-ldo5 |
| - ti,twl6032-ldo6 |
| - ti,twl6032-ldo7 |
| - ti,twl6032-ldoln |
| - ti,twl6032-ldousb |
| - ti,twl6032-smps3 |
| - ti,twl6032-smps4 |
| - ti,twl6032-vio |
| regulator-initial-mode: false |
| |
| properties: |
| charger: |
| $ref: /schemas/power/supply/ti,twl6030-charger.yaml |
| unevaluatedProperties: false |
| |
| gpadc: |
| properties: |
| compatible: |
| const: ti,twl6032-gpadc |
| |
| pwrbutton: |
| properties: |
| compatible: |
| const: ti,twl6030-pwrbutton |
| interrupts: |
| items: |
| - items: |
| const: 0 |
| |
| madc: false |
| |
| watchdog: false |
| |
| audio: false |
| |
| keypad: false |
| |
| twl4030-usb: false |
| |
| gpio: false |
| |
| power: false |
| |
| properties: |
| compatible: |
| description: > |
| TWL4030 for integrated power-management/audio CODEC device used in |
| OMAP3 based boards. |
| |
| TWL6030/32 for integrated power-management used in OMAP4 based boards |
| enum: |
| - ti,twl4030 |
| - ti,twl6030 |
| - ti,twl6032 |
| |
| reg: |
| maxItems: 1 |
| |
| interrupts: |
| maxItems: 1 |
| |
| interrupt-controller: true |
| |
| system-power-controller: true |
| |
| "#interrupt-cells": |
| const: 1 |
| |
| "#clock-cells": |
| const: 1 |
| |
| clocks: |
| maxItems: 1 |
| |
| clock-names: |
| const: fck |
| |
| charger: |
| type: object |
| |
| properties: |
| compatible: true |
| |
| required: |
| - compatible |
| |
| rtc: |
| type: object |
| additionalProperties: false |
| |
| properties: |
| compatible: |
| const: ti,twl4030-rtc |
| interrupts: |
| maxItems: 1 |
| |
| madc: |
| type: object |
| $ref: /schemas/iio/adc/ti,twl4030-madc.yaml |
| unevaluatedProperties: false |
| |
| pwrbutton: |
| type: object |
| additionalProperties: false |
| |
| properties: |
| compatible: |
| enum: |
| - ti,twl4030-pwrbutton |
| - ti,twl6030-pwrbutton |
| interrupts: |
| maxItems: 1 |
| |
| watchdog: |
| type: object |
| additionalProperties: false |
| |
| properties: |
| compatible: |
| const: ti,twl4030-wdt |
| |
| audio: |
| type: object |
| additionalProperties: true |
| |
| properties: |
| compatible: |
| const: ti,twl4030-audio |
| |
| required: |
| - compatible |
| |
| keypad: |
| type: object |
| additionalProperties: true |
| |
| properties: |
| compatible: |
| const: ti,twl4030-keypad |
| |
| required: |
| - compatible |
| |
| twl4030-usb: |
| type: object |
| additionalProperties: true |
| |
| properties: |
| compatible: |
| const: ti,twl4030-usb |
| |
| required: |
| - compatible |
| |
| gpio: |
| type: object |
| additionalProperties: true |
| |
| properties: |
| compatible: |
| const: ti,twl4030-gpio |
| |
| required: |
| - compatible |
| |
| power: |
| type: object |
| additionalProperties: false |
| description: > |
| The power management module inside the TWL4030 provides several |
| facilities to control the power resources, including power scripts. |
| |
| For now, the binding only supports the complete shutdown of the |
| system after poweroff. |
| |
| Board-specific compatible strings may be used for platform-specific |
| power configurations. |
| |
| A board-specific compatible string (e.g., ti,twl4030-power-omap3-evm) |
| may be paired with a generic fallback (generally for power saving mode). |
| |
| properties: |
| compatible: |
| oneOf: |
| # Case 1: A single compatible string is provided. |
| - enum: |
| - ti,twl4030-power |
| - ti,twl4030-power-reset |
| - ti,twl4030-power-idle |
| - ti,twl4030-power-idle-osc-off |
| - ti,twl4030-power-omap3-sdp |
| - ti,twl4030-power-omap3-ldp |
| - ti,twl4030-power-omap3-evm |
| |
| # Case 2: The specific, valid fallback for 'idle-osc-off'. |
| - items: |
| - const: ti,twl4030-power-idle-osc-off |
| - const: ti,twl4030-power-idle |
| |
| # Case 3: The specific, valid fallback for 'omap3-evm'. |
| - items: |
| - const: ti,twl4030-power-omap3-evm |
| - const: ti,twl4030-power-idle |
| |
| ti,system-power-controller: |
| type: boolean |
| deprecated: true |
| description: > |
| DEPRECATED. The standard 'system-power-controller' |
| property on the parent node should be used instead. |
| |
| ti,use_poweroff: |
| type: boolean |
| deprecated: true |
| description: DEPRECATED, to be removed. |
| |
| required: |
| - compatible |
| |
| gpadc: |
| type: object |
| $ref: /schemas/iio/adc/ti,twl6030-gpadc.yaml |
| unevaluatedProperties: false |
| |
| properties: |
| compatible: true |
| |
| usb-comparator: |
| type: object |
| additionalProperties: true |
| |
| properties: |
| compatible: |
| const: ti,twl6030-usb |
| |
| required: |
| - compatible |
| |
| pwm: |
| type: object |
| $ref: /schemas/pwm/pwm.yaml# |
| unevaluatedProperties: false |
| description: |
| PWM controllers (PWM1 and PWM2 on TWL4030, PWM0 and PWM1 on TWL6030/32). |
| |
| properties: |
| compatible: |
| enum: |
| - ti,twl4030-pwm |
| - ti,twl6030-pwm |
| |
| '#pwm-cells': |
| const: 2 |
| |
| required: |
| - compatible |
| - '#pwm-cells' |
| |
| pwmled: |
| type: object |
| $ref: /schemas/pwm/pwm.yaml# |
| unevaluatedProperties: false |
| description: > |
| PWM controllers connected to LED terminals (PWMA and PWMB on TWL4030. |
| |
| LED PWM on TWL6030/32, mainly used as charging indicator LED). |
| |
| properties: |
| compatible: |
| enum: |
| - ti,twl4030-pwmled |
| - ti,twl6030-pwmled |
| |
| '#pwm-cells': |
| const: 2 |
| |
| required: |
| - compatible |
| - '#pwm-cells' |
| |
| patternProperties: |
| '^regulator-': |
| type: object |
| unevaluatedProperties: false |
| $ref: /schemas/regulator/regulator.yaml |
| |
| properties: |
| compatible: true |
| regulator-initial-mode: |
| enum: |
| - 0x08 # Sleep mode, the nominal output voltage is maintained |
| # with low power consumption with low load current capability |
| - 0x0e # Active mode, the regulator can deliver its nominal output |
| # voltage with full-load current capability |
| |
| ti,retain-on-reset: |
| description: > |
| Does not turn off the supplies during warm reset. |
| |
| Could be needed for VMMC, as TWL6030 reset sequence for |
| this signal does not comply with the SD specification. |
| type: boolean |
| |
| unevaluatedProperties: false |
| |
| required: |
| - compatible |
| - reg |
| - interrupts |
| - interrupt-controller |
| - '#interrupt-cells' |
| |
| examples: |
| - | |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| pmic@48 { |
| compatible = "ti,twl6030"; |
| reg = <0x48>; |
| interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */ |
| interrupt-parent = <&gic>; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| |
| charger { |
| compatible = "ti,twl6030-charger"; |
| interrupts = <2>, <5>; |
| io-channels = <&gpadc 10>; |
| io-channel-names = "vusb"; |
| monitored-battery = <&bat>; |
| }; |
| |
| gpadc { |
| compatible = "ti,twl6030-gpadc"; |
| interrupts = <6>; |
| #io-channel-cells = <1>; |
| }; |
| |
| pwrbutton { |
| compatible = "ti,twl6030-pwrbutton"; |
| interrupts = <0>; |
| }; |
| |
| rtc { |
| compatible = "ti,twl4030-rtc"; |
| interrupts = <8>; |
| }; |
| |
| regulator-vaux1 { |
| compatible = "ti,twl6030-vaux1"; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <3000000>; |
| }; |
| |
| regulator-vmmc1 { |
| compatible = "ti,twl6030-vmmc"; |
| ti,retain-on-reset; |
| }; |
| |
| pwm { |
| compatible = "ti,twl6030-pwm"; |
| #pwm-cells = <2>; |
| }; |
| |
| pwmled { |
| compatible = "ti,twl6030-pwmled"; |
| #pwm-cells = <2>; |
| }; |
| }; |
| }; |
| |
| - | |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| pmic@48 { |
| compatible = "ti,twl4030"; |
| reg = <0x48>; |
| interrupts = <7>; /* SYS_NIRQ cascaded to intc */ |
| interrupt-parent = <&intc>; |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| |
| charger { |
| compatible = "ti,twl4030-bci"; |
| interrupts = <9>, <2>; |
| bci3v1-supply = <&vusb3v1>; |
| io-channels = <&twl_madc 11>; |
| io-channel-names = "vac"; |
| }; |
| |
| twl_madc: madc { |
| compatible = "ti,twl4030-madc"; |
| interrupts = <3>; |
| #io-channel-cells = <1>; |
| }; |
| |
| pwrbutton { |
| compatible = "ti,twl4030-pwrbutton"; |
| interrupts = <8>; |
| }; |
| |
| rtc { |
| compatible = "ti,twl4030-rtc"; |
| interrupts = <11>; |
| }; |
| |
| regulator-vaux1 { |
| compatible = "ti,twl4030-vaux1"; |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <3000000>; |
| regulator-initial-mode = <0xe>; |
| }; |
| |
| vusb3v1: regulator-vusb3v1 { |
| compatible = "ti,twl4030-vusb3v1"; |
| }; |
| |
| watchdog { |
| compatible = "ti,twl4030-wdt"; |
| }; |
| |
| power { |
| compatible = "ti,twl4030-power"; |
| }; |
| |
| pwm { |
| compatible = "ti,twl4030-pwm"; |
| #pwm-cells = <2>; |
| }; |
| |
| pwmled { |
| compatible = "ti,twl4030-pwmled"; |
| #pwm-cells = <2>; |
| }; |
| }; |
| }; |
| ... |