aboutsummaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorsidhartk <sidhartha.kalra@stericsson.com>2010-06-17 19:07:39 +0530
committerJohn Rigby <john.rigby@linaro.org>2010-09-02 22:45:48 -0600
commit307783b375d2f14e8e43dcb3e8b69cbc54552a47 (patch)
treee9121bf021846186e85dd1774a3fc3e48d25621c /arch/arm
parent0282d8a180e1c89e8bf1b9fdce90ebecee1e19a5 (diff)
Fix: USB Power management: USB driver to implement power saving at boot up
At boot up, if usb cable is not attached, OPP constraints can be released on the APE domain with respect to USB client. This is done because if usb is not used, APE can run at a low power OPP. ST-Ericsson ID: ER262472 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/1710 Tested-by: Sidhartha KALRA <sidhartha.kalra@stericsson.com> Reviewed-by: Praveena NADAHALLY <praveen.nadahally@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Signed-off-by: Mian Yousaf Kaukab <mian.yousaf.kaukab@stericsson.com> Change-Id: Ia8ac5e69dd23431bab0b47a56239afd29388cf1a Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/2637
Diffstat (limited to 'arch/arm')
-rwxr-xr-xarch/arm/mach-ux500/musb_db8500.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arm/mach-ux500/musb_db8500.c b/arch/arm/mach-ux500/musb_db8500.c
index 89e00b364ab..bc1049cc9f6 100755
--- a/arch/arm/mach-ux500/musb_db8500.c
+++ b/arch/arm/mach-ux500/musb_db8500.c
@@ -82,7 +82,7 @@ void usb_host_phy_en(int enable)
boot_time_flag = USB_DISABLE;
} else {
#ifdef CONFIG_REGULATOR
- regulator_enable(musb_vbus_supply);
+ regulator_disable(musb_vbus_supply);
regulator_set_optimum_mode(musb_vape_supply, 0);
#else
ab8500_write(AB8500_REGU_CTRL1,
@@ -206,6 +206,12 @@ int musb_phy_en(u8 mode)
return -1;
}
regulator_enable(musb_vape_supply);
+ /*
+ * When usb cable is not connected, set_optimum to 0 to release any
+ * OPP constraints on the APE domain with respect to the USB client.
+ * This is done to run APE at low power OPP when usb is not used.
+ */
+ regulator_set_optimum_mode(musb_vape_supply, 0);
musb_vbus_supply = regulator_get(NULL, "v-bus");
if (IS_ERR(musb_vbus_supply)) {
ret = PTR_ERR(musb_vbus_supply);