Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 216999
b: refs/heads/master
c: 4415beb
h: refs/heads/master
i:
  216997: 8c4e1b4
  216995: 5420bf6
  216991: 8ca13eb
v: v3
  • Loading branch information
David Anders authored and Tony Lindgren committed Oct 8, 2010
1 parent 0e85ea5 commit be9b910
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b9b52620823f84f95f3fd94dd6769b7102d7888a
refs/heads/master: 4415beb6fb519c4e98491666838494a8c46cc3ee
54 changes: 54 additions & 0 deletions trunk/arch/arm/mach-omap2/board-omap4panda.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@
#include "timer-gp.h"


#define GPIO_HUB_POWER 1
#define GPIO_HUB_NRESET 62

static struct gpio_led gpio_leds[] = {
{
.name = "pandaboard::status1",
Expand Down Expand Up @@ -78,6 +81,56 @@ static void __init omap4_panda_init_irq(void)
omap_gpio_init();
}

static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = {
.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 = false,
.reset_gpio_port[0] = -EINVAL,
.reset_gpio_port[1] = -EINVAL,
.reset_gpio_port[2] = -EINVAL
};

static void __init omap4_ehci_init(void)
{
int ret;


/* disable the power to the usb hub prior to init */
ret = gpio_request(GPIO_HUB_POWER, "hub_power");
if (ret) {
pr_err("Cannot request GPIO %d\n", GPIO_HUB_POWER);
goto error1;
}
gpio_export(GPIO_HUB_POWER, 0);
gpio_direction_output(GPIO_HUB_POWER, 0);
gpio_set_value(GPIO_HUB_POWER, 0);

/* reset phy+hub */
ret = gpio_request(GPIO_HUB_NRESET, "hub_nreset");
if (ret) {
pr_err("Cannot request GPIO %d\n", GPIO_HUB_NRESET);
goto error2;
}
gpio_export(GPIO_HUB_NRESET, 0);
gpio_direction_output(GPIO_HUB_NRESET, 0);
gpio_set_value(GPIO_HUB_NRESET, 0);
gpio_set_value(GPIO_HUB_NRESET, 1);

usb_ehci_init(&ehci_pdata);

/* enable power to hub */
gpio_set_value(GPIO_HUB_POWER, 1);
return;

error2:
gpio_free(GPIO_HUB_POWER);
error1:
pr_err("Unable to initialize EHCI power/reset\n");
return;

}

static struct omap_musb_board_data musb_board_data = {
.interface_type = MUSB_INTERFACE_UTMI,
.mode = MUSB_PERIPHERAL,
Expand Down Expand Up @@ -314,6 +367,7 @@ static void __init omap4_panda_init(void)
omap4_twl6030_hsmmc_init(mmc);
/* OMAP4 Panda uses internal transceiver so register nop transceiver */
usb_nop_xceiv_register();
omap4_ehci_init();
/* FIXME: allow multi-omap to boot until musb is updated for omap4 */
if (!cpu_is_omap44xx())
usb_musb_init(&musb_board_data);
Expand Down

0 comments on commit be9b910

Please sign in to comment.