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

title: MT6360 Regulator from MediaTek Integrated

maintainers:
  - Gene Chen <gene_chen@richtek.com>

description: |
  list of regulators provided by this controller, must be named
  after their hardware counterparts buck1/2 or ldo1/2/3/5/6/7

properties:
  compatible:
    const: mediatek,mt6360-regulator

  LDO_VIN1-supply:
    description: Input supply phandle(s) for LDO1/2/3
  LDO_VIN2-supply:
    description: Input supply phandle(s) for LDO5
  LDO_VIN3-supply:
    description: Input supply phandle(s) for LDO6/7

patternProperties:
  "^buck[12]$":
    $ref: regulator.yaml#
    unevaluatedProperties: false

  "^ldo[123567]$":
    $ref: regulator.yaml#
    unevaluatedProperties: false

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/regulator/mediatek,mt6360-regulator.h>
    regulator {
      compatible = "mediatek,mt6360-regulator";
      LDO_VIN3-supply = <&BUCK2>;
      buck1 {
        regulator-name = "mt6360,buck1";
        regulator-min-microvolt = <300000>;
        regulator-max-microvolt = <1300000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP
             MT6360_OPMODE_ULP>;
      };
      BUCK2: buck2 {
        regulator-name = "mt6360,buck2";
        regulator-min-microvolt = <300000>;
        regulator-max-microvolt = <1300000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP
             MT6360_OPMODE_ULP>;
      };
      ldo6 {
        regulator-name = "mt6360,ldo6";
        regulator-min-microvolt = <500000>;
        regulator-max-microvolt = <2100000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo7 {
        regulator-name = "mt6360,ldo7";
        regulator-min-microvolt = <500000>;
        regulator-max-microvolt = <2100000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo1 {
        regulator-name = "mt6360,ldo1";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo2 {
        regulator-name = "mt6360,ldo2";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo3 {
        regulator-name = "mt6360,ldo3";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
      ldo5 {
        regulator-name = "mt6360,ldo5";
        regulator-min-microvolt = <2700000>;
        regulator-max-microvolt = <3600000>;
        regulator-allowed-modes = <MT6360_OPMODE_NORMAL
             MT6360_OPMODE_LP>;
      };
    };
...