Kernel-4.18.0-80.el8_pwm-regulator

Bindings for the Generic PWM Regulator

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.

Required properties:

  • compatible: Should be “pwm-regulator”

  • pwms: PWM specification (See: ../pwm/pwm.txt)

Only required for Voltage Table Mode:

  • voltage-table: Voltage and Duty-Cycle table consisting of 2 cells
              First cell is voltage in microvolts (uV)
              Second cell is duty-cycle in percent (%)
    

Optional properties for Continuous mode:

  • pwm-dutycycle-unit: Integer value encoding the duty cycle unit. If not

          defined, <100> is assumed, meaning that
          pwm-dutycycle-range contains values expressed in
          percent.
    
  • pwm-dutycycle-range: 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.
    

NB: To be clear, 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.

Optional properties:

  • enable-gpios: GPIO to use to enable/disable the regulator

Any property defined as part of the core regulator binding can also be used.
(See: ../regulator/regulator.txt)

Continuous Voltage With Enable GPIO Example:
pwm_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:
pwm_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>;
};