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