From 253e62bf4b118d38a9e4a396b68fac61dcae7bbc Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 12 Sep 2016 09:52:52 +0200 Subject: sunxi: axp2xx: disable ldoio0/1 at boot When cold-booting the ldoio0/1 regulators are always off / the gpios are always at tristate. But when re-booting from android these are sometimes on. Disable them at axp_init time (iow as early as possible) to remove this difference between a cold boot and a reboot. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- drivers/power/axp209.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'drivers/power/axp209.c') diff --git a/drivers/power/axp209.c b/drivers/power/axp209.c index fc162a1..731b75e 100644 --- a/drivers/power/axp209.c +++ b/drivers/power/axp209.c @@ -167,6 +167,22 @@ int axp_init(void) return rc; } + /* + * Turn off LDOIO regulators / tri-state GPIO pins, when rebooting + * from android these are sometimes on. + */ + rc = pmic_bus_write(AXP_GPIO0_CTRL, AXP_GPIO_CTRL_INPUT); + if (rc) + return rc; + + rc = pmic_bus_write(AXP_GPIO1_CTRL, AXP_GPIO_CTRL_INPUT); + if (rc) + return rc; + + rc = pmic_bus_write(AXP_GPIO2_CTRL, AXP_GPIO_CTRL_INPUT); + if (rc) + return rc; + return 0; } -- cgit v1.1