diff mbox series

[v4] dt-bindings: regulator: twl-regulator: convert to yaml

Message ID 20240606111611.371463-1-andreas@kemnade.info
State New
Headers show
Series [v4] dt-bindings: regulator: twl-regulator: convert to yaml | expand

Commit Message

Andreas Kemnade June 6, 2024, 11:16 a.m. UTC
Convert the regulator bindings to yaml.

Drop one twl5030 compatible due to no documentation on mfd side and no
users of the twl5030.

Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
Changes in v4:
- remove a sentence in the commit message which only applies
  to v1 design
- add R-by

Changes in v3:
- define regulator stuff in toplevel
- simplified regulator-inital-mode
- extended example to contain both regulator-initial-mode and
  retain-on-reset

Changes in v2:
- add regulators directly to ti,twl.yaml
- less restrictions on regulator node name

 .../devicetree/bindings/mfd/ti,twl.yaml       | 166 +++++++++++++++++-
 .../bindings/regulator/twl-regulator.txt      |  80 ---------
 2 files changed, 164 insertions(+), 82 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/regulator/twl-regulator.txt

Comments

Rob Herring (Arm) June 11, 2024, 1:39 p.m. UTC | #1
On Thu, Jun 6, 2024 at 5:16 AM Andreas Kemnade <andreas@kemnade.info> wrote:
>
> Convert the regulator bindings to yaml.
>
> Drop one twl5030 compatible due to no documentation on mfd side and no
> users of the twl5030.
>
> Signed-off-by: Andreas Kemnade <andreas@kemnade.info>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
> ---
> Changes in v4:
> - remove a sentence in the commit message which only applies
>   to v1 design
> - add R-by
>
> Changes in v3:
> - define regulator stuff in toplevel
> - simplified regulator-inital-mode
> - extended example to contain both regulator-initial-mode and
>   retain-on-reset
>
> Changes in v2:
> - add regulators directly to ti,twl.yaml
> - less restrictions on regulator node name
>
>  .../devicetree/bindings/mfd/ti,twl.yaml       | 166 +++++++++++++++++-
>  .../bindings/regulator/twl-regulator.txt      |  80 ---------
>  2 files changed, 164 insertions(+), 82 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/regulator/twl-regulator.txt
>
> diff --git a/Documentation/devicetree/bindings/mfd/ti,twl.yaml b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> index c2357fecb56c..2cbdd238f48f 100644
> --- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> +++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> @@ -22,6 +22,32 @@ allOf:
>            contains:
>              const: ti,twl4030
>      then:
> +      patternProperties:
> +        "^regulator-":
> +          properties:
> +            compatible:
> +              enum:
> +                - ti,twl4030-vaux1
> +                - ti,twl4030-vaux2
> +                - ti,twl4030-vaux3
> +                - ti,twl4030-vaux4
> +                - ti,twl4030-vmmc1
> +                - ti,twl4030-vmmc2
> +                - ti,twl4030-vpll1
> +                - ti,twl4030-vpll2
> +                - ti,twl4030-vsim
> +                - ti,twl4030-vdac
> +                - ti,twl4030-vintana2
> +                - ti,twl4030-vio
> +                - ti,twl4030-vdd1
> +                - ti,twl4030-vdd2
> +                - ti,twl4030-vintana1
> +                - ti,twl4030-vintdig
> +                - ti,twl4030-vusb1v5
> +                - ti,twl4030-vusb1v8
> +                - ti,twl4030-vusb3v1
> +            ti,retain-on-reset: false
> +
>        properties:
>          madc:
>            type: object
> @@ -50,13 +76,34 @@ allOf:
>            properties:
>              compatible:
>                const: ti,twl4030-wdt
> -
>    - if:
>        properties:
>          compatible:
>            contains:
>              const: ti,twl6030
>      then:
> +      patternProperties:
> +        "^regulator-":
> +          properties:
> +            compatible:
> +              enum:
> +                - ti,twl6030-vaux1
> +                - ti,twl6030-vaux2
> +                - ti,twl6030-vaux3
> +                - ti,twl6030-vmmc
> +                - ti,twl6030-vpp
> +                - ti,twl6030-vusim
> +                - ti,twl6030-vana
> +                - ti,twl6030-vcxio
> +                - ti,twl6030-vdac
> +                - ti,twl6030-vusb
> +                - ti,twl6030-v1v8
> +                - ti,twl6030-v2v1
> +                - ti,twl6030-vdd1
> +                - ti,twl6030-vdd2
> +                - ti,twl6030-vdd3
> +            regulator-initial-mode: false
> +
>        properties:
>          gpadc:
>            type: object
> @@ -69,6 +116,25 @@ allOf:
>            contains:
>              const: ti,twl6032
>      then:
> +      patternProperties:
> +        "^regulator-":
> +          properties:
> +            compatible:
> +              enum:
> +                - ti,twl6032-ldo1
> +                - ti,twl6032-ldo2
> +                - ti,twl6032-ldo3
> +                - ti,twl6032-ldo4
> +                - ti,twl6032-ldo5
> +                - ti,twl6032-ldo6
> +                - ti,twl6032-ldo7
> +                - ti,twl6032-ldoln
> +                - ti,twl6032-ldousb
> +                - ti,twl6032-smps3
> +                - ti,twl6032-smps4
> +                - ti,twl6032-vio
> +            regulator-initial-mode: false
> +
>        properties:
>          gpadc:
>            type: object
> @@ -112,6 +178,27 @@ properties:
>        interrupts:
>          maxItems: 1
>
> +patternProperties:
> +  "^regulator-":
> +    type: object
> +    unevaluatedProperties: false
> +    $ref: /schemas/regulator/regulator.yaml
> +    properties:
> +      compatible: true
> +      regulator-initial-mode:
> +        enum:
> +          - 0x08 # Sleep mode, the nominal output voltage is maintained
> +                 # with low power consumption with low load current capability
> +          - 0x0e # Active mode, the regulator can deliver its nominal output
> +                 # voltage with full-load current capability
> +      ti,retain-on-reset:
> +        description:
> +          Does not turn off the supplies during warm
> +          reset. Could be needed for VMMC, as TWL6030
> +          reset sequence for this signal does not comply
> +          with the SD specification.
> +        type: boolean
> +
>  unevaluatedProperties: false
>
>  required:
> @@ -131,9 +218,84 @@ examples:
>          compatible = "ti,twl6030";
>          reg = <0x48>;
>          interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
> +        interrupt-parent = <&gic>;
>          interrupt-controller;
>          #interrupt-cells = <1>;
> -        interrupt-parent = <&gic>;
> +
> +        gpadc {
> +          compatible = "ti,twl6030-gpadc";
> +          interrupts = <6>;

Now a warning in linux-next:

Documentation/devicetree/bindings/mfd/ti,twl.example.dtb: gpadc:
'#io-channel-cells' is a required property
        from schema $id:
http://devicetree.org/schemas/iio/adc/ti,twl6030-gpadc.yaml#
Andreas Kemnade July 8, 2024, 8:32 p.m. UTC | #2
On Tue, 11 Jun 2024 07:39:25 -0600
Rob Herring <robh@kernel.org> wrote:

> > +
> > +        gpadc {
> > +          compatible = "ti,twl6030-gpadc";
> > +          interrupts = <6>;  
> 
> Now a warning in linux-next:
> 
> Documentation/devicetree/bindings/mfd/ti,twl.example.dtb: gpadc:
> '#io-channel-cells' is a required property
>         from schema $id:
> http://devicetree.org/schemas/iio/adc/ti,twl6030-gpadc.yaml#

I sent a fix. It was not applied, maybe because subject does not
contain regulator and so missing Mark's filter?

Regards
Andreas
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/mfd/ti,twl.yaml b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
index c2357fecb56c..2cbdd238f48f 100644
--- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
+++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
@@ -22,6 +22,32 @@  allOf:
           contains:
             const: ti,twl4030
     then:
+      patternProperties:
+        "^regulator-":
+          properties:
+            compatible:
+              enum:
+                - ti,twl4030-vaux1
+                - ti,twl4030-vaux2
+                - ti,twl4030-vaux3
+                - ti,twl4030-vaux4
+                - ti,twl4030-vmmc1
+                - ti,twl4030-vmmc2
+                - ti,twl4030-vpll1
+                - ti,twl4030-vpll2
+                - ti,twl4030-vsim
+                - ti,twl4030-vdac
+                - ti,twl4030-vintana2
+                - ti,twl4030-vio
+                - ti,twl4030-vdd1
+                - ti,twl4030-vdd2
+                - ti,twl4030-vintana1
+                - ti,twl4030-vintdig
+                - ti,twl4030-vusb1v5
+                - ti,twl4030-vusb1v8
+                - ti,twl4030-vusb3v1
+            ti,retain-on-reset: false
+
       properties:
         madc:
           type: object
@@ -50,13 +76,34 @@  allOf:
           properties:
             compatible:
               const: ti,twl4030-wdt
-
   - if:
       properties:
         compatible:
           contains:
             const: ti,twl6030
     then:
+      patternProperties:
+        "^regulator-":
+          properties:
+            compatible:
+              enum:
+                - ti,twl6030-vaux1
+                - ti,twl6030-vaux2
+                - ti,twl6030-vaux3
+                - ti,twl6030-vmmc
+                - ti,twl6030-vpp
+                - ti,twl6030-vusim
+                - ti,twl6030-vana
+                - ti,twl6030-vcxio
+                - ti,twl6030-vdac
+                - ti,twl6030-vusb
+                - ti,twl6030-v1v8
+                - ti,twl6030-v2v1
+                - ti,twl6030-vdd1
+                - ti,twl6030-vdd2
+                - ti,twl6030-vdd3
+            regulator-initial-mode: false
+
       properties:
         gpadc:
           type: object
@@ -69,6 +116,25 @@  allOf:
           contains:
             const: ti,twl6032
     then:
+      patternProperties:
+        "^regulator-":
+          properties:
+            compatible:
+              enum:
+                - ti,twl6032-ldo1
+                - ti,twl6032-ldo2
+                - ti,twl6032-ldo3
+                - ti,twl6032-ldo4
+                - ti,twl6032-ldo5
+                - ti,twl6032-ldo6
+                - ti,twl6032-ldo7
+                - ti,twl6032-ldoln
+                - ti,twl6032-ldousb
+                - ti,twl6032-smps3
+                - ti,twl6032-smps4
+                - ti,twl6032-vio
+            regulator-initial-mode: false
+
       properties:
         gpadc:
           type: object
@@ -112,6 +178,27 @@  properties:
       interrupts:
         maxItems: 1
 
+patternProperties:
+  "^regulator-":
+    type: object
+    unevaluatedProperties: false
+    $ref: /schemas/regulator/regulator.yaml
+    properties:
+      compatible: true
+      regulator-initial-mode:
+        enum:
+          - 0x08 # Sleep mode, the nominal output voltage is maintained
+                 # with low power consumption with low load current capability
+          - 0x0e # Active mode, the regulator can deliver its nominal output
+                 # voltage with full-load current capability
+      ti,retain-on-reset:
+        description:
+          Does not turn off the supplies during warm
+          reset. Could be needed for VMMC, as TWL6030
+          reset sequence for this signal does not comply
+          with the SD specification.
+        type: boolean
+
 unevaluatedProperties: false
 
 required:
@@ -131,9 +218,84 @@  examples:
         compatible = "ti,twl6030";
         reg = <0x48>;
         interrupts = <39>; /* IRQ_SYS_1N cascaded to gic */
+        interrupt-parent = <&gic>;
         interrupt-controller;
         #interrupt-cells = <1>;
-        interrupt-parent = <&gic>;
+
+        gpadc {
+          compatible = "ti,twl6030-gpadc";
+          interrupts = <6>;
+        };
+
+        rtc {
+          compatible = "ti,twl4030-rtc";
+          interrupts = <8>;
+        };
+
+        regulator-vaux1 {
+          compatible = "ti,twl6030-vaux1";
+          regulator-min-microvolt = <1000000>;
+          regulator-max-microvolt = <3000000>;
+        };
+
+        regulator-vmmc1 {
+          compatible = "ti,twl6030-vmmc";
+          ti,retain-on-reset;
+        };
       };
     };
 
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      pmic@48 {
+        compatible = "ti,twl4030";
+        reg = <0x48>;
+        interrupts = <7>; /* SYS_NIRQ cascaded to intc */
+        interrupt-parent = <&intc>;
+        interrupt-controller;
+        #interrupt-cells = <1>;
+
+        bci {
+          compatible = "ti,twl4030-bci";
+          interrupts = <9>, <2>;
+          bci3v1-supply = <&vusb3v1>;
+          io-channels = <&twl_madc 11>;
+          io-channel-names = "vac";
+        };
+
+        twl_madc: madc {
+          compatible = "ti,twl4030-madc";
+          interrupts = <3>;
+          #io-channel-cells = <1>;
+        };
+
+        pwrbutton {
+          compatible = "ti,twl4030-pwrbutton";
+          interrupts = <8>;
+        };
+
+        rtc {
+          compatible = "ti,twl4030-rtc";
+          interrupts = <11>;
+        };
+
+        regulator-vaux1 {
+          compatible = "ti,twl4030-vaux1";
+          regulator-min-microvolt = <1000000>;
+          regulator-max-microvolt = <3000000>;
+          regulator-initial-mode = <0xe>;
+        };
+
+        vusb3v1: regulator-vusb3v1 {
+          compatible = "ti,twl4030-vusb3v1";
+        };
+
+        watchdog {
+          compatible = "ti,twl4030-wdt";
+        };
+      };
+    };
+...
diff --git a/Documentation/devicetree/bindings/regulator/twl-regulator.txt b/Documentation/devicetree/bindings/regulator/twl-regulator.txt
deleted file mode 100644
index 549f80436deb..000000000000
--- a/Documentation/devicetree/bindings/regulator/twl-regulator.txt
+++ /dev/null
@@ -1,80 +0,0 @@ 
-TWL family of regulators
-
-Required properties:
-For twl6030 regulators/LDOs
-- compatible:
-  - "ti,twl6030-vaux1" for VAUX1 LDO
-  - "ti,twl6030-vaux2" for VAUX2 LDO
-  - "ti,twl6030-vaux3" for VAUX3 LDO
-  - "ti,twl6030-vmmc" for VMMC LDO
-  - "ti,twl6030-vpp" for VPP LDO
-  - "ti,twl6030-vusim" for VUSIM LDO
-  - "ti,twl6030-vana" for VANA LDO
-  - "ti,twl6030-vcxio" for VCXIO LDO
-  - "ti,twl6030-vdac" for VDAC LDO
-  - "ti,twl6030-vusb" for VUSB LDO
-  - "ti,twl6030-v1v8" for V1V8 LDO
-  - "ti,twl6030-v2v1" for V2V1 LDO
-  - "ti,twl6030-vdd1" for VDD1 SMPS
-  - "ti,twl6030-vdd2" for VDD2 SMPS
-  - "ti,twl6030-vdd3" for VDD3 SMPS
-For twl6032 regulators/LDOs
-- compatible:
-  - "ti,twl6032-ldo1" for LDO1 LDO
-  - "ti,twl6032-ldo2" for LDO2 LDO
-  - "ti,twl6032-ldo3" for LDO3 LDO
-  - "ti,twl6032-ldo4" for LDO4 LDO
-  - "ti,twl6032-ldo5" for LDO5 LDO
-  - "ti,twl6032-ldo6" for LDO6 LDO
-  - "ti,twl6032-ldo7" for LDO7 LDO
-  - "ti,twl6032-ldoln" for LDOLN LDO
-  - "ti,twl6032-ldousb" for LDOUSB LDO
-  - "ti,twl6032-smps3" for SMPS3 SMPS
-  - "ti,twl6032-smps4" for SMPS4 SMPS
-  - "ti,twl6032-vio" for VIO SMPS
-For twl4030 regulators/LDOs
-- compatible:
-  - "ti,twl4030-vaux1" for VAUX1 LDO
-  - "ti,twl4030-vaux2" for VAUX2 LDO
-  - "ti,twl5030-vaux2" for VAUX2 LDO
-  - "ti,twl4030-vaux3" for VAUX3 LDO
-  - "ti,twl4030-vaux4" for VAUX4 LDO
-  - "ti,twl4030-vmmc1" for VMMC1 LDO
-  - "ti,twl4030-vmmc2" for VMMC2 LDO
-  - "ti,twl4030-vpll1" for VPLL1 LDO
-  - "ti,twl4030-vpll2" for VPLL2 LDO
-  - "ti,twl4030-vsim" for VSIM LDO
-  - "ti,twl4030-vdac" for VDAC LDO
-  - "ti,twl4030-vintana2" for VINTANA2 LDO
-  - "ti,twl4030-vio" for VIO LDO
-  - "ti,twl4030-vdd1" for VDD1 SMPS
-  - "ti,twl4030-vdd2" for VDD2 SMPS
-  - "ti,twl4030-vintana1" for VINTANA1 LDO
-  - "ti,twl4030-vintdig" for VINTDIG LDO
-  - "ti,twl4030-vusb1v5" for VUSB1V5 LDO
-  - "ti,twl4030-vusb1v8" for VUSB1V8 LDO
-  - "ti,twl4030-vusb3v1" for VUSB3V1 LDO
-
-Optional properties:
-- Any optional property defined in bindings/regulator/regulator.txt
-For twl4030 regulators/LDOs:
- - regulator-initial-mode:
-  - 0x08 - Sleep mode, the nominal output voltage is maintained with low power
-           consumption with low load current capability.
-  - 0x0e - Active mode, the regulator can deliver its nominal output voltage
-           with full-load current capability.
-
-Example:
-
-	xyz: regulator@0 {
-		compatible = "ti,twl6030-vaux1";
-		regulator-min-microvolt  = <1000000>;
-		regulator-max-microvolt  = <3000000>;
-	};
-
-For twl6030 regulators/LDOs:
-
- - ti,retain-on-reset: Does not turn off the supplies during warm
-                       reset. Could be needed for VMMC, as TWL6030
-                       reset sequence for this signal does not comply
-                       with the SD specification.