Re: [PATCH v4] regulator: dt-bindings: mediatek: add mt6366

From: Krzysztof Kozlowski
Date: Wed Aug 24 2022 - 09:53:18 EST


On 23/08/2022 15:37, Zhiyong Tao wrote:
> Add mt6366 regulator document
>
> Signed-off-by: Zhiyong Tao <zhiyong.tao@xxxxxxxxxxxx>

https://lore.kernel.org/all/3a26be5c-04c5-cd67-1154-dfd7d99fb5d0@xxxxxxxxxx/

Where is the driver?

This ended up in spam folder, so you might need to fix up your setup
just like other folks in Mediatek did.

> ---
> Changes in patch v4:
> 1)Add unevaluatedProperties in all places
> 2)Fix check warning and errors
> 3)remove "compatible="regulator-fixed"" properties for some ldo
>
> Changes in patch v3:
> 1)change patch title
> 2)change "regulator.yaml#" to regulator.yaml#
> 3)remove regulator-name
> 4)fix 4 space for DTS example
>
> Changes in patch v2:
> 1)fix patch title description.
> 2)fix patch maintainer description.
> 3)won't cc to srv_heupstream@xxxxxxxxxxxx
> 4)fix patch commit message description.
> 5)add properties node and compatible
> 6)put "unevaluatedProperties: false" after $ref
> 7)remove underscores in node names.
> 8)change Filename to "mediatek,mt6366-regulator.yaml"
> [Zhiyong Tao <zhiyong.tao@xxxxxxxxxxxx>]
> ---
> ---
> .../regulator/mediatek,mt6366-regulator.yaml | 279 ++++++++++++++++++
> 1 file changed, 279 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6366-regulator.yaml
>
> diff --git a/Documentation/devicetree/bindings/regulator/mediatek,mt6366-regulator.yaml b/Documentation/devicetree/bindings/regulator/mediatek,mt6366-regulator.yaml
> new file mode 100644
> index 000000000000..8945bf20b574
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/mediatek,mt6366-regulator.yaml
> @@ -0,0 +1,279 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/regulator/mediatek,mt6366-regulator.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: MT6366 Regulator from MediaTek Integrated
> +
> +maintainers:
> + - Zhiyong Tao <zhiyong.tao@xxxxxxxxxxxx>
> +
> +description: |
> + List of regulators provided by this controller. It is named
> + according to its regulator type, buck_<name> and ldo_<name>.
> + MT6366 regulators node should be sub node of the MT6397 MFD node.
> +
> +properties:
> + compatible:
> + const: mediatek,mt6366-regulator

This looks incomplete. How does it bind? Further pieces also suggest you
send something incomplete.

> +
> + regulators:
> + type: object
> + description: List of regulators and its properties
> +
> + patternProperties:
> + "^buck-v(dram1|core|coresshub|proc11|proc12|gpu|s2|modem|s1)$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-v(dram2|sim1|ibr|rf12|usb|camio|camd|cn18|fe28)$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-v(xo22|efuse|mch|vcama1|emc|a12|vcama2|mc)$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^buck-(vcore)-sshub$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-vcn(28|33)-bt$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-vcn(33)-wifi$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-vsram-(others)-sshub$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-vsram-(proc11|others|gpu|proc12)$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-v(aud|bif|io|ldo)28$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-v(io|aux|rf)18$":
> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> + "^ldo-vsim[2]$":

I have now doubts whether you define generic regulators or quite
specific regulators you have on your board... Are the names used in the
device datasheet in register API description?


