[PATCH v6 4/8] dt-bindings: regulator: Add document for MT6359 regulator

Hsin-hsiung Wang hsin-hsiung.wang at mediatek.com
Mon Mar 29 12:13:49 BST 2021


Hi,

On Tue, 2021-03-16 at 15:28 -0600, Rob Herring wrote:
> On Tue, Mar 16, 2021 at 01:35:53AM +0800, Hsin-Hsiung Wang wrote:
> > add dt-binding document for MediaTek MT6359 PMIC
> > 
> > Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang at mediatek.com>
> > ---
> > changes since v5:
> > - no change.
> > ---
> >  .../bindings/regulator/mt6359-regulator.yaml  | 169 ++++++++++++++++++
> >  1 file changed, 169 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/regulator/mt6359-regulator.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/regulator/mt6359-regulator.yaml b/Documentation/devicetree/bindings/regulator/mt6359-regulator.yaml
> > new file mode 100644
> > index 000000000000..62ff93eefd39
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/regulator/mt6359-regulator.yaml
> > @@ -0,0 +1,169 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/regulator/mt6359-regulator.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: MT6359 Regulator from MediaTek Integrated
> > +
> > +maintainers:
> > +  - Hsin-Hsiung Wang <hsin-hsiung.wang at mediatek.com>
> > +
> > +description: |
> > +  List of regulators provided by this controller. It is named
> > +  according to its regulator type, buck_<name> and ldo_<name>.
> > +  MT6359 regulators node should be sub node of the MT6397 MFD node.
> > +
> > +properties:
> > +  $nodename:
> > +    pattern: "^pmic$"
> 
> The errors are because this schema will be applied to every 'pmic' node.
> 
> > +
> > +  mt6359regulator:
> 
> The node name here should be just 'regulators', but that should be in 
> the MFD schema and you should remove this level here. So the MFD would 
> have:
> 
> properties:
>   regulators:
>     type: object
>     $ref: schemas/regulator/mt6359-regulator.yaml#
> 
> > +    type: object
> > +    description:
> > +      list of regulators provided by this controller.
> > +
> > +    patternProperties:
> 
> And this should be at the top level of this doc.
> 
> > +      "^buck_v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^v(s1|gpu11|modem|pu|core|s2|pa|proc2|proc1|core_sshub)$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_v(ibr|rf12|usb|camio|efuse|xo22)$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^v(ibr|rf12|usb|camio|efuse|xo22)$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_v(rfck|emc|a12|a09|ufs|bbck)$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^v(rfck|emc|a12|a09|ufs|bbck)$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^vcn(18|13|33_1_bt|13_1_wifi|33_2_bt|33_2_wifi)$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_vsram_(proc2|others|md|proc1|others_sshub)$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^vsram_(proc2|others|md|proc1|others_sshub)$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_v(fe|bif|io)28$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^v(fe|bif|io)28$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_v(aud|io|aux|rf|m)18$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^v(aud|io|aux|rf|m)18$"
> > +
> > +        unevaluatedProperties: false
> > +
> > +      "^ldo_vsim[12]$":
> > +        type: object
> > +        $ref: "regulator.yaml#"
> > +
> > +        properties:
> > +          regulator-name:
> > +            pattern: "^vsim[12]$"
> > +
> > +        required:
> > +          - regulator-name
> > +
> > +        unevaluatedProperties: false
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    pmic {
> > +      mt6359regulator {
> 
> I prefer to see a single complete example in the MFD schema rather than 
> piecemeal schemas in each sub schema.
> 

Thanks for your comment.
However, MT6397 mfd driver supports several mediatek pmics which have
different regulator capability, so it is hard to list all regulators of
each pmic in the MFD schema.

Thanks.

> > +        mt6359_vgpu11_buck_reg: buck_vgpu11 {
> > +          regulator-name = "vgpu11";
> > +          regulator-min-microvolt = <400000>;
> > +          regulator-max-microvolt = <1193750>;
> > +          regulator-enable-ramp-delay = <200>;
> > +          regulator-always-on;
> > +          regulator-allowed-modes = <0 1 2>;
> > +        };
> > +
> > +        mt6359_vcamio_ldo_reg: ldo_vcamio {
> > +          regulator-name = "vcamio";
> > +          regulator-min-microvolt = <1700000>;
> > +          regulator-max-microvolt = <1900000>;
> > +        };
> > +
> > +        mt6359_vcn18_ldo_reg: ldo_vcn18 {
> > +          regulator-name = "vcn18";
> > +          regulator-min-microvolt = <1800000>;
> > +          regulator-max-microvolt = <1800000>;
> > +          regulator-enable-ramp-delay = <240>;
> > +        };
> > +
> > +        mt6359_vsram_proc2_ldo_reg: ldo_vsram_proc2 {
> > +          regulator-name = "vsram_proc2";
> > +          regulator-min-microvolt = <500000>;
> > +          regulator-max-microvolt = <1293750>;
> > +          regulator-ramp-delay = <7500>;
> > +          regulator-enable-ramp-delay = <240>;
> > +          regulator-always-on;
> > +        };
> > +
> > +        mt6359_vfe28_ldo_reg: ldo_vfe28 {
> > +          regulator-name = "vfe28";
> > +          regulator-min-microvolt = <2800000>;
> > +          regulator-max-microvolt = <2800000>;
> > +          regulator-enable-ramp-delay = <120>;
> > +        };
> > +
> > +        mt6359_vaud18_ldo_reg: ldo_vaud18 {
> > +          regulator-name = "vaud18";
> > +          regulator-min-microvolt = <1800000>;
> > +          regulator-max-microvolt = <1800000>;
> > +          regulator-enable-ramp-delay = <240>;
> > +        };
> > +
> > +        mt6359_vsim1_ldo_reg: ldo_vsim1 {
> > +          regulator-name = "vsim1";
> > +          regulator-min-microvolt = <1700000>;
> > +          regulator-max-microvolt = <3100000>;
> > +          regulator-enable-ramp-delay = <480>;
> > +        };
> > +      };
> > +    };
> > +...
> > -- 
> > 2.18.0
> > 



More information about the linux-arm-kernel mailing list