From ba292a83dd1a829dae6b13a442da9d9dadcd17e9 Mon Sep 17 00:00:00 2001 From: Srinath Date: Thu, 23 Dec 2010 12:17:48 -0800 Subject: [PATCH] --- yaml --- r: 226679 b: refs/heads/master c: 840b929680c0d79f5248724d1b6b6d3f2ca3159e h: refs/heads/master i: 226677: 447775b3380bfc1cc51cba1f1c60f90a61e9bff6 226675: dbcd80686ff984fc10ea680df8c514381e7d46cf 226671: fbd3e04781b130165302a27d87e1776c7a73df22 v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-omap2/board-am3517crane.c | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a9ac6bf0f6b4..d5d029f068f7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 0b50c691f93a973136dc821ef11372ffdfae9646 +refs/heads/master: 840b929680c0d79f5248724d1b6b6d3f2ca3159e diff --git a/trunk/arch/arm/mach-omap2/board-am3517crane.c b/trunk/arch/arm/mach-omap2/board-am3517crane.c index 781ed2558e12..71acb5ab281c 100644 --- a/trunk/arch/arm/mach-omap2/board-am3517crane.c +++ b/trunk/arch/arm/mach-omap2/board-am3517crane.c @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -27,8 +28,14 @@ #include #include +#include #include "mux.h" +#include "control.h" + +#define GPIO_USB_POWER 35 +#define GPIO_USB_NRESET 38 + /* Board initialization */ static struct omap_board_config_kernel am3517_crane_config[] __initdata = { @@ -52,10 +59,51 @@ static void __init am3517_crane_init_irq(void) omap_init_irq(); } +static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = { + .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY, + .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN, + .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN, + + .phy_reset = true, + .reset_gpio_port[0] = GPIO_USB_NRESET, + .reset_gpio_port[1] = -EINVAL, + .reset_gpio_port[2] = -EINVAL +}; + static void __init am3517_crane_init(void) { + int ret; + omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); omap_serial_init(); + + /* Configure GPIO for EHCI port */ + if (omap_mux_init_gpio(GPIO_USB_NRESET, OMAP_PIN_OUTPUT)) { + pr_err("Can not configure mux for GPIO_USB_NRESET %d\n", + GPIO_USB_NRESET); + return; + } + + if (omap_mux_init_gpio(GPIO_USB_POWER, OMAP_PIN_OUTPUT)) { + pr_err("Can not configure mux for GPIO_USB_POWER %d\n", + GPIO_USB_POWER); + return; + } + + ret = gpio_request(GPIO_USB_POWER, "usb_ehci_enable"); + if (ret < 0) { + pr_err("Can not request GPIO %d\n", GPIO_USB_POWER); + return; + } + + ret = gpio_direction_output(GPIO_USB_POWER, 1); + if (ret < 0) { + gpio_free(GPIO_USB_POWER); + pr_err("Unable to initialize EHCI power\n"); + return; + } + + usb_ehci_init(&ehci_pdata); } MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")