Skip to content

Commit 35398ee

Browse files
committed
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
2 parents 5edb564 + 0d2a8ef commit 35398ee

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

drivers/regulator/qcom_smd-regulator.c

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,19 @@ static const struct regulator_ops rpm_smps_ldo_ops = {
140140
.enable = rpm_reg_enable,
141141
.disable = rpm_reg_disable,
142142
.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,
143156

144157
.get_voltage = rpm_reg_get_voltage,
145158
.set_voltage = rpm_reg_set_voltage,
@@ -247,7 +260,7 @@ static const struct regulator_desc pm8941_nldo = {
247260
static const struct regulator_desc pm8941_lnldo = {
248261
.fixed_uV = 1740000,
249262
.n_voltages = 1,
250-
.ops = &rpm_smps_ldo_ops,
263+
.ops = &rpm_smps_ldo_ops_fixed,
251264
};
252265

253266
static const struct regulator_desc pm8941_switch = {

drivers/regulator/tps51632-regulator.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,14 @@ static int tps51632_dcdc_set_ramp_delay(struct regulator_dev *rdev,
9494
int ramp_delay)
9595
{
9696
struct tps51632_chip *tps = rdev_get_drvdata(rdev);
97-
int bit = ramp_delay/6000;
97+
int bit;
9898
int ret;
9999

100-
if (bit)
101-
bit--;
100+
if (ramp_delay == 0)
101+
bit = 0;
102+
else
103+
bit = DIV_ROUND_UP(ramp_delay, 6000) - 1;
104+
102105
ret = regmap_write(tps->regmap, TPS51632_SLEW_REGS, BIT(bit));
103106
if (ret < 0)
104107
dev_err(tps->dev, "SLEW reg write failed, err %d\n", ret);

0 commit comments

Comments
 (0)