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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <andreas@xxxxxxxxxxxx>
> ---
> 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





[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux