Merge tag 'mfd-next-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd

Pull MFD updates from Lee Jones:
 "This round of updates contains a fair amount of new device support, a
  couple of fixes and some refactoring. The most notable additions
  include new drivers for Loongson's Security Engine, RNG and TPM, new
  drivers for TI's TPS6594 Power Button and BQ257xx Charger ICs.

  The rest of the set provides a return value check fix and a
  refactoring to use a more modern GPIO API for the VEXPRESS sysreg
  driver, the removal of a deprecated IRQ ACK function from the MC13xxx
  RTC driver and a new DT binding for the aforementioned TI BQ257xx
  charger.

  New Support & Features:
   - Add a suite of drivers for the Loongson Security Engine, including
     the core controller, a Random Number Generator (RNG) and Trusted
     Platform Module (TPM) support.
   - Introduce support for the TI TPS6594 PMIC's power button, including
     the input driver, MFD cell registration, and a system power-off
     handler.
   - Add comprehensive support for the TI BQ257xx series of charger ICs,
     including the core MFD driver and a power supply driver for the
     charger functionality.

  Improvements & Fixes:
   - Check the return value of devm_gpiochip_add_data() in the VEXPRESS
     sysreg driver to prevent potential silent failures.

  Cleanups & Refactoring:
   - Add a MAINTAINERS entry for the new Loongson Security Engine
     drivers.
   - Convert the VEXPRESS sysreg driver to use the modern generic GPIO
     chip API.

  Removals:
   - Remove the deprecated and unused mc13xxx_irq_ack() function from
     the MC13xxx RTC, input and touchscreen drivers.

  Device Tree Bindings Updates:
   - Add device tree bindings for the TI BQ25703A charger"

* tag 'mfd-next-6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (69 commits)
  mfd: simple-mfd-i2c: Add compatible string for LX2160ARDB
  mfd: simple-mfd-i2c: Keep compatible strings in alphabetical order
  dt-bindings: mfd: twl: Add missing sub-nodes for TWL4030 & TWL603x
  dt-bindings: watchdog: Add SMARC-sAM67 support
  dt-bindings: mfd: tps6594: Allow gpio-line-names
  mfd: intel-lpss: Add Intel Wildcat Lake LPSS PCI IDs
  mfd: 88pm886: Add GPADC cell
  mfd: vexpress-sysreg: Use more common syntax for compound literals
  mfd: rz-mtu3: Fix MTU5 NFCR register offset
  mfd: max77705: Setup the core driver as an interrupt controller
  mfd: cs42l43: Remove IRQ masking in suspend
  mfd: cs42l43: Move IRQ enable/disable to encompass force suspend
  mfd: ls2kbmc: Add Loongson-2K BMC reset function support
  mfd: ls2kbmc: Introduce Loongson-2K BMC core driver
  mfd: bd71828, bd71815: Prepare for power-supply support
  dt-bindings: mfd: aspeed: Add AST2700 SCU compatibles
  dt-bindings: mfd: Convert aspeed,ast2400-p2a-ctrl to DT schema
  dt-bindings: mfd: fsl,mc13xxx: Add buttons node
  dt-bindings: mfd: fsl,mc13xxx: Convert txt to DT schema
  mfd: macsmc: Add "apple,t8103-smc" compatible
  ...
