summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorIgor Grinberg <grinberg@compulab.co.il>2011-12-13 19:48:53 +0100
committerTony Lindgren <tony@atomide.com>2011-12-13 19:48:53 +0100
commit039401f3efa890cd9974d8921c19359ac2084df3 (patch)
treed7adfd4bb61b7552ab94270651a842e78796e5b3 /arch/arm/mach-omap2
parentARM: OMAP3: cm-t35: enable audio (diff)
downloadlinux-039401f3efa890cd9974d8921c19359ac2084df3.tar.xz
linux-039401f3efa890cd9974d8921c19359ac2084df3.zip
ARM: OMAP3: cm-t35: Add reset for USB hub
USB hub is not functional until is reset. Reset the USB hub on SB-T35. Signed-off-by: Igor Grinberg <grinberg@compulab.co.il> [tony@atomide.com: updated subject] Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index c417b7d004d1..865f96da771e 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -53,7 +53,8 @@
#include "hsmmc.h"
#include "common-board-devices.h"
-#define CM_T35_GPIO_PENDOWN 57
+#define CM_T35_GPIO_PENDOWN 57
+#define SB_T35_USB_HUB_RESET_GPIO 167
#define CM_T35_SMSC911X_CS 5
#define CM_T35_SMSC911X_GPIO 163
@@ -436,6 +437,23 @@ static struct usbhs_omap_board_data usbhs_bdata __initdata = {
.reset_gpio_port[2] = -EINVAL
};
+static void cm_t35_init_usbh(void)
+{
+ int err;
+
+ err = gpio_request_one(SB_T35_USB_HUB_RESET_GPIO,
+ GPIOF_OUT_INIT_LOW, "usb hub rst");
+ if (err) {
+ pr_err("SB-T35: usb hub rst gpio request failed: %d\n", err);
+ } else {
+ udelay(10);
+ gpio_set_value(SB_T35_USB_HUB_RESET_GPIO, 1);
+ msleep(1);
+ }
+
+ usbhs_init(&usbhs_bdata);
+}
+
static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,
unsigned ngpio)
{
@@ -624,7 +642,7 @@ static void __init cm_t3x_common_init(void)
cm_t35_init_display();
usb_musb_init(NULL);
- usbhs_init(&usbhs_bdata);
+ cm_t35_init_usbh();
}
static void __init cm_t35_init(void)