aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCliff Cai <cliff.cai@analog.com>2010-03-12 03:29:10 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2010-05-20 16:21:32 -0400
commit6ddc6dae4ab559b648bc348e3a48e113e92ab4a2 (patch)
tree0a67e89a4501ed974217f02e1a0e86d21f15589b
parentfb9c58edf13fc30d160ce52018576a1d7d45d795 (diff)
USB: musb: allow the Blackfin vrsel gpio to be active low
Rather than hardcoding the gpio levels for vrsel, allow the platform resources to handle this so boards can be active high or low. Signed-off-by: Cliff Cai <cliff.cai@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-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 7c71eb422a9c..eb4392f904e4 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)
238 238
239static void bfin_set_vbus(struct musb *musb, int is_on) 239static void bfin_set_vbus(struct musb *musb, int is_on)
240{ 240{
241 if (is_on) 241 int value = musb->config->gpio_vrsel_active;
242 gpio_set_value(musb->config->gpio_vrsel, 1); 242 if (!is_on)
243 else 243 value = !value;
244 gpio_set_value(musb->config->gpio_vrsel, 0); 244 gpio_set_value(musb->config->gpio_vrsel, value);
245 245
246 DBG(1, "VBUS %s, devctl %02x " 246 DBG(1, "VBUS %s, devctl %02x "
247 /* otg %3x conf %08x prcm %08x */ "\n", 247 /* otg %3x conf %08x prcm %08x */ "\n",
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h
index f3d68f62dae8..fbb83fe21851 100644
--- a/include/linux/usb/musb.h
+++ b/include/linux/usb/musb.h
@@ -88,6 +88,7 @@ struct musb_hdrc_config {
88#ifdef CONFIG_BLACKFIN 88#ifdef CONFIG_BLACKFIN
89 /* A GPIO controlling VRSEL in Blackfin */ 89 /* A GPIO controlling VRSEL in Blackfin */
90 unsigned int gpio_vrsel; 90 unsigned int gpio_vrsel;
91 unsigned int gpio_vrsel_active;
91#endif 92#endif
92 93
93}; 94};