[PATCH 1/6] dt-bindings: regulator: palmas: Convert to json-schema

From: Thierry Reding
Date: Fri Dec 17 2021 - 12:05:15 EST


From: Thierry Reding <treding@xxxxxxxxxx>

Convert the Texas Instruments Palmas bindings from the free-form text
format to json-schema.

Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
---
.../clock/clk-palmas-clk32kg-clocks.txt | 35 ----
.../bindings/clock/ti,palmas-clk32k.yaml | 68 ++++++++
.../bindings/extcon/extcon-palmas.txt | 22 ---
.../bindings/extcon/ti,palmas-usb-vid.yaml | 65 ++++++++
.../devicetree/bindings/gpio/gpio-palmas.txt | 27 ---
.../bindings/gpio/ti,palmas-gpio.yaml | 53 ++++++
.../bindings/iio/adc/ti,palmas-gpadc.yaml | 26 ++-
.../bindings/input/ti,palmas-pwrbutton.txt | 35 ----
.../bindings/input/ti,palmas-pwrbutton.yaml | 76 +++++++++
.../devicetree/bindings/mfd/palmas.txt | 52 ------
.../devicetree/bindings/mfd/ti,palmas.yaml | 117 +++++++++++++
.../bindings/pinctrl/pinctrl-palmas.txt | 105 ------------
.../bindings/pinctrl/ti,palmas-pinctrl.yaml | 154 ++++++++++++++++++
.../bindings/regulator/palmas-pmic.txt | 89 ----------
.../bindings/regulator/ti,palmas-pmic.yaml | 144 ++++++++++++++++
.../devicetree/bindings/rtc/rtc-palmas.txt | 32 ----
.../bindings/rtc/ti,palmas-rtc.yaml | 62 +++++++
17 files changed, 756 insertions(+), 406 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/clock/clk-palmas-clk32kg-clocks.txt
create mode 100644 Documentation/devicetree/bindings/clock/ti,palmas-clk32k.yaml
delete mode 100644 Documentation/devicetree/bindings/extcon/extcon-palmas.txt
create mode 100644 Documentation/devicetree/bindings/extcon/ti,palmas-usb-vid.yaml
delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-palmas.txt
create mode 100644 Documentation/devicetree/bindings/gpio/ti,palmas-gpio.yaml
delete mode 100644 Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt
create mode 100644 Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.yaml
delete mode 100644 Documentation/devicetree/bindings/mfd/palmas.txt
create mode 100644 Documentation/devicetree/bindings/mfd/ti,palmas.yaml
delete mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt
create mode 100644 Documentation/devicetree/bindings/pinctrl/ti,palmas-pinctrl.yaml
delete mode 100644 Documentation/devicetree/bindings/regulator/palmas-pmic.txt
create mode 100644 Documentation/devicetree/bindings/regulator/ti,palmas-pmic.yaml
delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-palmas.txt
create mode 100644 Documentation/devicetree/bindings/rtc/ti,palmas-rtc.yaml

