2024-05-28 16:42:46

by Andreas Kemnade

[permalink] [raw]
Subject: [PATCH v2] dt-bindings: regulator: twl-regulator: convert to yaml

Convert the regulator bindings to yaml files. To allow only the regulator
compatible corresponding to the toplevel mfd compatible, split the file
into one per device.

To not need to allow any subnode name, specify clearly node names
for all the regulators.

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

Signed-off-by: Andreas Kemnade <[email protected]>
---
Changes in v2:
- add regulators directly to ti,twl.yaml
- less restrictions on regulator node name

.../devicetree/bindings/mfd/ti,twl.yaml | 110 +++++++++++++++++-
.../bindings/regulator/twl-regulator.txt | 80 -------------
2 files changed, 109 insertions(+), 81 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..9dc1874a79dc 100644
--- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
+++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
@@ -22,6 +22,42 @@ allOf:
contains:
const: ti,twl4030
then:
+ patternProperties:
+ "^regulator-":
+ type: object
+ $ref: /schemas/regulator/regulator.yaml
+ unevaluatedProperties: false
+ 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
+ regulator-initial-mode:
+ items:
+ - items:
+ 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
+
properties:
madc:
type: object
@@ -50,13 +86,43 @@ allOf:
properties:
compatible:
const: ti,twl4030-wdt
-
- if:
properties:
compatible:
contains:
const: ti,twl6030
then:
+ patternProperties:
+ "^regulator-":
+ type: object
+ $ref: /schemas/regulator/regulator.yaml
+ unevaluatedProperties: false
+ 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
+ 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
+
properties:
gpadc:
type: object
@@ -69,6 +135,34 @@ allOf:
contains:
const: ti,twl6032
then:
+ patternProperties:
+ "^regulator-":
+ type: object
+ $ref: /schemas/regulator/regulator.yaml
+ unevaluatedProperties: false
+ 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
+ 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
+
properties:
gpadc:
type: object
@@ -134,6 +228,20 @@ examples:
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";
+ };
};
};

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.
--
2.39.2



2024-05-29 07:47:22

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2] dt-bindings: regulator: twl-regulator: convert to yaml

On 28/05/2024 18:42, Andreas Kemnade wrote:
> Convert the regulator bindings to yaml files. To allow only the regulator
> compatible corresponding to the toplevel mfd compatible, split the file
> into one per device.
>
> To not need to allow any subnode name, specify clearly node names
> for all the regulators.
>
> Drop one twl5030 compatible due to no documentation on mfd side and no
> users of the twl5030.
>
> Signed-off-by: Andreas Kemnade <[email protected]>
> ---
> Changes in v2:
> - add regulators directly to ti,twl.yaml
> - less restrictions on regulator node name
>
> .../devicetree/bindings/mfd/ti,twl.yaml | 110 +++++++++++++++++-
> .../bindings/regulator/twl-regulator.txt | 80 -------------
> 2 files changed, 109 insertions(+), 81 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..9dc1874a79dc 100644
> --- a/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> +++ b/Documentation/devicetree/bindings/mfd/ti,twl.yaml
> @@ -22,6 +22,42 @@ allOf:
> contains:
> const: ti,twl4030
> then:
> + patternProperties:
> + "^regulator-":

Please define all nodes and properties in top-level. You can customize
them in if:then. If this gets too complicated, then maybe schema should
be split.

> + type: object
> + $ref: /schemas/regulator/regulator.yaml
> + unevaluatedProperties: false
> + 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
> + regulator-initial-mode:
> + items:
> + - items:

I am confused why you made it a matrix. This is an uint, so one number.

enum:
- 0x8
- 0xe

> + 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
> +
> properties:
> madc:
> type: object
> @@ -50,13 +86,43 @@ allOf:
> properties:
> compatible:
> const: ti,twl4030-wdt
> -
> - if:
> properties:
> compatible:
> contains:
> const: ti,twl6030
> then:
> + patternProperties:
> + "^regulator-":
> + type: object
> + $ref: /schemas/regulator/regulator.yaml
> + unevaluatedProperties: false
> + 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
> + 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
> +
> properties:
> gpadc:
> type: object
> @@ -69,6 +135,34 @@ allOf:
> contains:
> const: ti,twl6032
> then:
> + patternProperties:
> + "^regulator-":
> + type: object
> + $ref: /schemas/regulator/regulator.yaml
> + unevaluatedProperties: false
> + 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
> + 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
> +
> properties:
> gpadc:
> type: object
> @@ -134,6 +228,20 @@ examples:
> 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";

Add the initial mode and retain-on-reset properties to validate them.

Best regards,
Krzysztof