diff mbox series

[1/2] regulator: dt-bindings: maxim,max77686: convert to dtschema

Message ID 20210928141353.112619-2-krzysztof.kozlowski@canonical.com
State Changes Requested, archived
Headers show
Series mfd/regulator: dt-bindings: max77686: convert to dtschema | expand

Checks

Context Check Description
robh/checkpatch warning total: 0 errors, 2 warnings, 99 lines checked
robh/dt-meta-schema fail build log

Commit Message

Krzysztof Kozlowski Sept. 28, 2021, 2:13 p.m. UTC
Convert the regulators of Maxim MAX77686 PMIC to DT schema format.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
 .../bindings/regulator/max77686.txt           | 71 --------------
 .../bindings/regulator/maxim,max77686.yaml    | 92 +++++++++++++++++++
 MAINTAINERS                                   |  1 +
 3 files changed, 93 insertions(+), 71 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/regulator/max77686.txt
 create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max77686.yaml

Comments

Mark Brown Sept. 29, 2021, 1:42 p.m. UTC | #1
On Tue, Sep 28, 2021 at 04:13:52PM +0200, Krzysztof Kozlowski wrote:
> Convert the regulators of Maxim MAX77686 PMIC to DT schema format.

Acked-by: Mark Brown <broonie@kernel.org>
Rob Herring (Arm) Oct. 4, 2021, 3:07 p.m. UTC | #2
On Tue, Sep 28, 2021 at 04:13:52PM +0200, Krzysztof Kozlowski wrote:
> Convert the regulators of Maxim MAX77686 PMIC to DT schema format.
> 
> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> ---
>  .../bindings/regulator/max77686.txt           | 71 --------------
>  .../bindings/regulator/maxim,max77686.yaml    | 92 +++++++++++++++++++
>  MAINTAINERS                                   |  1 +
>  3 files changed, 93 insertions(+), 71 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/regulator/max77686.txt
>  create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
> 
> diff --git a/Documentation/devicetree/bindings/regulator/max77686.txt b/Documentation/devicetree/bindings/regulator/max77686.txt
> deleted file mode 100644
> index e9f7578ca09a..000000000000
> --- a/Documentation/devicetree/bindings/regulator/max77686.txt
> +++ /dev/null
> @@ -1,71 +0,0 @@
> -Binding for Maxim MAX77686 regulators
> -
> -This is a part of the device tree bindings of MAX77686 multi-function device.
> -More information can be found in ../mfd/max77686.txt file.
> -
> -The MAX77686 PMIC has 9 high-efficiency Buck and 26 Low-DropOut (LDO)
> -regulators that can be controlled over I2C.
> -
> -Following properties should be present in main device node of the MFD chip.
> -
> -Optional node:
> -- voltage-regulators : The regulators of max77686 have to be instantiated
> -  under subnode named "voltage-regulators" using the following format.
> -
> -	regulator_name {
> -		regulator-compatible = LDOn/BUCKn
> -		standard regulator constraints....
> -	};
> -	refer Documentation/devicetree/bindings/regulator/regulator.txt
> -
> -  The regulator node's name should be initialized with a string
> -to get matched with their hardware counterparts as follow:
> -
> -	-LDOn 	:	for LDOs, where n can lie in range 1 to 26.
> -			example: LDO1, LDO2, LDO26.
> -	-BUCKn 	:	for BUCKs, where n can lie in range 1 to 9.
> -			example: BUCK1, BUCK5, BUCK9.
> -
> -  Regulators which can be turned off during system suspend:
> -	-LDOn	:	2, 6-8, 10-12, 14-16,
> -	-BUCKn	:	1-4.
> -  Use standard regulator bindings for it ('regulator-off-in-suspend').
> -
> -  LDO20, LDO21, LDO22, BUCK8 and BUCK9 can be configured to GPIO enable
> -  control. To turn this feature on this property must be added to the regulator
> -  sub-node:
> -	- maxim,ena-gpios :	one GPIO specifier enable control (the gpio
> -				flags are actually ignored and always
> -				ACTIVE_HIGH is used)
> -
> -Example:
> -
> -	max77686: pmic@9 {
> -		compatible = "maxim,max77686";
> -		interrupt-parent = <&wakeup_eint>;
> -		interrupts = <26 IRQ_TYPE_NONE>;
> -		reg = <0x09>;
> -
> -		voltage-regulators {
> -			ldo11_reg: LDO11 {
> -				regulator-name = "vdd_ldo11";
> -				regulator-min-microvolt = <1900000>;
> -				regulator-max-microvolt = <1900000>;
> -				regulator-always-on;
> -			};
> -
> -			buck1_reg: BUCK1 {
> -				regulator-name = "vdd_mif";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1300000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck9_reg: BUCK9 {
> -				regulator-name = "CAM_ISP_CORE_1.2V";
> -				regulator-min-microvolt = <1000000>;
> -				regulator-max-microvolt = <1200000>;
> -				maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
> -			};
> -	};
> diff --git a/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml b/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
> new file mode 100644
> index 000000000000..33a80a8caf26
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
> @@ -0,0 +1,92 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/maxim,max77686.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Maxim MAX77686 Power Management IC regulators
> +
> +maintainers:
> +  - Chanwoo Choi <cw00.choi@samsung.com>
> +  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> +
> +description: |
> +  This is a part of device tree bindings for Maxim MAX77686 Power Management
> +  Integrated Circuit (PMIC).
> +
> +  The Maxim MAX77686 provides high-efficiency Buck and 26 Low-DropOut (LDO)
> +  regulators.
> +
> +  See also Documentation/devicetree/bindings/mfd/maxim,max77686.yaml for
> +  additional information and example.
> +
> +patternProperties:
> +  # 26 LDOs
> +  "^LDO([1-9]|1[0-9]|2[0-6])$":
> +    type: object
> +    $ref: regulator.yaml#
> +    description: |
> +      Properties for single LDO regulator.
> +      Regulators which can be turned off during system suspend:
> +        LDO2, LDO6-8, LDO10-12, LDO14-16
> +
> +    properties:
> +      regulator-name: true
> +
> +      maxim,ena-gpios:
> +        maxItems: 1
> +        description: |
> +          GPIO specifier to enable the GPIO control (on/off) for regulator.
> +
> +    required:
> +      - regulator-name
> +
> +    unevaluatedProperties: false
> +
> +    allOf:
> +      - if:
> +          properties:
> +            $nodename:

I'm not sure this actually works with $nodename in child nodes.

I think I would just split out the 2 cases to 2 separate 
patternProperties entries.


> +              pattern: "^(LDO20|LDO21|LDO22|BUCK8|BUCK9)$"

Drop BUCK* ?

> +        then:
> +          properties:
> +            maxim,ena-gpios: true

This is not necessary. Flip the if condition.

> +        else:
> +          properties:
> +            maxim,ena-gpios: false
> +
> +  # 9 bucks
> +  "^BUCK[1-9]$":
> +    type: object
> +    $ref: regulator.yaml#
> +    description: |
> +      Properties for single BUCK regulator.
> +      Regulators which can be turned off during system suspend:
> +      BUCK[1-4]
> +
> +    properties:
> +      regulator-name: true
> +
> +      maxim,ena-gpios:
> +        maxItems: 1
> +        description: |
> +          GPIO specifier to enable the GPIO control (on/off) for regulator.
> +
> +    required:
> +      - regulator-name
> +
> +    unevaluatedProperties: false
> +
> +    allOf:
> +      - if:
> +          properties:
> +            $nodename:
> +              pattern: "^(LDO20|LDO21|LDO22|BUCK8|BUCK9)$"

Drop LDO* ?

> +        then:
> +          properties:
> +            maxim,ena-gpios: true
> +        else:
> +          properties:
> +            maxim,ena-gpios: false
> +
> +additionalProperties: false
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 39b4ef4b5a95..32b55f9ab76a 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -11469,6 +11469,7 @@ M:	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
>  L:	linux-kernel@vger.kernel.org
>  S:	Supported
>  F:	Documentation/devicetree/bindings/*/max77686.txt
> +F:	Documentation/devicetree/bindings/*/maxim,max77686.yaml
>  F:	Documentation/devicetree/bindings/clock/maxim,max77686.txt
>  F:	Documentation/devicetree/bindings/mfd/max14577.txt
>  F:	Documentation/devicetree/bindings/mfd/max77693.txt
> -- 
> 2.30.2
> 
>
Krzysztof Kozlowski Oct. 8, 2021, 12:09 p.m. UTC | #3
On 04/10/2021 17:07, Rob Herring wrote:
> On Tue, Sep 28, 2021 at 04:13:52PM +0200, Krzysztof Kozlowski wrote:
>> Convert the regulators of Maxim MAX77686 PMIC to DT schema format.
>>
>> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
>> ---
>>  .../bindings/regulator/max77686.txt           | 71 --------------
>>  .../bindings/regulator/maxim,max77686.yaml    | 92 +++++++++++++++++++
>>  MAINTAINERS                                   |  1 +
>>  3 files changed, 93 insertions(+), 71 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/regulator/max77686.txt
>>  create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/regulator/max77686.txt b/Documentation/devicetree/bindings/regulator/max77686.txt
>> deleted file mode 100644
>> index e9f7578ca09a..000000000000
>> --- a/Documentation/devicetree/bindings/regulator/max77686.txt
>> +++ /dev/null
>> @@ -1,71 +0,0 @@
>> -Binding for Maxim MAX77686 regulators
>> -
>> -This is a part of the device tree bindings of MAX77686 multi-function device.
>> -More information can be found in ../mfd/max77686.txt file.
>> -
>> -The MAX77686 PMIC has 9 high-efficiency Buck and 26 Low-DropOut (LDO)
>> -regulators that can be controlled over I2C.
>> -
>> -Following properties should be present in main device node of the MFD chip.
>> -
>> -Optional node:
>> -- voltage-regulators : The regulators of max77686 have to be instantiated
>> -  under subnode named "voltage-regulators" using the following format.
>> -
>> -	regulator_name {
>> -		regulator-compatible = LDOn/BUCKn
>> -		standard regulator constraints....
>> -	};
>> -	refer Documentation/devicetree/bindings/regulator/regulator.txt
>> -
>> -  The regulator node's name should be initialized with a string
>> -to get matched with their hardware counterparts as follow:
>> -
>> -	-LDOn 	:	for LDOs, where n can lie in range 1 to 26.
>> -			example: LDO1, LDO2, LDO26.
>> -	-BUCKn 	:	for BUCKs, where n can lie in range 1 to 9.
>> -			example: BUCK1, BUCK5, BUCK9.
>> -
>> -  Regulators which can be turned off during system suspend:
>> -	-LDOn	:	2, 6-8, 10-12, 14-16,
>> -	-BUCKn	:	1-4.
>> -  Use standard regulator bindings for it ('regulator-off-in-suspend').
>> -
>> -  LDO20, LDO21, LDO22, BUCK8 and BUCK9 can be configured to GPIO enable
>> -  control. To turn this feature on this property must be added to the regulator
>> -  sub-node:
>> -	- maxim,ena-gpios :	one GPIO specifier enable control (the gpio
>> -				flags are actually ignored and always
>> -				ACTIVE_HIGH is used)
>> -
>> -Example:
>> -
>> -	max77686: pmic@9 {
>> -		compatible = "maxim,max77686";
>> -		interrupt-parent = <&wakeup_eint>;
>> -		interrupts = <26 IRQ_TYPE_NONE>;
>> -		reg = <0x09>;
>> -
>> -		voltage-regulators {
>> -			ldo11_reg: LDO11 {
>> -				regulator-name = "vdd_ldo11";
>> -				regulator-min-microvolt = <1900000>;
>> -				regulator-max-microvolt = <1900000>;
>> -				regulator-always-on;
>> -			};
>> -
>> -			buck1_reg: BUCK1 {
>> -				regulator-name = "vdd_mif";
>> -				regulator-min-microvolt = <950000>;
>> -				regulator-max-microvolt = <1300000>;
>> -				regulator-always-on;
>> -				regulator-boot-on;
>> -			};
>> -
>> -			buck9_reg: BUCK9 {
>> -				regulator-name = "CAM_ISP_CORE_1.2V";
>> -				regulator-min-microvolt = <1000000>;
>> -				regulator-max-microvolt = <1200000>;
>> -				maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
>> -			};
>> -	};
>> diff --git a/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml b/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
>> new file mode 100644
>> index 000000000000..33a80a8caf26
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
>> @@ -0,0 +1,92 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/regulator/maxim,max77686.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Maxim MAX77686 Power Management IC regulators
>> +
>> +maintainers:
>> +  - Chanwoo Choi <cw00.choi@samsung.com>
>> +  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
>> +
>> +description: |
>> +  This is a part of device tree bindings for Maxim MAX77686 Power Management
>> +  Integrated Circuit (PMIC).
>> +
>> +  The Maxim MAX77686 provides high-efficiency Buck and 26 Low-DropOut (LDO)
>> +  regulators.
>> +
>> +  See also Documentation/devicetree/bindings/mfd/maxim,max77686.yaml for
>> +  additional information and example.
>> +
>> +patternProperties:
>> +  # 26 LDOs
>> +  "^LDO([1-9]|1[0-9]|2[0-6])$":
>> +    type: object
>> +    $ref: regulator.yaml#
>> +    description: |
>> +      Properties for single LDO regulator.
>> +      Regulators which can be turned off during system suspend:
>> +        LDO2, LDO6-8, LDO10-12, LDO14-16
>> +
>> +    properties:
>> +      regulator-name: true
>> +
>> +      maxim,ena-gpios:
>> +        maxItems: 1
>> +        description: |
>> +          GPIO specifier to enable the GPIO control (on/off) for regulator.
>> +
>> +    required:
>> +      - regulator-name
>> +
>> +    unevaluatedProperties: false
>> +
>> +    allOf:
>> +      - if:
>> +          properties:
>> +            $nodename:
> 
> I'm not sure this actually works with $nodename in child nodes.
> 
> I think I would just split out the 2 cases to 2 separate 
> patternProperties entries.
> 

I split the entries, slightly more code but it's actually easier to read.


Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/regulator/max77686.txt b/Documentation/devicetree/bindings/regulator/max77686.txt
deleted file mode 100644
index e9f7578ca09a..000000000000
--- a/Documentation/devicetree/bindings/regulator/max77686.txt
+++ /dev/null
@@ -1,71 +0,0 @@ 
-Binding for Maxim MAX77686 regulators
-
-This is a part of the device tree bindings of MAX77686 multi-function device.
-More information can be found in ../mfd/max77686.txt file.
-
-The MAX77686 PMIC has 9 high-efficiency Buck and 26 Low-DropOut (LDO)
-regulators that can be controlled over I2C.
-
-Following properties should be present in main device node of the MFD chip.
-
-Optional node:
-- voltage-regulators : The regulators of max77686 have to be instantiated
-  under subnode named "voltage-regulators" using the following format.
-
-	regulator_name {
-		regulator-compatible = LDOn/BUCKn
-		standard regulator constraints....
-	};
-	refer Documentation/devicetree/bindings/regulator/regulator.txt
-
-  The regulator node's name should be initialized with a string
-to get matched with their hardware counterparts as follow:
-
-	-LDOn 	:	for LDOs, where n can lie in range 1 to 26.
-			example: LDO1, LDO2, LDO26.
-	-BUCKn 	:	for BUCKs, where n can lie in range 1 to 9.
-			example: BUCK1, BUCK5, BUCK9.
-
-  Regulators which can be turned off during system suspend:
-	-LDOn	:	2, 6-8, 10-12, 14-16,
-	-BUCKn	:	1-4.
-  Use standard regulator bindings for it ('regulator-off-in-suspend').
-
-  LDO20, LDO21, LDO22, BUCK8 and BUCK9 can be configured to GPIO enable
-  control. To turn this feature on this property must be added to the regulator
-  sub-node:
-	- maxim,ena-gpios :	one GPIO specifier enable control (the gpio
-				flags are actually ignored and always
-				ACTIVE_HIGH is used)
-
-Example:
-
-	max77686: pmic@9 {
-		compatible = "maxim,max77686";
-		interrupt-parent = <&wakeup_eint>;
-		interrupts = <26 IRQ_TYPE_NONE>;
-		reg = <0x09>;
-
-		voltage-regulators {
-			ldo11_reg: LDO11 {
-				regulator-name = "vdd_ldo11";
-				regulator-min-microvolt = <1900000>;
-				regulator-max-microvolt = <1900000>;
-				regulator-always-on;
-			};
-
-			buck1_reg: BUCK1 {
-				regulator-name = "vdd_mif";
-				regulator-min-microvolt = <950000>;
-				regulator-max-microvolt = <1300000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			buck9_reg: BUCK9 {
-				regulator-name = "CAM_ISP_CORE_1.2V";
-				regulator-min-microvolt = <1000000>;
-				regulator-max-microvolt = <1200000>;
-				maxim,ena-gpios = <&gpm0 3 GPIO_ACTIVE_HIGH>;
-			};
-	};
diff --git a/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml b/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
new file mode 100644
index 000000000000..33a80a8caf26
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/maxim,max77686.yaml
@@ -0,0 +1,92 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/regulator/maxim,max77686.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Maxim MAX77686 Power Management IC regulators
+
+maintainers:
+  - Chanwoo Choi <cw00.choi@samsung.com>
+  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
+
+description: |
+  This is a part of device tree bindings for Maxim MAX77686 Power Management
+  Integrated Circuit (PMIC).
+
+  The Maxim MAX77686 provides high-efficiency Buck and 26 Low-DropOut (LDO)
+  regulators.
+
+  See also Documentation/devicetree/bindings/mfd/maxim,max77686.yaml for
+  additional information and example.
+
+patternProperties:
+  # 26 LDOs
+  "^LDO([1-9]|1[0-9]|2[0-6])$":
+    type: object
+    $ref: regulator.yaml#
+    description: |
+      Properties for single LDO regulator.
+      Regulators which can be turned off during system suspend:
+        LDO2, LDO6-8, LDO10-12, LDO14-16
+
+    properties:
+      regulator-name: true
+
+      maxim,ena-gpios:
+        maxItems: 1
+        description: |
+          GPIO specifier to enable the GPIO control (on/off) for regulator.
+
+    required:
+      - regulator-name
+
+    unevaluatedProperties: false
+
+    allOf:
+      - if:
+          properties:
+            $nodename:
+              pattern: "^(LDO20|LDO21|LDO22|BUCK8|BUCK9)$"
+        then:
+          properties:
+            maxim,ena-gpios: true
+        else:
+          properties:
+            maxim,ena-gpios: false
+
+  # 9 bucks
+  "^BUCK[1-9]$":
+    type: object
+    $ref: regulator.yaml#
+    description: |
+      Properties for single BUCK regulator.
+      Regulators which can be turned off during system suspend:
+      BUCK[1-4]
+
+    properties:
+      regulator-name: true
+
+      maxim,ena-gpios:
+        maxItems: 1
+        description: |
+          GPIO specifier to enable the GPIO control (on/off) for regulator.
+
+    required:
+      - regulator-name
+
+    unevaluatedProperties: false
+
+    allOf:
+      - if:
+          properties:
+            $nodename:
+              pattern: "^(LDO20|LDO21|LDO22|BUCK8|BUCK9)$"
+        then:
+          properties:
+            maxim,ena-gpios: true
+        else:
+          properties:
+            maxim,ena-gpios: false
+
+additionalProperties: false
diff --git a/MAINTAINERS b/MAINTAINERS
index 39b4ef4b5a95..32b55f9ab76a 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11469,6 +11469,7 @@  M:	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
 L:	linux-kernel@vger.kernel.org
 S:	Supported
 F:	Documentation/devicetree/bindings/*/max77686.txt
+F:	Documentation/devicetree/bindings/*/maxim,max77686.yaml
 F:	Documentation/devicetree/bindings/clock/maxim,max77686.txt
 F:	Documentation/devicetree/bindings/mfd/max14577.txt
 F:	Documentation/devicetree/bindings/mfd/max77693.txt