Linux-6.18.2/Documentation/devicetree/bindings/mfd/ti,twl.yaml
2025-12-23 20:06:59 +08:00

558 lines
12 KiB
YAML

# 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
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: false
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: false
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:
const: ti,twl4030-pwrbutton
interrupts:
items:
- items:
const: 8
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>;
};
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>;
};
};
};
...