[PATCH 3/6] Move set_vbus_power code to ULPI driver
Alexander Shiyan
shc_work at mail.ru
Sat Mar 24 10:00:37 EDT 2012
This is ULPI-specific, not ISP1504.
Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
---
drivers/usb/otg/isp1504.c | 21 +--------------------
drivers/usb/otg/ulpi.c | 24 ++++++++++++++++++++++++
include/usb/ulpi.h | 1 +
3 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/drivers/usb/otg/isp1504.c b/drivers/usb/otg/isp1504.c
index c093a3a..568ba72 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 ad13b4b..5d52511 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);
diff --git a/include/usb/ulpi.h b/include/usb/ulpi.h
index d841a98..75197e1 100644
--- a/include/usb/ulpi.h
+++ b/include/usb/ulpi.h
@@ -5,6 +5,7 @@ int ulpi_set(u8 bits, int reg, void __iomem *view);
int ulpi_clear(u8 bits, int reg, void __iomem *view);
int ulpi_read(int reg, void __iomem *view);
int ulpi_init(void __iomem *view);
+int ulpi_set_vbus(void __iomem *view, int on);
/* ULPI register addresses */
#define ULPI_VID_LOW 0x00 /* Vendor ID low */
--
1.7.3.4
More information about the barebox
mailing list