aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/musb/blackfin.c8
-rw-r--r--include/linux/usb/musb.h1
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c
index 7c71eb422a9..eb4392f904e 100644
--- a/drivers/usb/musb/blackfin.c
+++ b/drivers/usb/musb/blackfin.c
@@ -238,10 +238,10 @@ static void bfin_vbus_power(struct musb *musb, int is_on, int sleeping)
static void bfin_set_vbus(struct musb *musb, int is_on)
{
- if (is_on)
- gpio_set_value(musb->config->gpio_vrsel, 1);
- else
- gpio_set_value(musb->config->gpio_vrsel, 0);
+ int value = musb->config->gpio_vrsel_active;
+ if (!is_on)
+ value = !value;
+ gpio_set_value(musb->config->gpio_vrsel, value);
DBG(1, "VBUS %s, devctl %02x "
/* otg %3x conf %08x prcm %08x */ "\n",
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h
index f3d68f62dae..fbb83fe2185 100644
--- a/include/linux/usb/musb.h
+++ b/include/linux/usb/musb.h
@@ -88,6 +88,7 @@ struct musb_hdrc_config {
#ifdef CONFIG_BLACKFIN
/* A GPIO controlling VRSEL in Blackfin */
unsigned int gpio_vrsel;
+ unsigned int gpio_vrsel_active;
#endif
};