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

title: Richtek RT5739 Step-Down Buck Converter

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

description: |
  The RT5739 is a step-down switching buck converter that can deliver the
  programmable output voltage from 300mV to 1300mV with wide input voltage
  supply of 2.5V to 5.5V. It can provide up to 3.5A continuous current
  capability at over 80% high efficiency.

  The RT8092 is similar type buck converter. Compared to RT5739, it can offer
  up to 4A output current and more output voltage range to meet the application
  on most mobile products.

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    enum:
      - richtek,rt5733
      - richtek,rt5739
      - richtek,rt8092

  reg:
    maxItems: 1

  enable-gpios:
    maxItems: 1

  richtek,vsel-active-high:
    description: |
      If property is present, use the 'VSEL1' register group for buck control.
      Else, use the 'VSEL0' register group. This depends on external hardware
      'VSEL' pin connection.
    type: boolean

  regulator-allowed-modes:
    description: |
      buck allowed operating mode
        0: Auto PFM/PWM mode
        1: Forced PWM mode
    items:
      enum: [0, 1]

required:
  - compatible
  - reg

unevaluatedProperties: false

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

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

      regulator@50 {
        compatible = "richtek,rt5739";
        reg = <0x50>;
        enable-gpios = <&gpio26 1 GPIO_ACTIVE_HIGH>;
        richtek,vsel-active-high;
        regulator-name = "richtek,rt5739-buck";
        regulator-min-microvolt = <300000>;
        regulator-max-microvolt = <1300000>;
        regulator-allowed-modes = <0 1>;
        regulator-boot-on;
      };
    };
