| 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>; |
| }; |