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

title: Richtek RTQ2134 SubPMIC Regulator

maintainers:
  - ChiYuan Huang <cy_huang@richtek.com>

description: |
  The RTQ2134 is a multi-phase, programmable power management IC that
  integrates with four high efficient, synchronous step-down converter cores.

  Datasheet is available at
  https://www.richtek.com/assets/product_file/RTQ2134-QA/DSQ2134-QA-01.pdf

properties:
  compatible:
    enum:
      - richtek,rtq2134

  reg:
    maxItems: 1

  regulators:
    type: object

    patternProperties:
      "^buck[1-3]$":
        type: object
        $ref: regulator.yaml#
        description: |
          regulator description for buck[1-3].

        properties:
          richtek,use-vsel-dvs:
            type: boolean
            description: |
              If specified, buck will listen to 'vsel' pin for dvs config.
              Else, use dvs0 voltage by default.

          richtek,uv-shutdown:
            type: boolean
            description: |
              If specified, use shutdown as UV action. Else, hiccup by default.

        unevaluatedProperties: false

    additionalProperties: false

required:
  - compatible
  - reg
  - regulators

additionalProperties: false

examples:
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      rtq2134@18 {
        compatible = "richtek,rtq2134";
        reg = <0x18>;

        regulators {
          buck1 {
            regulator-name = "rtq2134-buck1";
            regulator-min-microvolt = <300000>;
            regulator-max-microvolt = <1850000>;
            regulator-always-on;
            richtek,use-vsel-dvs;
            regulator-state-mem {
              regulator-suspend-min-microvolt = <550000>;
              regulator-suspend-max-microvolt = <550000>;
            };
          };
          buck2 {
            regulator-name = "rtq2134-buck2";
            regulator-min-microvolt = <1120000>;
            regulator-max-microvolt = <1120000>;
            regulator-always-on;
            richtek,use-vsel-dvs;
            regulator-state-mem {
              regulator-suspend-min-microvolt = <1120000>;
              regulator-suspend-max-microvolt = <1120000>;
            };
          };
          buck3 {
            regulator-name = "rtq2134-buck3";
            regulator-min-microvolt = <600000>;
            regulator-max-microvolt = <600000>;
            regulator-always-on;
            richtek,use-vsel-dvs;
            regulator-state-mem {
              regulator-suspend-min-microvolt = <600000>;
              regulator-suspend-max-microvolt = <600000>;
            };
          };
        };
      };
    };