diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-06-14 01:52:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-06-14 01:52:31 -0400 |
commit | 35398ee3f00a4363faa1bd0fe7bb6a90f8a6b7e4 (patch) | |
tree | b7d56af2d4f89bbb58bf402a6775de73d14b96c5 | |
parent | 5edb56491d4812c42175980759da53388e5d86f5 (diff) | |
parent | 0d2a8ef4395e84aa9623ac1e282417c75a73490c (diff) |
Merge tag 'regulator-fix-v4.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
Pull regulator fixes from Mark Brown:
"Some driver specific fixes for the regulator subsystem:
- Some of the changes to the core that were merged in the last merge
window exposed the fact that the qcom-smd driver hadn't implemented
the voltage enumeration interfaces like it should. Since it's a
simple driver specific fix to implement them do that.
- Fix the ramp delay configuration for tps51632"
* tag 'regulator-fix-v4.7-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
regulator: qcom_smd: add list_voltage callback
regulator: qcom_smd: add regulator ops for pm8941 lnldo
regulator: qcom_smd: add list_voltage callback
regulator: tps51632: Fix setting ramp delay
-rw-r--r-- | drivers/regulator/qcom_smd-regulator.c | 15 | ||||
-rw-r--r-- | drivers/regulator/tps51632-regulator.c | 9 |
2 files changed, 20 insertions, 4 deletions
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c index 56a17ec5b5ef..526bf23dcb49 100644 --- a/drivers/regulator/qcom_smd-regulator.c +++ b/drivers/regulator/qcom_smd-regulator.c | |||
@@ -140,6 +140,19 @@ static const struct regulator_ops rpm_smps_ldo_ops = { | |||
140 | .enable = rpm_reg_enable, | 140 | .enable = rpm_reg_enable, |
141 | .disable = rpm_reg_disable, | 141 | .disable = rpm_reg_disable, |
142 | .is_enabled = rpm_reg_is_enabled, | 142 | .is_enabled = rpm_reg_is_enabled, |
143 | .list_voltage = regulator_list_voltage_linear_range, | ||
144 | |||
145 | .get_voltage = rpm_reg_get_voltage, | ||
146 | .set_voltage = rpm_reg_set_voltage, | ||
147 | |||
148 | .set_load = rpm_reg_set_load, | ||
149 | }; | ||
150 | |||
151 | static const struct regulator_ops rpm_smps_ldo_ops_fixed = { | ||
152 | .enable = rpm_reg_enable, | ||
153 | .disable = rpm_reg_disable, | ||
154 | .is_enabled = rpm_reg_is_enabled, | ||
155 | .list_voltage = regulator_list_voltage_linear_range, | ||
143 | 156 | ||
144 | .get_voltage = rpm_reg_get_voltage, | 157 | .get_voltage = rpm_reg_get_voltage, |
145 | .set_voltage = rpm_reg_set_voltage, | 158 | .set_voltage = rpm_reg_set_voltage, |
@@ -247,7 +260,7 @@ static const struct regulator_desc pm8941_nldo = { | |||
247 | static const struct regulator_desc pm8941_lnldo = { | 260 | static const struct regulator_desc pm8941_lnldo = { |
248 | .fixed_uV = 1740000, | 261 | .fixed_uV = 1740000, |
249 | .n_voltages = 1, | 262 | .n_voltages = 1, |
250 | .ops = &rpm_smps_ldo_ops, | 263 | .ops = &rpm_smps_ldo_ops_fixed, |
251 | }; | 264 | }; |
252 | 265 | ||
253 | static const struct regulator_desc pm8941_switch = { | 266 | static const struct regulator_desc pm8941_switch = { |
diff --git a/drivers/regulator/tps51632-regulator.c b/drivers/regulator/tps51632-regulator.c index 572816e30095..c139890c1514 100644 --- a/drivers/regulator/tps51632-regulator.c +++ b/drivers/regulator/tps51632-regulator.c | |||
@@ -94,11 +94,14 @@ static int tps51632_dcdc_set_ramp_delay(struct regulator_dev *rdev, | |||
94 | int ramp_delay) | 94 | int ramp_delay) |
95 | { | 95 | { |
96 | struct tps51632_chip *tps = rdev_get_drvdata(rdev); | 96 | struct tps51632_chip *tps = rdev_get_drvdata(rdev); |
97 | int bit = ramp_delay/6000; | 97 | int bit; |
98 | int ret; | 98 | int ret; |
99 | 99 | ||
100 | if (bit) | 100 | if (ramp_delay == 0) |
101 | bit--; | 101 | bit = 0; |
102 | else | ||
103 | bit = DIV_ROUND_UP(ramp_delay, 6000) - 1; | ||
104 | |||
102 | ret = regmap_write(tps->regmap, TPS51632_SLEW_REGS, BIT(bit)); | 105 | ret = regmap_write(tps->regmap, TPS51632_SLEW_REGS, BIT(bit)); |
103 | if (ret < 0) | 106 | if (ret < 0) |
104 | dev_err(tps->dev, "SLEW reg write failed, err %d\n", ret); | 107 | dev_err(tps->dev, "SLEW reg write failed, err %d\n", ret); |