> + type: object
> + $ref: regulator.yaml#
> + unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - regulators
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + pmic {
> + compatible = "mediatek,mt6366-regulator";
> +
> + regulators {
> + mt6366_vdram1_reg: buck-vdram1 {

Drop the labels here and further. Why you do not have here any regular
constraints like min/max voltage?

> + regulator-ramp-delay = <12500>;
> + regulator-enable-ramp-delay = <0>;
> + regulator-allowed-modes = <0 1>;

Where do you explain the meaning of modes?

> + };
> +
> + mt6366_vcore_reg: buck-vcore {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <200>;
> + regulator-allowed-modes = <0 1>;
> + };
> +
> + mt6366_vproc11_reg: buck-vproc11 {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <200>;
> + regulator-allowed-modes = <0 1>;
> + };
> +
> + mt6366_vproc12_reg: buck-vproc12 {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <200>;
> + regulator-allowed-modes = <0 1>;
> + };
> +
> + mt6366_vgpu_reg: buck-vgpu {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <200>;
> + regulator-allowed-modes = <0 1>;
> + };
> +
> + mt6366_vs2_reg: buck-vs2 {
> + regulator-ramp-delay = <12500>;
> + regulator-enable-ramp-delay = <0>;
> + };
> +
> + mt6366_vmodem_reg: buck-vmodem {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <900>;
> + regulator-allowed-modes = <0 1>;
> + };
> +
> + mt6366_vs1_reg: buck-vs1 {
> + regulator-ramp-delay = <12500>;
> + regulator-enable-ramp-delay = <0>;
> + };
> +
> + mt6366_vdram2_reg: ldo-vdram2 {
> + regulator-enable-ramp-delay = <3300>;
> + };
> +
> + mt6366_vsim1_reg: ldo-vsim1 {
> + regulator-enable-ramp-delay = <540>;
> + };
> +
> + mt6366_vibr_reg: ldo-vibr {
> + regulator-enable-ramp-delay = <60>;
> + };
> +
> + mt6366_vrf12_reg: ldo-vrf12 {
> + regulator-enable-ramp-delay = <120>;
> + };
> +
> + mt6366_vio18_reg: ldo-vio18 {
> + regulator-enable-ramp-delay = <2700>;
> + };
> +
> + mt6366_vusb_reg: ldo-vusb {
> + regulator-name = "vusb";
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vcamio_reg: ldo-vcamio {
> + regulator-enable-ramp-delay = <325>;
> + };
> +
> + mt6366_vcamd_reg: ldo-vcamd {
> + regulator-enable-ramp-delay = <325>;
> + };
> +
> + mt6366_vcn18_reg: ldo-vcn18 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vfe28_reg: ldo-vfe28 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vsram_proc11_reg: ldo-vsram-proc11 {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <240>;
> + };
> +
> + mt6366_vcn28_reg: ldo-vcn28 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vsram_others_reg: ldo-vsram-others {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <240>;
> + };
> +
> + mt6366_vsram_gpu_reg: ldo-vsram-gpu {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <240>;
> + };
> +
> + mt6366_vxo22_reg: ldo-vxo22 {
> + regulator-enable-ramp-delay = <120>;
> + };
> +
> + mt6366_vefuse_reg: ldo-vefuse {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vaux18_reg: ldo-vaux18 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vmch_reg: ldo-vmch {
> + regulator-enable-ramp-delay = <60>;
> + };
> +
> + mt6366_vbif28_reg: ldo-vbif28 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vsram_proc12_reg: ldo-vsram-proc12 {
> + regulator-ramp-delay = <6250>;
> + regulator-enable-ramp-delay = <240>;
> + };
> +
> + mt6366_vcama1_reg: ldo-vcama1 {
> + regulator-enable-ramp-delay = <325>;
> + };
> +
> + mt6366_vemc_reg: ldo-vemc {
> + regulator-enable-ramp-delay = <60>;
> + };
> +
> + mt6366_vio28_reg: ldo-vio28 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_va12_reg: ldo-va12 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vrf18_reg: ldo-vrf18 {
> + regulator-enable-ramp-delay = <120>;
> + };
> +
> + mt6366_vcn33_bt_reg: ldo-vcn33-bt {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vcn33_wifi_reg: ldo-vcn33-wifi {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vcama2_reg: ldo-vcama2 {
> + regulator-enable-ramp-delay = <325>;
> + };
> +
> + mt6366_vmc_reg: ldo-vmc {
> + regulator-enable-ramp-delay = <60>;
> + };
> +
> + mt6366_vldo28_reg: ldo-vldo28 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vaud28_reg: ldo-vaud28 {
> + regulator-enable-ramp-delay = <270>;
> + };
> +
> + mt6366_vsim2_reg: ldo-vsim2 {
> + regulator-enable-ramp-delay = <540>;
> + };
> +
> + mt6366_vcore_sshub_reg: buck-vcore-sshub {

Empty node? What does it do?



Best regards,
Krzysztof