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

title: Richtek RT5759 High Performance DCDC Converter

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

description: |
  The RT5759 is a high-performance, synchronous step-down DC-DC converter that
  can deliver up to 9A output current from 3V to 6.5V input supply, The output
  voltage can be programmable with I2C controlled 7-Bit VID.

  Datasheet is available at
  https://www.richtek.com/assets/product_file/RT5759/DS5759-00.pdf

properties:
  compatible:
    enum:
      - richtek,rt5759
      - richtek,rt5759a

  reg:
    maxItems: 1

  regulator-allowed-modes:
    description: |
      buck allowed operating mode
        0: auto mode (PSKIP: pulse skipping)
        1: force pwm mode
    items:
      enum: [0, 1]

  richtek,watchdog-enable:
    description: enable the external watchdog reset pin listening
    type: boolean

allOf:
  - $ref: regulator.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: richtek,rt5759
    then:
      properties:
        richtek,watchdog-enable: false

required:
  - compatible
  - reg

unevaluatedProperties: false

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

      regulator@62 {
        compatible = "richtek,rt5759";
        reg = <0x62>;
        regulator-name = "rt5759-buck";
        regulator-min-microvolt = <600000>;
        regulator-max-microvolt = <1500000>;
        regulator-boot-on;
      };
    };
  # example 2 for RT5759A
  - |
    i2c {
      #address-cells = <1>;
      #size-cells = <0>;

      regulator@62 {
        compatible = "richtek,rt5759a";
        reg = <0x62>;
        regulator-name = "rt5759a-buck";
        regulator-min-microvolt = <600000>;
        regulator-max-microvolt = <1725000>;
        regulator-boot-on;
        richtek,watchdog-enable;
      };
    };