# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/mediatek,mt6332-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MT6332 Regulator from MediaTek Integrated

maintainers:
  - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

description: |
  The MT6332 Companion PMIC provides 6 BUCK and 4 LDO (Low Dropout)
  regulators and nodes are named according to the regulator type:
  buck-<name> and ldo-<name>.
  MT6332 regulators node should be sub node of the MT6397 MFD node.

patternProperties:
  "^buck-v(dram|dvfs2|pa|rf18a|rf18b|sbst)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(dram|dvfs2|pa|rf18a|rf18b|sbst)$"

    unevaluatedProperties: false

  "^ldo-v(bif28|dig18|sram|usb33)$":
    type: object
    $ref: "regulator.yaml#"

    properties:
      regulator-name:
        pattern: "^v(bif28|dig18|sram|usb33)$"

    unevaluatedProperties: false

additionalProperties: false

examples:
  - |
    pmic {
      regulators {
        mt6332_vdram_reg: buck-vdram {
          regulator-name = "vdram";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-ramp-delay = <12500>;
          regulator-allowed-modes = <0 1>;
          regulator-always-on;
        };
        mt6332_vdvfs2_reg: buck-vdvfs2 {
          regulator-name = "vdvfs2";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1312500>;
          regulator-ramp-delay = <12500>;
          regulator-enable-ramp-delay = <1>;
          regulator-allowed-modes = <0 1>;
        };
        mt6332_vpa_reg: buck-vpa {
          regulator-name = "vpa";
          regulator-min-microvolt = <500000>;
          regulator-max-microvolt = <3400000>;
        };
        mt6332_vrf18a_reg: buck-vrf18a {
          regulator-name = "vrf18a";
          regulator-min-microvolt = <1050000>;
          regulator-max-microvolt = <2240625>;
          regulator-allowed-modes = <0 1>;
        };
        mt6332_vrf18b_reg: buck-vrf18b {
          regulator-name = "vrf18b";
          regulator-min-microvolt = <1050000>;
          regulator-max-microvolt = <2240625>;
          regulator-allowed-modes = <0 1>;
        };
        mt6332_vsbst_reg: buck-vsbst {
          regulator-name = "vsbst";
          regulator-min-microvolt = <3500000>;
          regulator-max-microvolt = <7468750>;
        };
        mt6332_vauxb32_reg: ldo-vauxb32 {
          regulator-name = "vauxb32";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <3200000>;
        };
        mt6332_vbif28_reg: ldo-vbif28 {
          regulator-name = "vbif28";
          regulator-min-microvolt = <2800000>;
          regulator-max-microvolt = <2800000>;
        };
        mt6332_vdig18_reg: ldo-vdig18 {
          regulator-name = "vdig18";
          regulator-min-microvolt = <1200000>;
          regulator-max-microvolt = <1800000>;
          regulator-always-on;
        };
        mt6332_vsram_reg: ldo-vsram {
          regulator-name = "vauxa32";
          regulator-min-microvolt = <700000>;
          regulator-max-microvolt = <1493750>;
          regulator-always-on;
        };
        mt6332_vusb33_reg: ldo-vusb33 {
          regulator-name = "vusb33";
          regulator-min-microvolt = <3300000>;
          regulator-max-microvolt = <3300000>;
        };
      };
    };
...
