* [U-Boot] [PATCH v2] sunxi: axp2xx: disable ldoio0/1 at boot
@ 2016-09-12 13:24 Hans de Goede
2016-09-12 14:21 ` Ian Campbell
0 siblings, 1 reply; 2+ messages in thread
From: Hans de Goede @ 2016-09-12 13:24 UTC (permalink / raw)
To: u-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 <hdegoede@redhat.com>
---
Changes in v2:
-Do not or pmic_bus_write results together
---
drivers/power/axp209.c | 16 ++++++++++++++++
drivers/power/axp221.c | 12 ++++++++++++
2 files changed, 28 insertions(+)
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;
}
diff --git a/drivers/power/axp221.c b/drivers/power/axp221.c
index 727ab09..109d3f4 100644
--- a/drivers/power/axp221.c
+++ b/drivers/power/axp221.c
@@ -223,6 +223,18 @@ int axp_init(void)
if (!(axp_chip_id == 0x6 || axp_chip_id == 0x7 || axp_chip_id == 0x17))
return -ENODEV;
+ /*
+ * Turn off LDOIO regulators / tri-state GPIO pins, when rebooting
+ * from android these are sometimes on.
+ */
+ ret = pmic_bus_write(AXP_GPIO0_CTRL, AXP_GPIO_CTRL_INPUT);
+ if (ret)
+ return ret;
+
+ ret = pmic_bus_write(AXP_GPIO1_CTRL, AXP_GPIO_CTRL_INPUT);
+ if (ret)
+ return ret;
+
return 0;
}
--
2.9.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] [PATCH v2] sunxi: axp2xx: disable ldoio0/1 at boot
2016-09-12 13:24 [U-Boot] [PATCH v2] sunxi: axp2xx: disable ldoio0/1 at boot Hans de Goede
@ 2016-09-12 14:21 ` Ian Campbell
0 siblings, 0 replies; 2+ messages in thread
From: Ian Campbell @ 2016-09-12 14:21 UTC (permalink / raw)
To: u-boot
On Mon, 2016-09-12 at 15:24 +0200, Hans de Goede wrote:
> 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 <hdegoede@redhat.com>
Acked-by: Ian Campbell <ijc@hellion.org.uk>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-09-12 14:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-12 13:24 [U-Boot] [PATCH v2] sunxi: axp2xx: disable ldoio0/1 at boot Hans de Goede
2016-09-12 14:21 ` Ian Campbell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox