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

From: Rob Herring
Date: Mon Oct 04 2021 - 11:07:29 EST


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@xxxxxxxxxxxxx>
> ---
> .../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@xxxxxxxxxxx>
> + - Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx>
> +
> +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@xxxxxxxxxxx>
> L: linux-kernel@xxxxxxxxxxxxxxx
> 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
>
>