Hi, Rob I am very grateful for the reviewing which addressed my yaml errors. I will check my codebase first and fix the error in the next patch. Thanks. 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@xxxxxxxxxxxx> > > --- > > 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@xxxxxxxxxxxx> > > + > > +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. > > > + 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 > >