power: supply: axp288_charger: Use regmap_update_bits to set the input limits
Use regmap_update_bits in axp288_charger_set_vbus_inlmt, instead of DIY code. Reviewed-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
This commit is contained in:
parent
a9904aa828
commit
bbafa111ca
|
@ -222,14 +222,8 @@ static inline int axp288_charger_set_vbus_inlmt(struct axp288_chrg_info *info,
|
|||
int inlmt)
|
||||
{
|
||||
int ret;
|
||||
unsigned int val;
|
||||
u8 reg_val;
|
||||
|
||||
/* Read in limit register */
|
||||
ret = regmap_read(info->regmap, AXP20X_CHRG_BAK_CTRL, &val);
|
||||
if (ret < 0)
|
||||
goto set_inlmt_fail;
|
||||
|
||||
if (inlmt <= ILIM_100MA) {
|
||||
reg_val = CHRG_VBUS_ILIM_100MA;
|
||||
inlmt = ILIM_100MA;
|
||||
|
@ -253,15 +247,15 @@ static inline int axp288_charger_set_vbus_inlmt(struct axp288_chrg_info *info,
|
|||
inlmt = ILIM_3000MA;
|
||||
}
|
||||
|
||||
reg_val = (val & ~CHRG_VBUS_ILIM_MASK)
|
||||
| (reg_val << CHRG_VBUS_ILIM_BIT_POS);
|
||||
ret = regmap_write(info->regmap, AXP20X_CHRG_BAK_CTRL, reg_val);
|
||||
reg_val = reg_val << CHRG_VBUS_ILIM_BIT_POS;
|
||||
|
||||
ret = regmap_update_bits(info->regmap, AXP20X_CHRG_BAK_CTRL,
|
||||
CHRG_VBUS_ILIM_MASK, reg_val);
|
||||
if (ret >= 0)
|
||||
info->inlmt = inlmt;
|
||||
else
|
||||
dev_err(&info->pdev->dev, "charger BAK control %d\n", ret);
|
||||
|
||||
set_inlmt_fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue