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

title: MediaTek MT6363 PMIC Regulators

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

description:
  The MT6363 SPMI PMIC provides 10 BUCK and 25 LDO (Low DropOut) regulators
  and can optionally provide overcurrent warnings with one ocp interrupt
  for each voltage regulator.

properties:
  compatible:
    const: mediatek,mt6363-regulator

  reg:
    maxItems: 1

  vsys-vbuck1-supply:
    description: Input supply for vbuck1

  vsys-vbuck2-supply:
    description: Input supply for vbuck2

  vsys-vbuck3-supply:
    description: Input supply for vbuck3

  vsys-vbuck4-supply:
    description: Input supply for vbuck4

  vsys-vbuck5-supply:
    description: Input supply for vbuck5

  vsys-vbuck6-supply:
    description: Input supply for vbuck6

  vsys-vbuck7-supply:
    description: Input supply for vbuck7

  vsys-vs1-supply:
    description: Input supply for vs1

  vsys-vs2-supply:
    description: Input supply for vs2

  vsys-vs3-supply:
    description: Input supply for vs3

  vs1-ldo1-supply:
    description: Input supply for va15, vio0p75, vm18, vrf18, vrf-io18

  vs1-ldo2-supply:
    description: Input supply for vcn15, vio18, vufs18

  vs2-ldo1-supply:
    description: Input supply for vsram-cpub, vsram-cpum, vrf12, vrf13, vufs12

  vs2-ldo2-supply:
    description: Input supply for va12-1, va12-2, vcn13, vsram-cpul

  vs3-ldo1-supply:
    description: Input supply for vsram-apu, vsram-digrf, vsram-mdfe

  vs3-ldo2-supply:
    description: Input supply for vsram-modem, vrf0p9

  vsys-ldo1-supply:
    description: Input supply for vaux18, vemc, vtref18

patternProperties:
  "^v(buck[1-7]|s[1-3])$":
    description: Buck regulators
    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, does not limit the maximum out
                current but unless only a light load is applied, there will be
                regulation accuracy and efficiency losses.
            3 - Forced Ultra Low Power mode for ultra low load, this greatly
                reduces the maximum output power, makes the regulator to be
                efficient only for ultra light load, and greatly reduces the
                quiescent current (Iq) of the buck.
        maxItems: 3
        items:
          enum: [ 0, 1, 2, 3 ]

  "^va(12-1|12-2|15)$":
    $ref: "#/$defs/ldo-common"

  "^v(aux|m|rf-io|tref)18$":
    $ref: "#/$defs/ldo-common"

  "^v(cn13|cn15|emc)$":
    $ref: "#/$defs/ldo-common"

  "^vio(0p75|18)$":
    $ref: "#/$defs/ldo-common"

  "^vrf(0p9|12|13|18)$":
    $ref: "#/$defs/ldo-common"

  "^vsram-(apu|cpub|cpum|cpul|digrf|mdfe|modem)$":
    $ref: "#/$defs/ldo-common"

  "^vufs(12|18)$":
    $ref: "#/$defs/ldo-common"

$defs:
  ldo-common:
    type: object
    $ref: regulator.yaml#
    unevaluatedProperties: false
    properties:
      regulator-allowed-modes:
        description: |
          Allowed LDO regulator operating modes allowed. Valid values below.
            0 - Normal mode with automatic power saving, reducing the switching
                frequency when light load conditions are detected
            2 - Forced Low Power mode for improved regulator efficiency, used
                when no heavy load is expected, does not limit the maximum out
                current but unless only a light load is applied, there will be
                regulation accuracy and efficiency losses.
        maxItems: 2
        items:
          enum: [ 0, 2 ]

required:
  - compatible
  - reg

additionalProperties: false
