diff options
author | sidhartk <sidhartha.kalra@stericsson.com> | 2010-06-17 19:07:39 +0530 |
---|---|---|
committer | John Rigby <john.rigby@linaro.org> | 2010-09-02 22:45:48 -0600 |
commit | 307783b375d2f14e8e43dcb3e8b69cbc54552a47 (patch) | |
tree | e9121bf021846186e85dd1774a3fc3e48d25621c | |
parent | 0282d8a180e1c89e8bf1b9fdce90ebecee1e19a5 (diff) | |
download | linux-2.6.34-ux500-307783b375d2f14e8e43dcb3e8b69cbc54552a47.tar.gz |
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
-rwxr-xr-x | arch/arm/mach-ux500/musb_db8500.c | 8 |
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); |