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

Commit bbafa111 authored by Hans de Goede's avatar Hans de Goede Committed by Sebastian Reichel
Browse files

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: default avatarChen-Yu Tsai <wens@csie.org>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
parent a9904aa8
Loading
Loading
Loading
Loading
+4 −10
Original line number Original line Diff line number Diff line
@@ -222,14 +222,8 @@ static inline int axp288_charger_set_vbus_inlmt(struct axp288_chrg_info *info,
					   int inlmt)
					   int inlmt)
{
{
	int ret;
	int ret;
	unsigned int val;
	u8 reg_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) {
	if (inlmt <= ILIM_100MA) {
		reg_val = CHRG_VBUS_ILIM_100MA;
		reg_val = CHRG_VBUS_ILIM_100MA;
		inlmt = 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;
		inlmt = ILIM_3000MA;
	}
	}


	reg_val = (val & ~CHRG_VBUS_ILIM_MASK)
	reg_val = reg_val << CHRG_VBUS_ILIM_BIT_POS;
			| (reg_val << CHRG_VBUS_ILIM_BIT_POS);

	ret = regmap_write(info->regmap, AXP20X_CHRG_BAK_CTRL, reg_val);
	ret = regmap_update_bits(info->regmap, AXP20X_CHRG_BAK_CTRL,
				 CHRG_VBUS_ILIM_MASK, reg_val);
	if (ret >= 0)
	if (ret >= 0)
		info->inlmt = inlmt;
		info->inlmt = inlmt;
	else
	else
		dev_err(&info->pdev->dev, "charger BAK control %d\n", ret);
		dev_err(&info->pdev->dev, "charger BAK control %d\n", ret);


set_inlmt_fail:
	return ret;
	return ret;
}
}