Re: [PATCH] dt-bindings: mfd: twl: Convert trivial subdevices to json-schema

Rob Herring
2024-03-18T15:07:52Z

On Mon, Mar 18, 2024 at 01:40:50PM +0100, Andreas Kemnade wrote:
> Convert subdevices with just an interrupt and compatbile to
> json-schema and wire up already converted subdevices.
> RTC is available in all variants, so allow it unconditionally
> GPADC binding for TWL603X uses two different compatibles, so
> specify just the compatible and not include it.
>
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> ---
> Well, my name is in that yaml file, so I should take care of my sheep,
> in case a step-by-step approach is acceptable this is at least a
> checkpoint for me that I understand multi file binding mechanics
> properly.
>
> .../bindings/input/twl4030-pwrbutton.txt | 21 ------
> .../devicetree/bindings/mfd/ti,twl.yaml | 68 +++++++++++++++++++
> .../devicetree/bindings/rtc/twl-rtc.txt | 11 ---
> .../bindings/watchdog/twl4030-wdt.txt | 10 ---
> 4 files changed, 68 insertions(+), 42 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt
> delete mode 100644 Documentation/devicetree/bindings/rtc/twl-rtc.txt
> delete mode 100644 Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt
>
> diff --git a/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt b/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt
> deleted file mode 100644
> index 6c201a2ba8acf..0000000000000
> --- a/Documentation/devicetree/bindings/input/twl4030-pwrbutton.txt
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -Texas Instruments TWL family (twl4030) pwrbutton module
> -
> -This module is part of the TWL4030. For more details about the whole
> -chip see Documentation/devicetree/bindings/mfd/ti,twl.yaml.
> -
> -This module provides a simple power button event via an Interrupt.
> -
> -Required properties:
> -- compatible: should be one of the following
> - - "ti,twl4030-pwrbutton": For controllers compatible with twl4030
> -- interrupts: should be one of the following
> - - <8>: For controllers compatible with twl4030
> -
> -Example:
> -
> -&twl {
> - twl_pwrbutton: pwrbutton {
> - compatible = "ti,twl4030-pwrbutton";
> - interrupts = <8>;
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/mfd/ti,twl.yaml b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> index 52ed228fb1e7e..03d725d5294db 100644
> --- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> +++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> @@ -15,6 +15,65 @@ description: |
> USB transceiver or Audio amplifier.
> These chips are connected to an i2c bus.
>
> +allOf:
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: ti,twl4030
> + then:
> + properties:
> + madc:
> + type: object
> + $ref: ../iio/adc/ti,twl4030-madc.yaml

Use 'absolute' paths: /schemas/iio/...

> +

Drop blank line

> + unevaluatedProperties: false

blank line between DT properties

> + bci:
> + type: object
> + $ref: ../power/supply/twl4030-charger.yaml
> +
> + unevaluatedProperties: false
> + pwrbutton:
> + type: object
> + properties:
> + compatible:
> + const: ti,twl4030-pwrbutton
> + interrupts:
> + const: 8

As 'interrupts' is a matrix, this needs to be:

interrupts:
items:
- items:
- const: 8

> +
> + additionalProperties: false

In the indented cases, it is preferred to put this before 'properties'.

> + watchdog:
> + type: object
> + properties:
> + compatible:
> + const: ti,twl4030-wdt
> +
> + additionalProperties: false
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: ti,twl6030
> + then:
> + properties:
> + gpadc:
> + type: object
> + properties:
> + compatible:
> + const: ti,twl6030-gpadc
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: ti,twl6032
> + then:
> + properties:
> + gpadc:
> + type: object
> + properties:
> + compatible:
> + const: ti,twl6032-gpadc
> +
> properties:
> compatible:
> description:
> @@ -42,6 +101,15 @@ properties:
> "#clock-cells":
> const: 1
>
> + rtc:
> + type: object
> + properties:
> + compatible:
> + const: ti,twl4030-rtc
> + interrupts:
> + maxItems: 1
> + additionalProperties: false
> +
> additionalProperties: false
>