summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlexander Shiyan <shc_work@mail.ru>2012-03-24 18:00:37 +0400
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-02 09:32:53 +0200
commitbafda33463de1a442b2106e6662171b4e7064408 (patch)
tree6d8f93e55b0a6e0f9a6c555f8b5344bbf0cb02fb /drivers
parent2079f13611ba75d9eb88fcaa6d63a91087f99b73 (diff)
downloadbarebox-bafda33463de1a442b2106e6662171b4e7064408.tar.gz
barebox-bafda33463de1a442b2106e6662171b4e7064408.tar.xz
Move set_vbus_power code to ULPI driver
This is ULPI-specific, not ISP1504. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/otg/isp1504.c21
-rw-r--r--drivers/usb/otg/ulpi.c24
2 files changed, 25 insertions, 20 deletions
diff --git a/drivers/usb/otg/isp1504.c b/drivers/usb/otg/isp1504.c
index c093a3a451..568ba72da4 100644
--- a/drivers/usb/otg/isp1504.c
+++ b/drivers/usb/otg/isp1504.c
@@ -1,29 +1,10 @@
#include <common.h>
#include <usb/ulpi.h>
-#include <usb/isp1504.h>
int isp1504_set_vbus_power(void __iomem *view, int on)
{
- int ret = 0;
-
if (ulpi_init(view))
return -1;
- if (on) {
- ret = ulpi_set(DRV_VBUS_EXT | /* enable external Vbus */
- DRV_VBUS | /* enable internal Vbus */
- USE_EXT_VBUS_IND | /* use external indicator */
- CHRG_VBUS, /* charge Vbus */
- ULPI_OTGCTL, view);
- } else {
- ret = ulpi_clear(DRV_VBUS_EXT | /* disable external Vbus */
- DRV_VBUS, /* disable internal Vbus */
- ULPI_OTGCTL, view);
-
- ret |= ulpi_set(USE_EXT_VBUS_IND | /* use external indicator */
- DISCHRG_VBUS, /* discharge Vbus */
- ULPI_OTGCTL, view);
- }
-
- return ret;
+ return ulpi_set_vbus(view, on);
}
diff --git a/drivers/usb/otg/ulpi.c b/drivers/usb/otg/ulpi.c
index ad13b4b26e..5d52511a20 100644
--- a/drivers/usb/otg/ulpi.c
+++ b/drivers/usb/otg/ulpi.c
@@ -161,3 +161,27 @@ int ulpi_init(void __iomem *view)
return -1;
}
EXPORT_SYMBOL(ulpi_init);
+
+int ulpi_set_vbus(void __iomem *view, int on)
+{
+ int ret;
+
+ if (on) {
+ ret = ulpi_set(DRV_VBUS_EXT | /* enable external Vbus */
+ DRV_VBUS | /* enable internal Vbus */
+ USE_EXT_VBUS_IND | /* use external indicator */
+ CHRG_VBUS, /* charge Vbus */
+ ULPI_OTGCTL, view);
+ } else {
+ ret = ulpi_clear(DRV_VBUS_EXT | /* disable external Vbus */
+ DRV_VBUS, /* disable internal Vbus */
+ ULPI_OTGCTL, view);
+
+ ret |= ulpi_set(USE_EXT_VBUS_IND | /* use external indicator */
+ DISCHRG_VBUS, /* discharge Vbus */
+ ULPI_OTGCTL, view);
+ }
+
+ return ret;
+}
+EXPORT_SYMBOL(ulpi_set_vbus);