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

title: Richtek RT6190 4-Switch BuckBoost controller

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

description: |
  The RT6190 is 4-Switch BuckBoost controller designed for converting input
  voltage to output voltage that can be equal to, higher or lower than input
  voltage. It operates with wide input voltage range from 4.5V to 36V, and
  the output voltage can be set from 3V to 36V by external FB pin. It's commonly
  used for the application like as BuckBoost bus supply, docking station and USB
  power delivery product.

  Datasheet is available at
  https://www.richtek.com/assets/product_file/RT6190/DS6190-02.pdf

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    enum:
      - richtek,rt6190

  reg:
    maxItems: 1

  enable-gpios:
    maxItems: 1

  wakeup-source: true

  interrupts:
    maxItems: 1

  regulator-allowed-modes:
    description: |
      buck allowed operating mode
        0: PSM mode (light load Power Saving Mode)
        1: FCCM mode (Forced-CCM mode)
    maxItems: 2
    items:
      enum: [0, 1]

required:
  - compatible
  - reg

unevaluatedProperties: false

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

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

      regulator@2c {
        compatible = "richtek,rt6190";
        reg = <0x2c>;
        wakeup-source;
        interrupts-extended = <&gpio26 0 IRQ_TYPE_LEVEL_LOW>;
        enable-gpios = <&gpio26 1 GPIO_ACTIVE_HIGH>;
        regulator-name = "richtek,rt6190-buckboost";
        regulator-min-microvolt = <3000000>;
        regulator-max-microvolt = <32000000>;
        regulator-min-microamp = <306000>;
        regulator-max-microamp = <12114000>;
        regulator-allowed-modes = <0 1>;
      };
    };