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

title: MediaTek MT6316 CP/HP/KP SPMI PMIC Regulators

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

description:
  The MediaTek MT6316CP/HP/KP PMICs are fully controlled by SPMI interface,
  features four step-down DC/DC (buck) converters, and provides 3+1 Phases,
  joining Buck 1+2+4 for the first phase, and uses Buck 3 for the second.

properties:
  compatible:
    const: mediatek,mt6316c-regulator

  reg:
    maxItems: 1

patternProperties:
  "^vbuck(124|3)$":
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    properties:
      regulator-allowed-modes:
        description: |
          Allowed Buck regulator operating modes allowed. Valid values below.
            0 - Normal mode with automatic power saving, reducing the switching
                frequency when light load conditions are detected
            1 - Forced Continuous Conduction mode (FCCM) for improved voltage
                regulation accuracy with constant switching frequency but lower
                regulator efficiency
            2 - Forced Low Power mode for improved regulator efficiency, used
                when no heavy load is expected, will shut down unnecessary IP
                blocks and secondary phases to reduce quiescent current.
                This mode does not limit the maximum output current but unless
                only a light load is applied, there will be regulation accuracy
                and efficiency losses.
        minItems: 1
        maxItems: 3
        items:
          enum: [ 0, 1, 2 ]

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/spmi/spmi.h>

    spmi {
      #address-cells = <2>;
      #size-cells = <0>;

      pmic@6 {
        compatible = "mediatek,mt6316c-regulator";
        reg = <0x6 SPMI_USID>;

        vbuck124 {
          regulator-name = "dvdd_proc_m";
          regulator-min-microvolt = <450000>;
          regulator-max-microvolt = <1277500>;
          regulator-allowed-modes = <0 1 2>;
          regulator-enable-ramp-delay = <256>;
        };
      };
    };
...
