提交 aa23f539 编写于 作者: C Chen-Yu Tsai 提交者: Hans de Goede

power: axp221: Remove switch case to simplify axp_set_eldo

The ELDO enable bits and registers are contiguous for axp221. Instead
of a switch case testing against the index, just use the index to shift
the bit or register offset.
Signed-off-by: NChen-Yu Tsai <wens@csie.org>
Reviewed-by: NHans de Goede <hdegoede@redhat.com>
Signed-off-by: NHans de Goede <hdegoede@redhat.com>
上级 5af116b5
......@@ -191,33 +191,20 @@ int axp_set_eldo(int eldo_num, unsigned int mvolt)
{
int ret;
u8 cfg = axp221_mvolt_to_cfg(mvolt, 700, 3300, 100);
u8 addr, bits;
switch (eldo_num) {
case 3:
addr = AXP221_ELDO3_CTRL;
bits = AXP221_OUTPUT_CTRL2_ELDO3_EN;
break;
case 2:
addr = AXP221_ELDO2_CTRL;
bits = AXP221_OUTPUT_CTRL2_ELDO2_EN;
break;
case 1:
addr = AXP221_ELDO1_CTRL;
bits = AXP221_OUTPUT_CTRL2_ELDO1_EN;
break;
default:
if (eldo_num < 1 || eldo_num > 3)
return -EINVAL;
}
if (mvolt == 0)
return pmic_bus_clrbits(AXP221_OUTPUT_CTRL2, bits);
return pmic_bus_clrbits(AXP221_OUTPUT_CTRL2,
AXP221_OUTPUT_CTRL2_ELDO1_EN << (eldo_num - 1));
ret = pmic_bus_write(addr, cfg);
ret = pmic_bus_write(AXP221_ELDO1_CTRL + (eldo_num - 1), cfg);
if (ret)
return ret;
return pmic_bus_setbits(AXP221_OUTPUT_CTRL2, bits);
return pmic_bus_setbits(AXP221_OUTPUT_CTRL2,
AXP221_OUTPUT_CTRL2_ELDO1_EN << (eldo_num - 1));
}
int axp_init(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册