diff options
author | Cliff Cai <cliff.cai@analog.com> | 2010-03-12 10:29:10 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-05-20 13:21:32 -0700 |
commit | 6ddc6dae4ab559b648bc348e3a48e113e92ab4a2 (patch) | |
tree | 0a67e89a4501ed974217f02e1a0e86d21f15589b | |
parent | fb9c58edf13fc30d160ce52018576a1d7d45d795 (diff) | |
download | op-kernel-dev-6ddc6dae4ab559b648bc348e3a48e113e92ab4a2.zip op-kernel-dev-6ddc6dae4ab559b648bc348e3a48e113e92ab4a2.tar.gz |
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.c | 8 | ||||
-rw-r--r-- | include/linux/usb/musb.h | 1 |
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/usb/musb/blackfin.c b/drivers/usb/musb/blackfin.c index 7c71eb4..eb4392f 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 f3d68f6..fbb83fe 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 }; |