sunxi: power: axp809.c: Fix aldo1-2 being disabled for mvolt != 0
authorRask Ingemann Lambertsen <rask@formelder.dk>
Wed, 18 Jan 2017 20:53:40 +0000 (21:53 +0100)
committerJaehoon Chung <jh80.chung@samsung.com>
Thu, 9 Mar 2017 02:26:02 +0000 (11:26 +0900)
The execution flow is currently like this for aldo_num == 1 or 2:

int axp_set_aldo(int aldo_num, unsigned int mvolt)
{
...
if (mvolt == 0)
return pmic_bus_clrbits(AXP809_OUTPUT_CTRL1,
AXP809_OUTPUT_CTRL1_ALDO1_EN << (aldo_num - 1));
...
return pmic_bus_clrbits(AXP809_OUTPUT_CTRL1,
  AXP809_OUTPUT_CTRL1_ALDO1_EN << (aldo_num - 1));
 }

I.e. aldo1 and aldo2 will always be disabled. This patch fixes it by
setting (rather than clearing) the enable bit when mvolt != 0.

Signed-off-by: Rask Ingemann Lambertsen <rask@formelder.dk>
Fixes: 795857df413a ("sunxi: power: add AXP809 support")

drivers/power/axp809.c

index c5b608d..5b5cb36 100644 (file)
@@ -143,7 +143,7 @@ int axp_set_aldo(int aldo_num, unsigned int mvolt)
        if (aldo_num == 3)
                return pmic_bus_setbits(AXP809_OUTPUT_CTRL2,
                                        AXP809_OUTPUT_CTRL2_ALDO3_EN);
-       return pmic_bus_clrbits(AXP809_OUTPUT_CTRL1,
+       return pmic_bus_setbits(AXP809_OUTPUT_CTRL1,
                                AXP809_OUTPUT_CTRL1_ALDO1_EN << (aldo_num - 1));
 }