diff --git a/Documentation/devicetree/bindings/clock/clk-palmas-clk32kg-clocks.txt b/Documentation/devicetree/bindings/clock/clk-palmas-clk32kg-clocks.txt
deleted file mode 100644
index 4208886d834a..000000000000
--- a/Documentation/devicetree/bindings/clock/clk-palmas-clk32kg-clocks.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-* Palmas 32KHz clocks *
-
-Palmas device has two clock output pins for 32KHz, KG and KG_AUDIO.
-
-This binding uses the common clock binding ./clock-bindings.txt.
-
-Required properties:
-- compatible : "ti,palmas-clk32kg" for clk32kg clock
- "ti,palmas-clk32kgaudio" for clk32kgaudio clock
-- #clock-cells : shall be set to 0.
-
-Optional property:
-- ti,external-sleep-control: The external enable input pins controlled the
- enable/disable of clocks. The external enable input pins ENABLE1,
- ENABLE2 and NSLEEP. The valid values for the external pins are:
- PALMAS_EXT_CONTROL_PIN_ENABLE1 for ENABLE1 pin
- PALMAS_EXT_CONTROL_PIN_ENABLE2 for ENABLE2 pin
- PALMAS_EXT_CONTROL_PIN_NSLEEP for NSLEEP pin
- Option 0 or missing this property means the clock is enabled/disabled
- via register access and these pins do not have any control.
- The macros of external control pins for DTS is defined at
- dt-bindings/mfd/palmas.h
-
-Example:
- #include <dt-bindings/mfd/palmas.h>
- ...
- palmas: tps65913@58 {
- ...
- clk32kg: palmas_clk32k@0 {
- compatible = "ti,palmas-clk32kg";
- #clock-cells = <0>;
- ti,external-sleep-control = <PALMAS_EXT_CONTROL_PIN_NSLEEP>;
- };
- ...
- };
diff --git a/Documentation/devicetree/bindings/clock/ti,palmas-clk32k.yaml b/Documentation/devicetree/bindings/clock/ti,palmas-clk32k.yaml
new file mode 100644
index 000000000000..c24887e76481
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/ti,palmas-clk32k.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/clock/ti,palmas-clk32k.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs (clocks)
+
+maintainers:
+ - Michael Turquette <mturquette@xxxxxxxxxxxx>
+ - Stephen Boyd <sboyd@xxxxxxxxxx>
+
+description:
+ Palmas devices have two clock output pins for 32KHz, KG and KG_AUDIO. This binding uses the
+ common clock binding ./clock-bindings.txt.
+
+properties:
+ compatible:
+ enum:
+ - ti,palmas-clk32kg
+ - ti,palmas-clk32kgaudio
+
+ "#clock-cells":
+ const: 0
+
+ ti,external-sleep-control:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ The external enable input pins controlled the enable/disable of clocks. The external enable
+ input pins ENABLE1, ENABLE2 and NSLEEP. The valid values for the external pins are:
+
+ PALMAS_EXT_CONTROL_PIN_ENABLE1 for ENABLE1 pin
+ PALMAS_EXT_CONTROL_PIN_ENABLE2 for ENABLE2 pin
+ PALMAS_EXT_CONTROL_PIN_NSLEEP for NSLEEP pin
+
+ Option 0 or missing this property means the clock is enabled/disabled via register access
+ and these pins do not have any control. The macros of external control pins for DTS are
+ defined in dt-bindings/mfd/palmas.h.
+ enum: [ 0, 1, 2, 3 ]
+
+additionalProperties: false
+
+required:
+ - compatible
+ - "#clock-cells"
+
+examples:
+ - |
+ #include <dt-bindings/mfd/palmas.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ tps65913@58 {
+ compatible = "ti,tps65913", "ti,palmas";
+ reg = <0x58>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ clk32k {
+ compatible = "ti,palmas-clk32kg";
+ #clock-cells = <0>;
+ ti,external-sleep-control = <PALMAS_EXT_CONTROL_PIN_NSLEEP>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/extcon/extcon-palmas.txt b/Documentation/devicetree/bindings/extcon/extcon-palmas.txt
deleted file mode 100644
index f61d5af44a27..000000000000
--- a/Documentation/devicetree/bindings/extcon/extcon-palmas.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-EXTCON FOR PALMAS/TWL CHIPS
-
-PALMAS USB COMPARATOR
-Required Properties:
- - compatible: should contain one of:
- * "ti,palmas-usb-vid".
- * "ti,twl6035-usb-vid".
- * "ti,palmas-usb" (DEPRECATED - use "ti,palmas-usb-vid").
- * "ti,twl6035-usb" (DEPRECATED - use "ti,twl6035-usb-vid").
-
-Optional Properties:
- - ti,wakeup : To enable the wakeup comparator in probe
- - ti,enable-id-detection: Perform ID detection. If id-gpio is specified
- it performs id-detection using GPIO else using OTG core.
- - ti,enable-vbus-detection: Perform VBUS detection.
- - id-gpio: gpio for GPIO ID detection. See gpio binding.
- - debounce-delay-ms: debounce delay for GPIO ID pin in milliseconds.
-
-palmas-usb {
- compatible = "ti,twl6035-usb", "ti,palmas-usb";
- ti,wakeup;
-};
diff --git a/Documentation/devicetree/bindings/extcon/ti,palmas-usb-vid.yaml b/Documentation/devicetree/bindings/extcon/ti,palmas-usb-vid.yaml
new file mode 100644
index 000000000000..29cd9bd68676
--- /dev/null
+++ b/Documentation/devicetree/bindings/extcon/ti,palmas-usb-vid.yaml
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/extcon/ti,palmas-usb-vid.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs (extcon)
+
+maintainers:
+ - MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
+ - Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
+
+properties:
+ compatible:
+ oneOf:
+ - const: ti,palmas-usb-vid
+ - const: ti,twl6035-usb-vid
+ - const: ti,palmas-usb
+ deprecated: true
+ - const: ti,twl6035-usb
+ deprecated: true
+
+ ti,wakeup:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: To enable the wakeup comparator in probe
+
+ ti,enable-id-detection:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Perform ID detection. If id-gpios is specified it performs id-detection using
+ GPIO else using OTG core.
+
+ ti,enable-vbus-detection:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Perform VBUS detection.
+
+ id-gpios:
+ description: GPIO for GPIO ID detection. See GPIO bindings.
+
+ debounce-delay-ms:
+ description: debounce delay for GPIO ID pin in milliseconds
+
+additionalProperties: false
+
+required:
+ - compatible
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@38 {
+ compatible = "ti,tps65913", "ti,palmas";
+ reg = <0x38>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ palmas_usb {
+ compatible = "ti,palmas-usb-vid";
+ ti,wakeup;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt b/Documentation/devicetree/bindings/gpio/gpio-palmas.txt
deleted file mode 100644
index 08b5b52a3ae0..000000000000
--- a/Documentation/devicetree/bindings/gpio/gpio-palmas.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-Palmas GPIO controller bindings
-
-Required properties:
-- compatible:
- - "ti,palams-gpio" for palma series of the GPIO controller
- - "ti,tps80036-gpio" for Palma series device TPS80036.
- - "ti,tps65913-gpio" for palma series device TPS65913.
- - "ti,tps65914-gpio" for palma series device TPS65914.
-- #gpio-cells : Should be two.
- - first cell is the gpio pin number
- - second cell is used to specify the gpio polarity:
- 0 = active high
- 1 = active low
-- gpio-controller : Marks the device node as a GPIO controller.
-
-Note: This gpio node will be sub node of palmas node.
-
-Example:
- palmas: tps65913@58 {
- :::::::::::
- palmas_gpio: palmas_gpio {
- compatible = "ti,palmas-gpio";
- gpio-controller;
- #gpio-cells = <2>;
- };
- :::::::::::
- };
diff --git a/Documentation/devicetree/bindings/gpio/ti,palmas-gpio.yaml b/Documentation/devicetree/bindings/gpio/ti,palmas-gpio.yaml
new file mode 100644
index 000000000000..46cd30b5541a
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/ti,palmas-gpio.yaml
@@ -0,0 +1,53 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/gpio/ti,palmas-gpio.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs (GPIO)
+
+maintainers:
+ - Linus Walleij <linus.walleij@xxxxxxxxxx>
+
+properties:
+ compatible:
+ enum:
+ - ti,palmas-gpio
+ - ti,tps80036-gpio
+ - ti,tps65913-gpio
+ - ti,tps65914-gpio
+
+ # from gpio.yaml
+ gpio-controller: true
+ "#gpio-cells": true
+
+allOf:
+ - $ref: gpio.yaml
+
+additionalProperties: false
+
+required:
+ - compatible
+ - gpio-controller
+ - "#gpio-cells"
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@58 {
+ compatible = "ti,tps65913", "ti,palmas";
+ reg = <0x58>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ palmas_gpio {
+ compatible = "ti,palmas-gpio";
+ gpio-controller;
+ #gpio-cells = <2>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.yaml b/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.yaml
index 7b895784e008..a1f4271b9aa6 100644
--- a/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.yaml
@@ -70,16 +70,24 @@ required:
examples:
- |
#include <dt-bindings/clock/mt8183-clk.h>
- pmic {
- compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
+
+ i2c {
+ #address-cells = <1>;
+ #size-cels = <0>;
+
+ pmic@48 {
+ compatible = "ti,palmas";
+ reg = <0x48>;
+
adc {
- compatible = "ti,palmas-gpadc";
- interrupts = <18 0
- 16 0
- 17 0>;
- #io-channel-cells = <1>;
- ti,channel0-current-microamp = <5>;
- ti,channel3-current-microamp = <10>;
+ compatible = "ti,palmas-gpadc";
+ interrupts = <18 0>,
+ <16 0>,
+ <17 0>;
+ #io-channel-cells = <1>;
+ ti,channel0-current-microamp = <5>;
+ ti,channel3-current-microamp = <10>;
};
+ };
};
...
diff --git a/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt
deleted file mode 100644
index c829e18e1a05..000000000000
--- a/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-Texas Instruments Palmas family power button module
-
-This module is part of the Palmas family of PMICs. For more details
-about the whole chip see:
-Documentation/devicetree/bindings/mfd/palmas.txt.
-
-This module provides a simple power button event via an Interrupt.
-
-Required properties:
-- compatible: should be one of the following
- - "ti,palmas-pwrbutton": For Palmas compatible power on button
-- interrupts: Interrupt number of power button submodule on device.
-
-Optional Properties:
-
-- ti,palmas-long-press-seconds: Duration in seconds which the power
- button should be kept pressed for Palmas to power off automatically.
- NOTE: This depends on OTP support and POWERHOLD signal configuration
- on platform. Valid values are 6, 8, 10 and 12.
-- ti,palmas-pwron-debounce-milli-seconds: Duration in milliseconds
- which the power button should be kept pressed for Palmas to register
- a press for debouncing purposes. NOTE: This depends on specific
- Palmas variation capability. Valid values are 15, 100, 500 and 1000.
-
-Example:
-
-&palmas {
- palmas_pwr_button: pwrbutton {
- compatible = "ti,palmas-pwrbutton";
- interrupt-parent = <&tps659038>;
- interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
- ti,palmas-long-press-seconds = <12>;
- ti,palmas-pwron-debounce-milli-seconds = <15>;
- };
-};
diff --git a/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.yaml b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.yaml
new file mode 100644
index 000000000000..c248ed1d0e67
--- /dev/null
+++ b/Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.yaml
@@ -0,0 +1,76 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/input/ti,palmas-pwrbutton.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs (power button)
+
+maintainers:
+ - Nishanth Menon <nm@xxxxxx>
+
+description: |
+ This module is part of the Palmas family of PMICs. For more details about the whole chip see:
+
+ Documentation/devicetree/bindings/mfd/palmas.txt
+
+ This module provides a simple power button event via an interrupt.
+
+properties:
+ compatible:
+ const: ti,palmas-pwrbutton
+
+ interrupts:
+ maxItems: 1
+
+ wakeup-source:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Enables wake up of host system on power button press.
+
+ ti,palmas-long-press-seconds:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Duration in seconds which the power button should be kept pressed for Palmas to power off
+ automatically.
+
+ NOTE: This depends on OTP support and POWERHOLD signal configuration on platform.
+ enum: [ 6, 8, 10, 12 ]
+
+ ti,palmas-pwron-debounce-milli-seconds:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: |
+ Duration in milliseconds which the power button should be kept pressed for Palmas to
+ register a press for debouncing purposes. NOTE: This depends on specific Palmas variation
+ capability.
+ enum: [ 15, 100, 500, 1000 ]
+
+additionalProperties: false
+
+required:
+ - compatible
+ - interrupts
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@48 {
+ compatible = "ti,tps65913", "ti,palmas";
+ reg = <0x48>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ pwrbutton {
+ compatible = "ti,palmas-pwrbutton";
+ interrupt-parent = <&tps659038>;
+ interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
+ ti,palmas-long-press-seconds = <12>;
+ ti,palmas-pwron-debounce-milli-seconds = <15>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/mfd/palmas.txt b/Documentation/devicetree/bindings/mfd/palmas.txt
deleted file mode 100644
index e736ab3012a6..000000000000
--- a/Documentation/devicetree/bindings/mfd/palmas.txt
+++ /dev/null
@@ -1,52 +0,0 @@
-* palmas device tree bindings
-
-The TI palmas family current members :-
-twl6035 (palmas)
-twl6037 (palmas)
-tps65913 (palmas)
-tps65914 (palmas)
-tps659038
-tps65917
-
-Required properties:
-- compatible : Should be from the list
- ti,twl6035
- ti,twl6036
- ti,twl6037
- ti,tps65913
- ti,tps65914
- ti,tps80036
- ti,tps659038
- ti,tps65917
-and also the generic series names
- ti,palmas
-- interrupt-controller : palmas has its own internal IRQs
-- #interrupt-cells : should be set to 2 for IRQ number and flags
- The first cell is the IRQ number.
- The second cell is the flags, encoded as the trigger masks from
- Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
-
-Optional properties:
- ti,mux-padX : set the pad register X (1-2) to the correct muxing for the
- hardware, if not set will use muxing in OTP.
-
-Example:
-
-palmas {
- compatible = "ti,twl6035", "ti,palmas";
- reg = <0x48>
- interrupt-parent = <&intc>;
- interrupt-controller;
- #interrupt-cells = <2>;
-
- ti,mux-pad1 = <0>;
- ti,mux-pad2 = <0>;
-
- #address-cells = <1>;
- #size-cells = <0>;
-
- pmic {
- compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
- ....
- };
-}
diff --git a/Documentation/devicetree/bindings/mfd/ti,palmas.yaml b/Documentation/devicetree/bindings/mfd/ti,palmas.yaml
new file mode 100644
index 000000000000..3d8c823bba13
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/ti,palmas.yaml
@@ -0,0 +1,117 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ti,palmas.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs
+
+maintainers:
+ - Lee Jones <lee.jones@xxxxxxxxxx>
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - ti,twl6035
+ - ti,twl6036
+ - ti,twl6037
+ - ti,tps65913
+ - ti,tps65914
+ - ti,tps80036
+ - ti,tps659038
+ - ti,tps65917
+ - const: ti,palmas
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ interrupt-controller:
+ description: The Palmas chip has its own internal IRQs.
+
+ "#interrupt-cells":
+ description: The first cell is the IRQ number and the second cell is the flags, encoded as the
+ trigger mask from ../interrupt-controller/interrupts.txt.
+ const: 2
+
+ ti,mux-pad1:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Set the pad register 1 to the correct muxing for the hardware. Otherwise the
+ muxing will be obtained from OTP.
+
+ ti,mux-pad2:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Set the pad register 2 to the correct muxing for the hardware. Otherwise the
+ muxing will be obtained from OTP.
+
+ ti,power-ctrl:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Specifies the value to program into the POWER_CTRL register.
+
+ ti,system-power-controller:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Specifies whether or not this PMIC is controlling the system power.
+
+ pinctrl:
+ $ref: ../pinctrl/ti,palmas-pinctrl.yaml
+
+ pwrbutton:
+ $ref: ../input/ti,palmas-pwrbutton.yaml
+
+ rtc:
+ $ref: ../rtc/ti,palmas-rtc.yaml
+
+patternProperties:
+ "^(palmas_)?adc$":
+ $ref: ../iio/adc/ti,palmas-gpadc.yaml
+
+ "^(palmas_)?(clk32k|clk32kg|clk32kgaudio)$":
+ $ref: ../clock/ti,palmas-clk32k.yaml
+
+ "^(palmas_)?gpio$":
+ $ref: ../gpio/ti,palmas-gpio.yaml
+
+ "^(palmas_)?pinmux$":
+ $ref: ../pinctrl/ti,palmas-pinctrl.yaml
+
+ "^(palmas_)?pmic$":
+ $ref: ../regulator/ti,palmas-pmic.yaml
+
+ "^(palmas_)?usb$":
+ $ref: ../extcon/ti,palmas-usb-vid.yaml
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - interrupt-controller
+ - "#interrupt-cells"
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@48 {
+ compatible = "ti,twl6035", "ti,palmas";
+ reg = <0x48>;
+ interrupts = <16 IRQ_TYPE_LEVEL_LOW>;
+ interrupt-parent = <&intc>;
+ interrupt-controller;
+ #interrupt-cells = <2>;
+
+ ti,mux-pad1 = <0>;
+ ti,mux-pad2 = <0>;
+
+ pmic {
+ compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt
deleted file mode 100644
index c28d4eb83b76..000000000000
--- a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt
+++ /dev/null
@@ -1,105 +0,0 @@
-Palmas Pincontrol bindings
-
-The pins of Palmas device can be set on different option and provides
-the configuration for Pull UP/DOWN, open drain etc.
-
-Required properties:
-- compatible: It must be one of following:
- - "ti,palmas-pinctrl" for Palma series of the pincontrol.
- - "ti,tps65913-pinctrl" for Palma series device TPS65913.
- - "ti,tps80036-pinctrl" for Palma series device TPS80036.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-Palmas's pin configuration nodes act as a container for an arbitrary number of
-subnodes. Each of these subnodes represents some desired configuration for a
-list of pins. This configuration can include the mux function to select on
-those pin(s), and various pin configuration parameters, such as pull-up,
-open drain.
-
-The name of each subnode is not important; all subnodes should be enumerated
-and processed purely based on their content.
-
-Each subnode only affects those parameters that are explicitly listed. In
-other words, a subnode that lists a mux function but no pin configuration
-parameters implies no information about any pin configuration parameters.
-Similarly, a pin subnode that describes a pullup parameter implies no
-information about e.g. the mux function.
-
-Optional properties:
-- ti,palmas-enable-dvfs1: Enable DVFS1. Configure pins for DVFS1 mode.
- Selection primary or secondary function associated to I2C2_SCL_SCE,
- I2C2_SDA_SDO pin/pad for DVFS1 interface
-- ti,palmas-enable-dvfs2: Enable DVFS2. Configure pins for DVFS2 mode.
- Selection primary or secondary function associated to GPADC_START
- and SYSEN2 pin/pad for DVFS2 interface
-- ti,palmas-override-powerhold: This is applicable for PMICs for which
- GPIO7 is configured in POWERHOLD mode which has higher priority
- over DEV_ON bit and keeps the PMIC supplies on even after the DEV_ON
- bit is turned off. This property enables driver to over ride the
- POWERHOLD value to GPIO7 so as to turn off the PMIC in power off
- scenarios. So for GPIO7 if ti,palmas-override-powerhold is set
- then the GPIO_7 field should never be muxed to anything else.
- It should be set to POWERHOLD by default and only in case of
- power off scenarios the driver will over ride the mux value.
-
-This binding uses the following generic properties as defined in
-pinctrl-bindings.txt:
-
-Required: pins
-Options: function, bias-disable, bias-pull-up, bias-pull-down,
- drive-open-drain.
-
-Note that many of these properties are only valid for certain specific pins.
-See the Palmas device datasheet for complete details regarding which pins
-support which functionality.
-
-Valid values for pin names are:
- gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, gpio9,
- gpio10, gpio11, gpio12, gpio13, gpio14, gpio15, vac, powergood,
- nreswarm, pwrdown, gpadc_start, reset_in, nsleep, enable1, enable2,
- int.
-
-Valid value of function names are:
- gpio, led, pwm, regen, sysen, clk32kgaudio, id, vbus_det, chrg_det,
- vac, vacok, powergood, usb_psel, msecure, pwrhold, int, nreswarm,
- simrsto, simrsti, low_vbat, wireless_chrg1, rcm, pwrdown, gpadc_start,
- reset_in, nsleep, enable.
-
-There are 4 special functions: opt0, opt1, opt2 and opt3. If any of these
-functions is selected then directly pins register will be written with 0, 1, 2
-or 3 respectively if it is valid for that pins or list of pins.
-
-Example:
- palmas: tps65913 {
- ....
- pinctrl {
- compatible = "ti,tps65913-pinctrl";
- ti,palmas-enable-dvfs1;
- pinctrl-names = "default";
- pinctrl-0 = <&palmas_pins_state>;
-
- palmas_pins_state: pinmux {
- gpio0 {
- pins = "gpio0";
- function = "id";
- bias-pull-up;
- };
-
- vac {
- pins = "vac";
- function = "vacok";
- bias-pull-down;
- };
-
- gpio5 {
- pins = "gpio5";
- function = "opt0";
- drive-open-drain = <1>;
- };
- };
- };
- ....
- };
diff --git a/Documentation/devicetree/bindings/pinctrl/ti,palmas-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/ti,palmas-pinctrl.yaml
new file mode 100644
index 000000000000..63f3b858fd62
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/ti,palmas-pinctrl.yaml
@@ -0,0 +1,154 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/ti,palmas-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs (pin control)
+
+maintainers:
+ - Linus Walleij <linus.walleij@xxxxxxxxxx>
+
+description: The pins of Palmas device can be set on different option and provides the
+ configuration for Pull UP/DOWN, open drain etc.
+
+properties:
+ compatible:
+ enum:
+ - ti,palmas-pinctrl
+ - ti,tps65913-pinctrl
+ - ti,tps80036-pinctrl
+
+ ti,palmas-enable-dvfs1:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Enable DVFS1. Configure pins for DVFS1 mode. Selection primary or secondary
+ function associated to I2C2_SCL_SCE, I2C2_SDA_SDO pin/pad for DVFS1 interface.
+
+ ti,palmas-enable-dvfs2:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Enable DVFS2. Configure pins for DVFS2 mode. Selection primary or secondary
+ function associated to GPADC_START and SYSEN2 pin/pad for DVFS2 interface.
+
+ ti,palmas-override-powerhold:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: This is applicable for PMICs for which GPIO7 is configured in POWERHOLD mode
+ which has higher priority over DEV_ON bit and keeps the PMIC supplies on even after the
+ DEV_ON bit is turned off. This property enables driver to over ride the POWERHOLD value to
+ GPIO7 so as to turn off the PMIC in power off scenarios. So for GPIO7 if
+ ti,palmas-override-powerhold is set then the GPIO_7 field should never be muxed to anything
+ else. It should be set to POWERHOLD by default and only in case of power off scenarios the
+ driver will over ride the mux value.
+
+required:
+ - compatible
+
+additionalProperties:
+ type: object
+ description: |
+ Please refer to pinctrl-bindings.txt in this directory for details of the common pinctrl
+ bindings used by client devices, including the meaning of the phrase "pin configuration node".
+
+ Palmas's pin configuration nodes act as a container for an arbitrary number of subnodes. Each
+ of these subnodes represents some desired configuration for a list of pins. This configuration
+ can include the mux function to select on those pin(s), and various pin configuration
+ parameters, such as pull-up, open drain.
+
+ properties:
+ phandle:
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ additionalProperties:
+ type: object
+ description: |
+ The name of each subnode is not important; all subnodes should be enumerated and processed
+ purely based on their content.
+
+ Each subnode only affects those parameters that are explicitly listed. In other words, a
+ subnode that lists a mux function but no pin configuration parameters implies no information
+ about any pin configuration parameters. Similarly, a pin subnode that describes a pullup
+ parameter implies no information about e.g. the mux function.
+
+ Note that many of these properties are only valid for certain specific pins. See the Palmas
+ device datasheet for complete details regarding which pins support which functionality.
+
+ properties:
+ pins:
+ $ref: /schemas/types.yaml#/definitions/string-array
+ items:
+ enum: [ gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7, gpio8, gpio9, gpio10,
+ gpio11, gpio12, gpio13, gpio14, gpio15, vac, powergood, nreswarm, pwrdown,
+ gpadc_start, reset_in, nsleep, enable1, enable2, int ]
+
+ function:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: Note that the opt0, opt1, opt2 and opt3 functions are special and if any of
+ these functions is selected then directly pins register will be written with 0, 1, 2 or 3,
+ respectively, if the function is valid for that pin or list of pins.
+ enum: [ gpio, led, pwm, regen, sysen, clk32kgaudio, id, vbus_det, chrg_det, vac, vacok,
+ powergood, usb_psel, msecure, pwrhold, int, nreswarm, simrsto, simrsti, low_vbat,
+ wireless_chrg1, rcm, pwrdown, gpadc_start, reset_in, nsleep, enable, opt0, opt1,
+ opt2, opt3 ]
+
+ bias-disable:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: disable bias
+
+ bias-pull-up:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: pull-up bias
+
+ bias-pull-down:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: pull-down bias
+
+ drive-open-drain:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: configure for open drain
+ enum: [ 0, 1 ]
+
+ additionalProperties: false
+
+ required:
+ - pins
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ pmic@58 {
+ compatible = "ti,tps65913", "ti,palmas";
+ reg = <0x58>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ pinctrl {
+ compatible = "ti,tps65913-pinctrl";
+ ti,palmas-enable-dvfs1;
+ pinctrl-names = "default";
+ pinctrl-0 = <&palmas_pins_state>;
+
+ palmas_pins_state: pinmux {
+ gpio0 {
+ pins = "gpio0";
+ function = "id";
+ bias-pull-up;
+ };
+
+ vac {
+ pins = "vac";
+ function = "vacok";
+ bias-pull-down;
+ };
+
+ gpio5 {
+ pins = "gpio5";
+ function = "opt0";
+ drive-open-drain = <1>;
+ };
+ };
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt b/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
deleted file mode 100644
index 84bc76a7c39e..000000000000
--- a/Documentation/devicetree/bindings/regulator/palmas-pmic.txt
+++ /dev/null
@@ -1,89 +0,0 @@
-* palmas regulator IP block devicetree bindings
-
-The tps659038 for the AM57x class have OTP spins that
-have different part numbers but the same functionality. There
-is not a need to add the OTP spins to the palmas driver. The
-spin devices should use the tps659038 as it's compatible value.
-This is the list of those devices:
-tps659037
-
-Required properties:
-- compatible : Should be from the list
- ti,twl6035-pmic
- ti,twl6036-pmic
- ti,twl6037-pmic
- ti,tps65913-pmic
- ti,tps65914-pmic
- ti,tps65917-pmic
- ti,tps659038-pmic
-and also the generic series names
- ti,palmas-pmic
-- interrupts : The interrupt number and the type which can be looked up here:
- arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h
-- interrupts-name: The names of the individual interrupts.
-
-Optional properties:
-- ti,ldo6-vibrator : ldo6 is in vibrator mode
-
-Optional nodes:
-- regulators : Must contain a sub-node per regulator from the list below.
- Each sub-node should contain the constraints and initialization
- information for that regulator. See regulator.txt for a
- description of standard properties for these sub-nodes.
- Additional custom properties are listed below.
-
- For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
- smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
- smps10_out2, smps10_out1, ldo[1-9], ldoln, ldousb.
-
- Optional sub-node properties:
- ti,warm-reset - maintain voltage during warm reset(boolean)
- ti,roof-floor - This takes as optional argument on platform supporting
- the rail from desired external control. If there is no argument then
- it will be assume that it is controlled by NSLEEP pin.
- The valid value for external pins are:
- ENABLE1 then 1,
- ENABLE2 then 2 or
- NSLEEP then 3.
- ti,mode-sleep - mode to adopt in pmic sleep 0 - off, 1 - auto,
- 2 - eco, 3 - forced pwm
- ti,smps-range - OTP has the wrong range set for the hardware so override
- 0 - low range, 1 - high range.
-
-- ti,system-power-controller: Telling whether or not this pmic is controlling
- the system power.
-
-Example:
-
-#include <dt-bindings/interrupt-controller/irq.h>
-
-pmic {
- compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
- interrupt-parent = <&palmas>;
- interrupts = <14 IRQ_TYPE_NONE>;
- interrupts-name = "short-irq";
-
- ti,ldo6-vibrator;
-
- ti,system-power-controller;
-
- regulators {
- smps12_reg : smps12 {
- regulator-name = "smps12";
- regulator-min-microvolt = < 600000>;
- regulator-max-microvolt = <1500000>;
- regulator-always-on;
- regulator-boot-on;
- ti,warm-reset;
- ti,roof-floor = <1>; /* ENABLE1 control */
- ti,mode-sleep = <0>;
- ti,smps-range = <1>;
- };
-
- ldo1_reg: ldo1 {
- regulator-name = "ldo1";
- regulator-min-microvolt = <2800000>;
- regulator-max-microvolt = <2800000>;
- };
- };
-};
diff --git a/Documentation/devicetree/bindings/regulator/ti,palmas-pmic.yaml b/Documentation/devicetree/bindings/regulator/ti,palmas-pmic.yaml
new file mode 100644
index 000000000000..da71e3ebcd32
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/ti,palmas-pmic.yaml
@@ -0,0 +1,144 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/ti,palmas-pmic.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of PMICs regulator IP block
+
+maintainers:
+ - Mark Brown <broonie@xxxxxxxxxx>
+
+description: |
+ The TPS659038 for the AM57x class have OTP spins that have different part numbers but the same
+ functionality. There is not a need to add the OTP spins to the Palmas driver. The spin devices
+ should use the TPS659038 as it's compatible value.
+
+ This is the list of those devices: tps659037
+
+definitions:
+ regulator:
+ type: object
+ properties:
+ ti,warm-reset:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: maintain voltage during warm reset
+
+ ti,roof-floor:
+ description: This takes as optional argument on platform supporting the rail from
+ desired external control. If there is no argument then it will be assume that it is
+ controlled by NSLEEP pin.
+ oneOf:
+ - $ref: /schemas/types.yaml#/definitions/flag
+ - $ref: /schemas/types.yaml#/definitions/uint32
+ #oneOf:
+ # - description: ENABLE1 pin
+ # const: 1
+ # - description: ENABLE2 pin
+ # const: 2
+ # - description: NSLEEP pin
+ # const: 3
+
+ ti,mode-sleep:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Mode to adopt in PMIC sleep.
+ #oneOf:
+ # - description: off
+ # const: 0
+ # - description: auto
+ # const: 1
+ # - description: ECO
+ # const: 2
+ # - description: forced PWM
+ # const: 3
+
+ ti,smps-range:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: OTP has the wrong range set for the hardware so override
+ #oneOf:
+ # - description: low range
+ # const: 0
+ # - description: high range
+ # const: 1
+
+properties:
+ compatible:
+ items:
+ - enum:
+ - ti,twl6035-pmic
+ - ti,twl6036-pmic
+ - ti,twl6037-pmic
+ - ti,tps65913-pmic
+ - ti,tps65914-pmic
+ - ti,tps65917-pmic
+ - ti,tps659038-pmic
+ - const: ti,palmas-pmic
+
+ interrupts:
+ maxItems: 1
+
+ ti,ldo6-vibrator:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Specifies whether LDO6 is in vibrator mode or not.
+
+ regulators:
+ type: object
+ description: |
+ Must contain a sub-node per regulator from the list below. Each sub-node should contain the
+ constraints and initialization information for that regulator. See regulator.txt for a
+ description of standard properties for these sub-nodes. Additional custom properties are
+ listed below.
+
+ patternProperties:
+ "^smps(12|123|3|34|457|6|7|8|9|10_out1|10_out2)$":
+ $ref: "#/definitions/regulator"
+
+ "^ldo[1-9]|ldoln|ldousb$":
+ $ref: "#/definitions/regulator"
+
+patternProperties:
+ "^smps(([1-9]|10)-in-)|(smps10-out2-)supply$":
+ description: Input supply for the corresponding SMPS regulator.
+
+ "^ldo([1-9]|ln|usb)-in-supply$":
+ description: Input supply for the corresponding LDO regulator.
+
+additionalProperties: false
+
+required:
+ - compatible
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/irq.h>
+
+ pmic {
+ compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
+ interrupt-parent = <&palmas>;
+ interrupts = <14 IRQ_TYPE_NONE>;
+ interrupts-name = "short-irq";
+
+ ti,ldo6-vibrator;
+
+ ti,system-power-controller;
+
+ regulators {
+ smps12_reg: smps12 {
+ regulator-name = "smps12";
+ regulator-min-microvolt = < 600000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ regulator-boot-on;
+ ti,warm-reset;
+ ti,roof-floor = <1>; /* ENABLE1 control */
+ ti,mode-sleep = <0>;
+ ti,smps-range = <1>;
+ };
+
+ ldo1_reg: ldo1 {
+ regulator-name = "ldo1";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ };
+ };
+ };
diff --git a/Documentation/devicetree/bindings/rtc/rtc-palmas.txt b/Documentation/devicetree/bindings/rtc/rtc-palmas.txt
deleted file mode 100644
index c6cf37758a77..000000000000
--- a/Documentation/devicetree/bindings/rtc/rtc-palmas.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-Palmas RTC controller bindings
-
-Required properties:
-- compatible:
- - "ti,palmas-rtc" for palma series of the RTC controller
-- interrupts: Interrupt number of RTC submodule on device.
-
-Optional properties:
-
-- ti,backup-battery-chargeable: The Palmas series device like TPS65913 or
- TPS80036 supports the backup battery for powering the RTC when main
- battery is removed or in very low power state. The backup battery
- can be chargeable or non-chargeable. This flag will tells whether
- battery is chargeable or not. If charging battery then driver can
- enable the charging.
-- ti,backup-battery-charge-high-current: Enable high current charging in
- backup battery. Device supports the < 100uA and > 100uA charging.
- The high current will be > 100uA. Absence of this property will
- charge battery to lower current i.e. < 100uA.
-
-Example:
- palmas: tps65913@58 {
- ...
- palmas_rtc: rtc {
- compatible = "ti,palmas-rtc";
- interrupt-parent = <&palmas>;
- interrupts = <8 0>;
- ti,backup-battery-chargeable;
- ti,backup-battery-charge-high-current;
- };
- ...
- };
diff --git a/Documentation/devicetree/bindings/rtc/ti,palmas-rtc.yaml b/Documentation/devicetree/bindings/rtc/ti,palmas-rtc.yaml
new file mode 100644
index 000000000000..f236385d5d66
--- /dev/null
+++ b/Documentation/devicetree/bindings/rtc/ti,palmas-rtc.yaml
@@ -0,0 +1,62 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/rtc/ti,palmas-rtc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Palmas family of Power-Management ICs (RTC)
+
+maintainers:
+ - Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
+
+properties:
+ compatible:
+ const: ti,palmas-rtc
+
+ interrupts:
+ maxItems: 1
+
+ ti,backup-battery-chargeable:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: The Palmas series device like TPS65913 or TPS80036 supports the backup battery
+ for powering the RTC when main battery is removed or in very low power state. The backup
+ battery can be chargeable or non-chargeable. This flag will tells whether battery is
+ chargeable or not. If charging battery then driver can enable the charging.
+
+ ti,backup-battery-charge-high-current:
+ $ref: /schemas/types.yaml#/definitions/flag
+ description: Enable high current charging in backup battery. Device supports the < 100uA and >
+ 100uA charging. The high current will be > 100uA. Absence of this property will charge
+ battery to lower current i.e. < 100uA.
+
+allOf:
+ - $ref: rtc.yaml
+
+additionalProperties: false
+
+required:
+ - compatible
+ - interrupts
+
+examples:
+ - |
+ i2c {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ tps65913@58 {
+ compatible = "ti,tps65913", "ti,palmas";
+ reg = <0x58>;
+
+ #interrupt-cells = <2>;
+ interrupt-controller;
+
+ rtc {
+ compatible = "ti,palmas-rtc";
+ interrupt-parent = <&palmas>;
+ interrupts = <8 0>;
+ ti,backup-battery-chargeable;
+ ti,backup-battery-charge-high-current;
+ };
+ };
+ };
--
2.34.1