mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-25 18:30:06 +00:00
regulator: qcom_spmi: Refactor get_mode/set_mode
spmi_regulator_common_get_mode and spmi_regulator_common_set_mode use multi-level ifs which mirror a switch statement. Refactor to use a switch statement to make the code flow more clear. Signed-off-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
86f4ff7a0c
commit
ba576a6232
1 changed files with 18 additions and 8 deletions
|
@ -911,13 +911,16 @@ static unsigned int spmi_regulator_common_get_mode(struct regulator_dev *rdev)
|
|||
|
||||
spmi_vreg_read(vreg, SPMI_COMMON_REG_MODE, ®, 1);
|
||||
|
||||
if (reg & SPMI_COMMON_MODE_HPM_MASK)
|
||||
reg &= SPMI_COMMON_MODE_HPM_MASK | SPMI_COMMON_MODE_AUTO_MASK;
|
||||
|
||||
switch (reg) {
|
||||
case SPMI_COMMON_MODE_HPM_MASK:
|
||||
return REGULATOR_MODE_NORMAL;
|
||||
|
||||
if (reg & SPMI_COMMON_MODE_AUTO_MASK)
|
||||
case SPMI_COMMON_MODE_AUTO_MASK:
|
||||
return REGULATOR_MODE_FAST;
|
||||
|
||||
return REGULATOR_MODE_IDLE;
|
||||
default:
|
||||
return REGULATOR_MODE_IDLE;
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -925,12 +928,19 @@ spmi_regulator_common_set_mode(struct regulator_dev *rdev, unsigned int mode)
|
|||
{
|
||||
struct spmi_regulator *vreg = rdev_get_drvdata(rdev);
|
||||
u8 mask = SPMI_COMMON_MODE_HPM_MASK | SPMI_COMMON_MODE_AUTO_MASK;
|
||||
u8 val = 0;
|
||||
u8 val;
|
||||
|
||||
if (mode == REGULATOR_MODE_NORMAL)
|
||||
switch (mode) {
|
||||
case REGULATOR_MODE_NORMAL:
|
||||
val = SPMI_COMMON_MODE_HPM_MASK;
|
||||
else if (mode == REGULATOR_MODE_FAST)
|
||||
break;
|
||||
case REGULATOR_MODE_FAST:
|
||||
val = SPMI_COMMON_MODE_AUTO_MASK;
|
||||
break;
|
||||
default:
|
||||
val = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_MODE, val, mask);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue