diff options
author | Alexander Shiyan <shc_work@mail.ru> | 2012-03-24 18:00:37 +0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2012-04-02 09:32:53 +0200 |
commit | bafda33463de1a442b2106e6662171b4e7064408 (patch) | |
tree | 6d8f93e55b0a6e0f9a6c555f8b5344bbf0cb02fb /drivers | |
parent | 2079f13611ba75d9eb88fcaa6d63a91087f99b73 (diff) | |
download | barebox-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.c | 21 | ||||
-rw-r--r-- | drivers/usb/otg/ulpi.c | 24 |
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); |