Files
linux/Documentation/devicetree/bindings/mfd/ti,twl.yaml
Linus Torvalds 6044a1ee9d Merge tag 'devicetree-for-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux
Pull devicetree updates from Rob Herring:
 "DT bindings:

   - Convert lattice,ice40-fpga-mgr, apm,xgene-storm-dma,
     brcm,sr-thermal, amazon,al-thermal, brcm,ocotp, mt8173-mdp, Actions
     Owl SPS, Marvell AP80x System Controller, Marvell CP110 System
     Controller, cznic,moxtet, and apm,xgene-slimpro-mbox to DT schema
     format

   - Add i.MX95 fsl,irqsteer, MT8365 Mali Bifrost GPU, Anvo ANV32C81W
     EEPROM, and Microchip pic64gx PLIC

   - Add missing LGE, AMD Seattle, and APM X-Gene SoC platform
     compatibles

   - Updates to brcm,bcm2836-l1-intc, brcm,bcm2835-hvs, and bcm2711-hdmi
     bindings to fix warnings on BCM2712 platforms

   - Drop obsolete db8500-thermal.txt

   - Treewide clean-up of extra blank lines and inconsistent quoting

   - Ensure all .dtbo targets are applied to a base .dtb

   - Speed up dt_binding_check by skipping running validation on empty
     examples

  DT core:

   - Add of_machine_device_match() and of_machine_get_match_data()
     helpers and convert users treewide

   - Fix bounds checking of address properties in FDT code. Rework the
     code to have a single implementation of the bounds checks.

   - Rework of_irq_init() to ignore any implicit interrupt-parent (i.e.
     in a parent node) on nodes without an interrupt. This matches the
     spec description and fixes some RISC-V platforms.

   - Avoid a spurious message on overlay removal

   - Skip DT kunit tests on RISCV+ACPI"

* tag 'devicetree-for-6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (55 commits)
  dt-bindings: kbuild: Skip validating empty examples
  dt-bindings: interrupt-controller: brcm,bcm2836-l1-intc: Drop interrupt-controller requirement
  dt-bindings: display: Fix brcm,bcm2835-hvs bindings for BCM2712
  dt-bindings: display: bcm2711-hdmi: Add interrupt details for BCM2712
  of: Skip devicetree kunit tests when RISCV+ACPI doesn't populate root node
  soc: tegra: Simplify with of_machine_device_match()
  soc: qcom: ubwc: Simplify with of_machine_get_match_data()
  powercap: dtpm: Simplify with of_machine_get_match_data()
  platform: surface: Simplify with of_machine_get_match_data()
  irqchip/atmel-aic: Simplify with of_machine_get_match_data()
  firmware: qcom: scm: Simplify with of_machine_device_match()
  cpuidle: big_little: Simplify with of_machine_device_match()
  cpufreq: sun50i: Simplify with of_machine_device_match()
  cpufreq: mediatek: Simplify with of_machine_get_match_data()
  cpufreq: dt-platdev: Simplify with of_machine_get_match_data()
  of: Add wrappers to match root node with OF device ID tables
  dt-bindings: eeprom: at25: Add Anvo ANV32C81W
  of/reserved_mem: Simplify the logic of __reserved_mem_alloc_size()
  of/reserved_mem: Simplify the logic of fdt_scan_reserved_mem_reg_nodes()
  of/reserved_mem: Simplify the logic of __reserved_mem_reserve_reg()
  ...
2025-12-04 15:50:37 -08:00

586 lines
13 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
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>;
};
};
};
...