Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0abd6f5 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

regulator: max8973: Fix setting ramp delay



Current code can set ramp delay to a wrong setting that the return value
from .set_voltage_time_sel is not enough for proper delay.
Fix the logic in .set_ramp_delay and also remove unused ret_val variable.

Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 1a695a90
Loading
Loading
Loading
Loading
+6 −10
Original line number Diff line number Diff line
@@ -271,22 +271,18 @@ static int max8973_set_ramp_delay(struct regulator_dev *rdev,
	struct max8973_chip *max = rdev_get_drvdata(rdev);
	unsigned int control;
	int ret;
	int ret_val;

	/* Set ramp delay */
	if (ramp_delay < 25000) {
	if (ramp_delay <= 12000)
		control = MAX8973_RAMP_12mV_PER_US;
		ret_val = 12000;
	} else if (ramp_delay < 50000) {
	else if (ramp_delay <= 25000)
		control = MAX8973_RAMP_25mV_PER_US;
		ret_val = 25000;
	} else if (ramp_delay < 200000) {
	else if (ramp_delay <= 50000)
		control = MAX8973_RAMP_50mV_PER_US;
		ret_val = 50000;
	} else {
	else if (ramp_delay <= 200000)
		control = MAX8973_RAMP_200mV_PER_US;
		ret_val = 200000;
	}
	else
		return -EINVAL;

	ret = regmap_update_bits(max->regmap, MAX8973_CONTROL1,
			MAX8973_RAMP_MASK, control);