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 <r...@formelder.dk> Fixes: 795857df413a ("sunxi: power: add AXP809 support") --- This patch needs someone to test it. I can't do so myself because I don't have any hardware with an AXP809 PMIC. I just happened to spot the bug when looking at the code. drivers/power/axp809.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/power/axp809.c b/drivers/power/axp809.c index c5b608d..5b5cb36 100644 --- a/drivers/power/axp809.c +++ b/drivers/power/axp809.c @@ -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)); } -- 2.10.2 -- Rask Ingemann Lambertsen _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot