# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/pwm-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Generic PWM Regulator

maintainers:
  - Brian Norris <briannorris@chromium.org>
  - Lee Jones <lee@kernel.org>
  - Alexandre Courbot <acourbot@nvidia.com>

description: |
  Currently supports 2 modes of operation:

  Voltage Table:
    When in this mode, a voltage table (See below) of predefined voltage <=>
    duty-cycle values must be provided via DT. Limitations are that the
    regulator can only operate at the voltages supplied in the table.
    Intermediary duty-cycle values which would normally allow finer grained
    voltage selection are ignored and rendered useless.  Although more control
    is given to the user if the assumptions made in continuous-voltage mode do
    not reign true.

  Continuous Voltage:
    This mode uses the regulator's maximum and minimum supplied voltages
    specified in the regulator-{min,max}-microvolt properties to calculate
    appropriate duty-cycle values.  This allows for a much more fine grained
    solution when compared with voltage-table mode above.  This solution does
    make an assumption that a %50 duty-cycle value will cause the regulator
    voltage to run at half way between the supplied max_uV and min_uV values.

  If voltage-table is provided, then the device will be used in Voltage Table
  Mode.  If no voltage-table is provided, then the device will be used in
  Continuous Voltage Mode.

allOf:
  - $ref: regulator.yaml#

properties:
  compatible:
    const: pwm-regulator

  pwms:
    maxItems: 1

  voltage-table:
    description: Voltage and Duty-Cycle table.
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    items:
      items:
        - description: voltage in microvolts (uV)
        - description: duty-cycle in percent (%)

  enable-gpios:
    description: Regulator enable GPIO
    maxItems: 1

   # Optional properties for Continuous mode:
  pwm-dutycycle-unit:
    description:
      Integer value encoding the duty cycle unit. If not
        defined, <100> is assumed, meaning that
        pwm-dutycycle-range contains values expressed in
        percent.
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 100

  pwm-dutycycle-range:
    description:
      Should contain 2 entries. The first entry is encoding
        the dutycycle for regulator-min-microvolt and the
        second one the dutycycle for regulator-max-microvolt.
        Duty cycle values are expressed in pwm-dutycycle-unit.
        If not defined, <0 100> is assumed.
    $ref: /schemas/types.yaml#/definitions/uint32-array
    items:
      - description: the dutycycle for regulator-min-microvolt
      - description: the dutycycle for regulator-max-microvolt
    default: [ 0 100 ]

required:
  - compatible
  - pwms

unevaluatedProperties: false

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

    // Continuous Voltage With Enable GPIO Example:
    regulator {
        compatible = "pwm-regulator";
        pwms = <&pwm1 0 8448 0>;
        enable-gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
        regulator-min-microvolt = <1016000>;
        regulator-max-microvolt = <1114000>;
        regulator-name = "vdd_logic";
        /* unit == per-mille */
        pwm-dutycycle-unit = <1000>;
        /*
        * Inverted PWM logic, and the duty cycle range is limited
        * to 30%-70%.
        */
        pwm-dutycycle-range = <700 300>; /* */
    };

  - |
    // Voltage Table Example:
    regulator {
        compatible = "pwm-regulator";
        pwms = <&pwm1 0 8448 0>;
        regulator-min-microvolt = <1016000>;
        regulator-max-microvolt = <1114000>;
        regulator-name = "vdd_logic";

                /* Voltage Duty-Cycle */
        voltage-table = <1114000 0>,
            <1095000 10>,
            <1076000 20>,
            <1056000 30>,
            <1036000 40>,
            <1016000 50>;
    };
...
