diff options
| author | Matthias Kaehlcke <mka@chromium.org> | 2016-09-14 12:52:08 -0400 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2016-09-16 13:38:22 -0400 |
| commit | 73e705bf81ceb84b39ef9cf6ffb8d12ca0c58a23 (patch) | |
| tree | d9b12334afd63697d21e46788c7a79c80abd0da7 /include/linux | |
| parent | d89564efe79419a093e966a959bf5ba2c94e693f (diff) | |
regulator: core: Add set_voltage_time op
The new op is analogous to set_voltage_time_sel. It can be used by
regulators which don't have a table of discrete voltages. The function
returns the time for the regulator output voltage to stabilize after
being set to a new value, in microseconds. If the op is not set a
default implementation is used to calculate the delay.
This change also removes the ramp_delay calculation in the PWM
regulator, since the driver now uses the core code for the calculation
of the delay.
Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/regulator/driver.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index fcfa40a6692c..37b532410528 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
| @@ -113,10 +113,14 @@ struct regulator_linear_range { | |||
| 113 | * stabilise after being enabled, in microseconds. | 113 | * stabilise after being enabled, in microseconds. |
| 114 | * @set_ramp_delay: Set the ramp delay for the regulator. The driver should | 114 | * @set_ramp_delay: Set the ramp delay for the regulator. The driver should |
| 115 | * select ramp delay equal to or less than(closest) ramp_delay. | 115 | * select ramp delay equal to or less than(closest) ramp_delay. |
| 116 | * @set_voltage_time: Time taken for the regulator voltage output voltage | ||
| 117 | * to stabilise after being set to a new value, in microseconds. | ||
| 118 | * The function receives the from and to voltage as input, it | ||
| 119 | * should return the worst case. | ||
| 116 | * @set_voltage_time_sel: Time taken for the regulator voltage output voltage | 120 | * @set_voltage_time_sel: Time taken for the regulator voltage output voltage |
| 117 | * to stabilise after being set to a new value, in microseconds. | 121 | * to stabilise after being set to a new value, in microseconds. |
| 118 | * The function provides the from and to voltage selector, the | 122 | * The function receives the from and to voltage selector as |
| 119 | * function should return the worst case. | 123 | * input, it should return the worst case. |
| 120 | * @set_soft_start: Enable soft start for the regulator. | 124 | * @set_soft_start: Enable soft start for the regulator. |
| 121 | * | 125 | * |
| 122 | * @set_suspend_voltage: Set the voltage for the regulator when the system | 126 | * @set_suspend_voltage: Set the voltage for the regulator when the system |
| @@ -168,6 +172,8 @@ struct regulator_ops { | |||
| 168 | /* Time taken to enable or set voltage on the regulator */ | 172 | /* Time taken to enable or set voltage on the regulator */ |
| 169 | int (*enable_time) (struct regulator_dev *); | 173 | int (*enable_time) (struct regulator_dev *); |
| 170 | int (*set_ramp_delay) (struct regulator_dev *, int ramp_delay); | 174 | int (*set_ramp_delay) (struct regulator_dev *, int ramp_delay); |
| 175 | int (*set_voltage_time) (struct regulator_dev *, int old_uV, | ||
| 176 | int new_uV); | ||
| 171 | int (*set_voltage_time_sel) (struct regulator_dev *, | 177 | int (*set_voltage_time_sel) (struct regulator_dev *, |
| 172 | unsigned int old_selector, | 178 | unsigned int old_selector, |
| 173 | unsigned int new_selector); | 179 | unsigned int new_selector); |
