diff mbox series

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

Message ID 20211217170507.2843568-1-thierry.reding@gmail.com
State Changes Requested, archived
Headers show
Series [1/6] dt-bindings: regulator: palmas: Convert to json-schema | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 24 warnings, 772 lines checked
robh/dtbs-check success
robh/dt-meta-schema fail build log

Commit Message

Thierry Reding Dec. 17, 2021, 5:05 p.m. UTC
From: Thierry Reding <treding@nvidia.com>

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

Signed-off-by: Thierry Reding <treding@nvidia.com>
---
 .../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

Comments

Rob Herring Dec. 18, 2021, 6:08 p.m. UTC | #1
On Fri, 17 Dec 2021 18:05:02 +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the Texas Instruments Palmas bindings from the free-form text
> format to json-schema.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../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
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/regulator/ti,palmas-pmic.example.dt.yaml: pmic: 'interrupts-name', 'ti,system-power-controller' do not match any of the regexes: '^ldo([1-9]|ln|usb)-in-supply$', '^smps(([1-9]|10)-in-)|(smps10-out2-)supply$', 'pinctrl-[0-9]+'
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/regulator/ti,palmas-pmic.yaml
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dts:27.13-26: Warning (reg_format): /example-0/i2c/pmic@48:reg: property has invalid length (4 bytes) (#address-cells == 1, #size-cells == 1)
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (pci_device_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (pci_device_bus_num): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (simple_bus_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dts:21.13-39.11: Warning (i2c_bus_bridge): /example-0/i2c: incorrect #size-cells for I2C bus
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (i2c_bus_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (i2c_bus_reg): Failed prerequisite 'i2c_bus_bridge'
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (spi_bus_reg): Failed prerequisite 'reg_format'
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dts:25.19-38.13: Warning (avoid_default_addr_size): /example-0/i2c/pmic@48: Relying on default #size-cells value
Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size'
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: pmic@48: compatible:0: 'ti,palmas' is not one of ['ti,twl6035', 'ti,twl6036', 'ti,twl6037', 'ti,tps65913', 'ti,tps65914', 'ti,tps80036', 'ti,tps659038', 'ti,tps65917']
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mfd/ti,palmas.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: pmic@48: compatible: ['ti,palmas'] is too short
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mfd/ti,palmas.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: pmic@48: 'interrupt-controller' is a required property
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mfd/ti,palmas.yaml
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/iio/adc/ti,palmas-gpadc.example.dt.yaml: pmic@48: '#interrupt-cells' is a required property
	From schema: /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/mfd/ti,palmas.yaml

doc reference errors (make refcheckdocs):
Warning: Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.yaml references a file that doesn't exist: Documentation/devicetree/bindings/mfd/palmas.txt
Documentation/devicetree/bindings/input/ti,palmas-pwrbutton.yaml: Documentation/devicetree/bindings/mfd/palmas.txt

See https://patchwork.ozlabs.org/patch/1570213

This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Rob Herring Dec. 21, 2021, 2:15 p.m. UTC | #2
On Fri, Dec 17, 2021 at 06:05:02PM +0100, Thierry Reding wrote:
> From: Thierry Reding <treding@nvidia.com>
> 
> Convert the Texas Instruments Palmas bindings from the free-form text
> format to json-schema.
> 
> Signed-off-by: Thierry Reding <treding@nvidia.com>
> ---
>  .../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@baylibre.com>
> +  - Stephen Boyd <sboyd@kernel.org>
> +
> +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@samsung.com>
> +  - Chanwoo Choi <cw00.choi@samsung.com>
> +
> +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.

maxItems: 1

> +
> +  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@linaro.org>
> +
> +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@ti.com>
> +
> +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@linaro.org>
> +
> +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

Don't use relative paths. /schemas/pinctrl/...

> +
> +  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@linaro.org>
> +
> +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

Are you sure you still need this? I thought I fixed adding it 
automatically everywhere.

> +
> +  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@kernel.org>
> +
> +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:

$defs instead.

> +  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@bootlin.com>
> +
> +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 {

pmic@58

Though I prefer if we just have 1 example in the MFD binding instead of 
these partial ones scattered about.

> +        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
> 
>
diff mbox series

Patch

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@baylibre.com>
+  - Stephen Boyd <sboyd@kernel.org>
+
+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@samsung.com>
+  - Chanwoo Choi <cw00.choi@samsung.com>
+
+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@linaro.org>
+
+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@ti.com>
+
+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@linaro.org>
+
+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@linaro.org>
+
+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@kernel.org>
+
+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@bootlin.com>
+
+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;
+        };
+      };
+    };