This commit is contained in:
Linus Torvalds
2025-10-01 12:04:12 -07:00
90 changed files with 3673 additions and 519 deletions
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/platform/acer,aspire1-ec.yaml#
$id: http://devicetree.org/schemas/embedded-controller/acer,aspire1-ec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Acer Aspire 1 Embedded Controller
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml#
$id: http://devicetree.org/schemas/embedded-controller/google,cros-ec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: ChromeOS Embedded Controller
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/gateworks-gsc.yaml#
$id: http://devicetree.org/schemas/embedded-controller/gw,gsc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Gateworks System Controller
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/platform/huawei,gaokun-ec.yaml#
$id: http://devicetree.org/schemas/embedded-controller/huawei,gaokun3-ec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Huawei Matebook E Go Embedded Controller
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/kontron,sl28cpld.yaml#
$id: http://devicetree.org/schemas/embedded-controller/kontron,sl28cpld.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Kontron's sl28cpld board management controller
@@ -16,7 +16,12 @@ description: |
properties:
compatible:
const: kontron,sl28cpld
oneOf:
- items:
- enum:
- kontron,sa67mcu
- const: kontron,sl28cpld
- const: kontron,sl28cpld
reg:
description:
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/platform/lenovo,yoga-c630-ec.yaml#
$id: http://devicetree.org/schemas/embedded-controller/lenovo,yoga-c630-ec.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Lenovo Yoga C630 Embedded Controller.
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/platform/microsoft,surface-sam.yaml#
$id: http://devicetree.org/schemas/embedded-controller/microsoft,surface-sam.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Surface System Aggregator Module (SAM, SSAM)
@@ -11,7 +11,7 @@ maintainers:
description: |
This module is part of the sl28cpld multi-function device. For more
details see ../mfd/kontron,sl28cpld.yaml.
details see ../embedded-controller/kontron,sl28cpld.yaml.
There are three flavors of the GPIO controller, one full featured
input/output with interrupt support (kontron,sl28cpld-gpio), one
@@ -11,7 +11,7 @@ maintainers:
description: |
This module is part of the sl28cpld multi-function device. For more
details see ../mfd/kontron,sl28cpld.yaml.
details see ../embedded-controller/kontron,sl28cpld.yaml.
properties:
compatible:
@@ -11,7 +11,7 @@ maintainers:
description: |
This module is part of the sl28cpld multi-function device. For more
details see ../mfd/kontron,sl28cpld.yaml.
details see ../embedded-controller/kontron,sl28cpld.yaml.
The following interrupts are available. All types and levels are fixed
and handled by the board management controller.
@@ -48,8 +48,34 @@ properties:
patternProperties:
'^p2a-control@[0-9a-f]+$':
description: See Documentation/devicetree/bindings/misc/aspeed-p2a-ctrl.txt
description: >
PCI-to-AHB Bridge Control
The bridge is available on platforms with the VGA enabled on the Aspeed
device. In this case, the host has access to a 64KiB window into all of
the BMC's memory. The BMC can disable this bridge. If the bridge is
enabled, the host has read access to all the regions of memory, however
the host only has read and write access depending on a register
controlled by the BMC.
type: object
additionalProperties: false
properties:
compatible:
enum:
- aspeed,ast2400-p2a-ctrl
- aspeed,ast2500-p2a-ctrl
reg:
maxItems: 1
memory-region:
maxItems: 1
description:
A reserved_memory region to be used for the PCI to AHB mapping
required:
- compatible
- reg
'^pinctrl(@[0-9a-f]+)?$':
type: object
@@ -127,6 +153,11 @@ examples:
#size-cells = <1>;
ranges = <0x0 0x1e6e2000 0x1000>;
p2a-control@2c {
compatible = "aspeed,ast2400-p2a-ctrl";
reg = <0x2c 0x4>;
};
silicon-id@7c {
compatible = "aspeed,ast2500-silicon-id", "aspeed,silicon-id";
reg = <0x7c 0x4>, <0x150 0x8>;
@@ -137,6 +137,9 @@ patternProperties:
reg:
maxItems: 1
clocks:
maxItems: 1
interrupts:
maxItems: 1
@@ -0,0 +1,288 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/fsl,mc13xxx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Freescale MC13xxx Power Management Integrated Circuits (PMIC)
maintainers:
- Alexander Kurz <akurz@blala.de>
description: >
The MC13xxx PMIC series consists of the three models MC13783, MC13892
and MC34708 and provide regulators and other features like RTC, ADC,
LED, touchscreen, codec and input buttons.
Link to datasheets
https://www.nxp.com/docs/en/data-sheet/MC13783.pdf
https://www.nxp.com/docs/en/data-sheet/MC13892.pdf
https://www.nxp.com/docs/en/data-sheet/MC34708.pdf
properties:
compatible:
enum:
- fsl,mc13783
- fsl,mc13892
- fsl,mc34708
reg:
description: I2C slave address or SPI chip select number.
maxItems: 1
spi-max-frequency: true
spi-cs-high: true
system-power-controller: true
interrupts:
maxItems: 1
buttons:
type: object
properties:
"#address-cells":
const: 1
"#size-cells":
const: 0
patternProperties:
"^onkey@[0-2]$":
$ref: /schemas/input/input.yaml#
unevaluatedProperties: false
type: object
properties:
reg:
description: |
One of
MC13783 BUTTON IDs:
0: ONOFD1
1: ONOFD2
2: ONOFD3
MC13892 BUTTON IDs:
0: PWRON1
1: PWRON2
2: PWRON3
MC34708 BUTTON IDs:
0: PWRON1
1: PWRON2
maximum: 2
debounce-delay-ms:
enum: [0, 30, 150, 750]
default: 30
description:
Sets the debouncing delay in milliseconds.
active-low:
description: Set active when pin is pulled low.
linux,code: true
fsl,enable-reset:
description:
Setting of the global reset option.
type: boolean
unevaluatedProperties: false
leds:
type: object
$ref: /schemas/leds/common.yaml#
properties:
reg:
description: |
One of
MC13783 LED IDs
0: Main display
1: AUX display
2: Keypad
3: Red 1
4: Green 1
5: Blue 1
6: Red 2
7: Green 2
8: Blue 2
9: Red 3
10: Green 3
11: Blue 3
MC13892 LED IDs
0: Main display
1: AUX display
2: Keypad
3: Red
4: Green
5: Blue
MC34708 LED IDs
0: Charger Red
1: Charger Green
maxItems: 1
led-control:
$ref: /schemas/types.yaml#/definitions/uint32-array
description: |
Setting for LED-Control register array length depends on model,
mc13783: 6, mc13892: 4, mc34708: 1
regulators:
type: object
additionalProperties:
type: object
description: |
List of child nodes specifying the regulators, depending on chip variant.
Each child node is defined using the standard binding for regulators and
the optional regulator properties defined below.
fsl,mc13xxx-uses-adc:
type: boolean
description: Indicate the ADC is being used
fsl,mc13xxx-uses-codec:
type: boolean
description: Indicate the Audio Codec is being used
fsl,mc13xxx-uses-rtc:
type: boolean
description: Indicate the RTC is being used
fsl,mc13xxx-uses-touch:
type: boolean
description: Indicate the touchscreen controller is being used
required:
- compatible
- reg
allOf:
- if:
properties:
compatible:
contains:
const: fsl,mc13783
then:
properties:
leds:
properties:
led-control:
minItems: 6
maxItems: 6
regulators:
patternProperties:
"^gpo[1-4]|pwgt[12]spi|sw[12][ab]|sw3|vaudio|vcam|vdig|vesim|vgen|viohi|violo|vmmc[12]|vrf[12]|vrfbg|vrfcp|vrfdig|vrfref|vsim|vvib$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
- if:
properties:
compatible:
contains:
const: fsl,mc13892
then:
properties:
leds:
properties:
led-control:
minItems: 4
maxItems: 4
regulators:
patternProperties:
"^gpo[1-4]|pwgt[12]spi|sw[1-4]|swbst|vaudio|vcam|vcoincell|vdig|vgen[1-3]|viohi|vpll|vsd|vusb|vusb2|vvideo$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
- if:
properties:
compatible:
contains:
const: fsl,mc34708
then:
properties:
buttons:
patternProperties:
"^onkey@[0-2]$":
properties:
reg:
maximum: 1
leds:
properties:
led-control:
minItems: 1
maxItems: 1
additionalProperties: false
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
spi {
#address-cells = <1>;
#size-cells = <0>;
pmic: mc13892@0 {
compatible = "fsl,mc13892";
reg = <0>;
spi-max-frequency = <1000000>;
spi-cs-high;
interrupt-parent = <&gpio0>;
interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
fsl,mc13xxx-uses-rtc;
fsl,mc13xxx-uses-adc;
buttons {
#address-cells = <1>;
#size-cells = <0>;
onkey@0 {
reg = <0>;
debounce-delay-ms = <30>;
active-low;
fsl,enable-reset;
};
};
leds {
#address-cells = <1>;
#size-cells = <0>;
led-control = <0x000 0x000 0x0e0 0x000>;
sysled@3 {
reg = <3>;
label = "system:red:live";
linux,default-trigger = "heartbeat";
};
};
regulators {
sw1_reg: sw1 {
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1375000>;
regulator-boot-on;
regulator-always-on;
};
sw2_reg: sw2 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1850000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
@@ -1,156 +0,0 @@
* Freescale MC13783/MC13892 Power Management Integrated Circuit (PMIC)
Required properties:
- compatible : Should be "fsl,mc13783" or "fsl,mc13892"
Optional properties:
- fsl,mc13xxx-uses-adc : Indicate the ADC is being used
- fsl,mc13xxx-uses-codec : Indicate the Audio Codec is being used
- fsl,mc13xxx-uses-rtc : Indicate the RTC is being used
- fsl,mc13xxx-uses-touch : Indicate the touchscreen controller is being used
Sub-nodes:
- codec: Contain the Audio Codec node.
- adc-port: Contain PMIC SSI port number used for ADC.
- dac-port: Contain PMIC SSI port number used for DAC.
- leds : Contain the led nodes and initial register values in property
"led-control". Number of register depends of used IC, for MC13783 is 6,
for MC13892 is 4, for MC34708 is 1. See datasheet for bits definitions of
these registers.
- #address-cells: Must be 1.
- #size-cells: Must be 0.
Each led node should contain "reg", which used as LED ID (described below).
Optional properties "label" and "linux,default-trigger" is described in
Documentation/devicetree/bindings/leds/common.txt.
- regulators : Contain the regulator nodes. The regulators are bound using
their names as listed below with their registers and bits for enabling.
MC13783 LED IDs:
0 : Main display
1 : AUX display
2 : Keypad
3 : Red 1
4 : Green 1
5 : Blue 1
6 : Red 2
7 : Green 2
8 : Blue 2
9 : Red 3
10 : Green 3
11 : Blue 3
MC13892 LED IDs:
0 : Main display
1 : AUX display
2 : Keypad
3 : Red
4 : Green
5 : Blue
MC34708 LED IDs:
0 : Charger Red
1 : Charger Green
MC13783 regulators:
sw1a : regulator SW1A (register 24, bit 0)
sw1b : regulator SW1B (register 25, bit 0)
sw2a : regulator SW2A (register 26, bit 0)
sw2b : regulator SW2B (register 27, bit 0)
sw3 : regulator SW3 (register 29, bit 20)
vaudio : regulator VAUDIO (register 32, bit 0)
viohi : regulator VIOHI (register 32, bit 3)
violo : regulator VIOLO (register 32, bit 6)
vdig : regulator VDIG (register 32, bit 9)
vgen : regulator VGEN (register 32, bit 12)
vrfdig : regulator VRFDIG (register 32, bit 15)
vrfref : regulator VRFREF (register 32, bit 18)
vrfcp : regulator VRFCP (register 32, bit 21)
vsim : regulator VSIM (register 33, bit 0)
vesim : regulator VESIM (register 33, bit 3)
vcam : regulator VCAM (register 33, bit 6)
vrfbg : regulator VRFBG (register 33, bit 9)
vvib : regulator VVIB (register 33, bit 11)
vrf1 : regulator VRF1 (register 33, bit 12)
vrf2 : regulator VRF2 (register 33, bit 15)
vmmc1 : regulator VMMC1 (register 33, bit 18)
vmmc2 : regulator VMMC2 (register 33, bit 21)
gpo1 : regulator GPO1 (register 34, bit 6)
gpo2 : regulator GPO2 (register 34, bit 8)
gpo3 : regulator GPO3 (register 34, bit 10)
gpo4 : regulator GPO4 (register 34, bit 12)
pwgt1spi : regulator PWGT1SPI (register 34, bit 15)
pwgt2spi : regulator PWGT2SPI (register 34, bit 16)
MC13892 regulators:
vcoincell : regulator VCOINCELL (register 13, bit 23)
sw1 : regulator SW1 (register 24, bit 0)
sw2 : regulator SW2 (register 25, bit 0)
sw3 : regulator SW3 (register 26, bit 0)
sw4 : regulator SW4 (register 27, bit 0)
swbst : regulator SWBST (register 29, bit 20)
vgen1 : regulator VGEN1 (register 32, bit 0)
viohi : regulator VIOHI (register 32, bit 3)
vdig : regulator VDIG (register 32, bit 9)
vgen2 : regulator VGEN2 (register 32, bit 12)
vpll : regulator VPLL (register 32, bit 15)
vusb2 : regulator VUSB2 (register 32, bit 18)
vgen3 : regulator VGEN3 (register 33, bit 0)
vcam : regulator VCAM (register 33, bit 6)
vvideo : regulator VVIDEO (register 33, bit 12)
vaudio : regulator VAUDIO (register 33, bit 15)
vsd : regulator VSD (register 33, bit 18)
gpo1 : regulator GPO1 (register 34, bit 6)
gpo2 : regulator GPO2 (register 34, bit 8)
gpo3 : regulator GPO3 (register 34, bit 10)
gpo4 : regulator GPO4 (register 34, bit 12)
pwgt1spi : regulator PWGT1SPI (register 34, bit 15)
pwgt2spi : regulator PWGT2SPI (register 34, bit 16)
vusb : regulator VUSB (register 50, bit 3)
The bindings details of individual regulator device can be found in:
Documentation/devicetree/bindings/regulator/regulator.txt
Examples:
ecspi@70010000 { /* ECSPI1 */
cs-gpios = <&gpio4 24 0>, /* GPIO4_24 */
<&gpio4 25 0>; /* GPIO4_25 */
pmic: mc13892@0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "fsl,mc13892";
spi-max-frequency = <6000000>;
reg = <0>;
interrupt-parent = <&gpio0>;
interrupts = <8>;
leds {
#address-cells = <1>;
#size-cells = <0>;
led-control = <0x000 0x000 0x0e0 0x000>;
sysled@3 {
reg = <3>;
label = "system:red:live";
linux,default-trigger = "heartbeat";
};
};
regulators {
sw1_reg: mc13892__sw1 {
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <1375000>;
regulator-boot-on;
regulator-always-on;
};
sw2_reg: mc13892__sw2 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1850000>;
regulator-boot-on;
regulator-always-on;
};
};
};
};
@@ -16,8 +16,12 @@ description:
properties:
compatible:
enum:
- qnap,ts233-mcu
- qnap,ts433-mcu
nvmem-layout:
$ref: /schemas/nvmem/layouts/nvmem-layout.yaml
patternProperties:
"^fan-[0-9]+$":
$ref: /schemas/hwmon/fan-common.yaml#
@@ -0,0 +1,86 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/spacemit,p1.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: SpacemiT P1 Power Management Integrated Circuit
maintainers:
- Troy Mitchell <troy.mitchell@linux.spacemit.com>
description:
P1 is an I2C-controlled PMIC produced by SpacemiT. It implements six
constant-on-time buck converters and twelve low-dropout regulators.
It also contains a load switch, watchdog timer, real-time clock, eight
12-bit ADC channels, and six GPIOs. Additional details are available
in the "Power Stone/P1" section at the following link.
https://developer.spacemit.com/documentation
properties:
compatible:
const: spacemit,p1
reg:
maxItems: 1
interrupts:
maxItems: 1
vin-supply:
description: Input supply phandle.
regulators:
type: object
patternProperties:
"^(buck[1-6]|aldo[1-4]|dldo[1-7])$":
type: object
$ref: /schemas/regulator/regulator.yaml#
unevaluatedProperties: false
unevaluatedProperties: false
required:
- compatible
- reg
- interrupts
unevaluatedProperties: false
examples:
- |
i2c {
#address-cells = <1>;
#size-cells = <0>;
pmic@41 {
compatible = "spacemit,p1";
reg = <0x41>;
interrupts = <64>;
regulators {
buck1 {
regulator-name = "buck1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3450000>;
regulator-ramp-delay = <5000>;
regulator-always-on;
};
aldo1 {
regulator-name = "aldo1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
};
dldo1 {
regulator-name = "dldo1";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
};
};
};
};
@@ -79,6 +79,7 @@ select:
- marvell,armada-3700-cpu-misc
- marvell,armada-3700-nb-pm
- marvell,armada-3700-avs
- marvell,armada-3700-usb2-host-device-misc
- marvell,armada-3700-usb2-host-misc
- marvell,dove-global-config
- mediatek,mt2701-pctl-a-syscfg
@@ -90,6 +91,7 @@ select:
- mediatek,mt8173-pctl-a-syscfg
- mediatek,mt8365-syscfg
- microchip,lan966x-cpu-syscon
- microchip,mpfs-control-scb
- microchip,mpfs-sysreg-scb
- microchip,sam9x60-sfr
- microchip,sama7d65-ddr3phy
@@ -185,6 +187,7 @@ properties:
- marvell,armada-3700-cpu-misc
- marvell,armada-3700-nb-pm
- marvell,armada-3700-avs
- marvell,armada-3700-usb2-host-device-misc
- marvell,armada-3700-usb2-host-misc
- marvell,dove-global-config
- mediatek,mt2701-pctl-a-syscfg
@@ -197,6 +200,7 @@ properties:
- mediatek,mt8365-infracfg-nao
- mediatek,mt8365-syscfg
- microchip,lan966x-cpu-syscon
- microchip,mpfs-control-scb
- microchip,mpfs-sysreg-scb
- microchip,sam9x60-sfr
- microchip,sama7d65-ddr3phy
@@ -0,0 +1,117 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/ti,bq25703a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: BQ25703A Charger Manager/Buck/Boost Converter
maintainers:
- Chris Morgan <macromorgan@hotmail.com>
allOf:
- $ref: /schemas/power/supply/power-supply.yaml#
properties:
compatible:
const: ti,bq25703a
reg:
const: 0x6b
input-current-limit-microamp:
description:
Maximum total input current allowed used for both charging and
powering the device.
minimum: 50000
maximum: 6400000
default: 3250000
interrupts:
maxItems: 1
monitored-battery:
description:
A minimum of constant-charge-current-max-microamp,
constant-charge-voltage-max-microvolt, and
voltage-min-design-microvolt are required.
regulators:
type: object
additionalProperties: false
description:
Boost converter regulator output of bq257xx.
properties:
vbus:
type: object
$ref: /schemas/regulator/regulator.yaml
additionalProperties: false
properties:
regulator-name: true
regulator-min-microamp:
minimum: 0
maximum: 6350000
regulator-max-microamp:
minimum: 0
maximum: 6350000
regulator-min-microvolt:
minimum: 4480000
maximum: 20800000
regulator-max-microvolt:
minimum: 4480000
maximum: 20800000
enable-gpios:
description:
The BQ25703 may require both a register write and a GPIO
toggle to enable the boost regulator.
required:
- regulator-name
- regulator-min-microamp
- regulator-max-microamp
- regulator-min-microvolt
- regulator-max-microvolt
unevaluatedProperties: false
required:
- compatible
- reg
- input-current-limit-microamp
- monitored-battery
- power-supplies
examples:
- |
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pinctrl/rockchip.h>
i2c {
#address-cells = <1>;
#size-cells = <0>;
bq25703: charger@6b {
compatible = "ti,bq25703a";
reg = <0x6b>;
input-current-limit-microamp = <5000000>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PD5 IRQ_TYPE_LEVEL_LOW>;
monitored-battery = <&battery>;
power-supplies = <&fusb302>;
regulators {
usb_otg_vbus: vbus {
enable-gpios = <&gpio4 RK_PA6 GPIO_ACTIVE_HIGH>;
regulator-max-microamp = <960000>;
regulator-max-microvolt = <5088000>;
regulator-min-microamp = <512000>;
regulator-min-microvolt = <4992000>;
regulator-name = "usb_otg_vbus";
};
};
};
};
...
@@ -41,6 +41,7 @@ properties:
system-power-controller: true
gpio-controller: true
gpio-line-names: true
'#gpio-cells':
const: 2
+272 -45
View File
@@ -11,9 +11,9 @@ maintainers:
description: |
The TWLs are Integrated Power Management Chips.
Some version might contain much more analog function like
Some versions might contain much more analog functions like
USB transceiver or Audio amplifier.
These chips are connected to an i2c bus.
These chips are connected to an I2C bus.
allOf:
- if:
@@ -49,33 +49,14 @@ allOf:
ti,retain-on-reset: false
properties:
madc:
type: object
$ref: /schemas/iio/adc/ti,twl4030-madc.yaml
unevaluatedProperties: false
charger:
type: object
$ref: /schemas/power/supply/twl4030-charger.yaml
unevaluatedProperties: false
pwrbutton:
type: object
additionalProperties: false
properties:
compatible:
const: ti,twl4030-pwrbutton
interrupts:
items:
- items:
const: 8
gpadc: false
usb-comparator: false
watchdog:
type: object
additionalProperties: false
properties:
compatible:
const: ti,twl4030-wdt
- if:
properties:
compatible:
@@ -106,15 +87,30 @@ allOf:
properties:
charger:
type: object
properties:
compatible:
const: ti,twl6030-charger
$ref: /schemas/power/supply/ti,twl6030-charger.yaml
unevaluatedProperties: false
gpadc:
type: object
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:
@@ -142,23 +138,36 @@ allOf:
properties:
charger:
type: object
properties:
compatible:
items:
- const: ti,twl6032-charger
- const: ti,twl6030-charger
$ref: /schemas/power/supply/ti,twl6030-charger.yaml
unevaluatedProperties: false
gpadc:
type: object
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
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
@@ -181,28 +190,221 @@ properties:
"#clock-cells":
const: 1
clocks:
maxItems: 1
clock-names:
const: fck
charger:
type: object
additionalProperties: true
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:
@@ -211,12 +413,13 @@ patternProperties:
# 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.
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
@@ -271,6 +474,16 @@ examples:
compatible = "ti,twl6030-vmmc";
ti,retain-on-reset;
};
pwm {
compatible = "ti,twl6030-pwm";
#pwm-cells = <2>;
};
pwmled {
compatible = "ti,twl6030-pwmled";
#pwm-cells = <2>;
};
};
};
@@ -325,6 +538,20 @@ examples:
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>;
};
};
};
...

Some files were not shown because too many files have changed in this diff Show More