All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: mfd: twl: Convert trivial subdevices to json-schema
@ 2024-03-18 12:40 Andreas Kemnade
  2024-03-18 15:07 ` Rob Herring
  0 siblings, 1 reply; 2+ messages in thread
From: Andreas Kemnade @ 2024-03-18 12:40 UTC (permalink / raw)
  To: dmitry.torokhov, robh+dt, krzysztof.kozlowski+dt, conor+dt, lee,
	alexandre.belloni, wim, linux, andreas, linux-input, devicetree,
	linux-kernel, linux-rtc, linux-watchdog, linux-omap, sre

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
+
+          unevaluatedProperties: false
+        bci:
+          type: object
+          $ref: ../power/supply/twl4030-charger.yaml
+
+          unevaluatedProperties: false
+        pwrbutton:
+          type: object
+          properties:
+            compatible:
+              const: ti,twl4030-pwrbutton
+            interrupts:
+              const: 8
+
+          additionalProperties: false
+        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
 
 required:
diff --git a/Documentation/devicetree/bindings/rtc/twl-rtc.txt b/Documentation/devicetree/bindings/rtc/twl-rtc.txt
deleted file mode 100644
index 8f9a94f2f8969..0000000000000
--- a/Documentation/devicetree/bindings/rtc/twl-rtc.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-* Texas Instruments TWL4030/6030 RTC
-
-Required properties:
-- compatible : Should be "ti,twl4030-rtc"
-- interrupts : Should be the interrupt number.
-
-Example:
-	rtc {
-		compatible = "ti,twl4030-rtc";
-		interrupts = <11>;
-	};
diff --git a/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt b/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt
deleted file mode 100644
index 80a37193c0b86..0000000000000
--- a/Documentation/devicetree/bindings/watchdog/twl4030-wdt.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Device tree bindings for twl4030-wdt driver (TWL4030 watchdog)
-
-Required properties:
-	compatible = "ti,twl4030-wdt";
-
-Example:
-
-watchdog {
-	compatible = "ti,twl4030-wdt";
-};
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] dt-bindings: mfd: twl: Convert trivial subdevices to json-schema
  2024-03-18 12:40 [PATCH] dt-bindings: mfd: twl: Convert trivial subdevices to json-schema Andreas Kemnade
@ 2024-03-18 15:07 ` Rob Herring
  0 siblings, 0 replies; 2+ messages in thread
From: Rob Herring @ 2024-03-18 15:07 UTC (permalink / raw)
  To: Andreas Kemnade
  Cc: dmitry.torokhov, krzysztof.kozlowski+dt, conor+dt, lee,
	alexandre.belloni, wim, linux, linux-input, devicetree,
	linux-kernel, linux-rtc, linux-watchdog, linux-omap, sre

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
>  
>  required:

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-03-18 15:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-18 12:40 [PATCH] dt-bindings: mfd: twl: Convert trivial subdevices to json-schema Andreas Kemnade
2024-03-18 15:07 ` Rob Herring

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.