diff options
author | Koen Kooi <[email protected]> | 2011-01-11 17:13:35 +0000 |
---|---|---|
committer | Tony Lindgren <[email protected]> | 2011-01-11 15:20:19 -0800 |
commit | 68fc3e152c9f99323e2a4917967725aec5281b32 (patch) | |
tree | 2eb0ab08839b0ddb647587736bbd5cca8e889d5b | |
parent | 18cbc7d94c1248fdc850ef6bac1cd8e22ef0738f (diff) |
omap3: beaglexm: fix EHCI power up GPIO dir
EHCI enable power pin is inverted (active high) in comparison
to vanilla beagle which is active low. Handle this case conditionally.
Without this fix, Beagle XM 4 port EHCI will not function and no
networking will be available
[[email protected]: split up, added descriptive changelogs]
Signed-off-by: Nishanth Menon <[email protected]>
Signed-off-by: Koen Kooi <[email protected]>
Signed-off-by: Tony Lindgren <[email protected]>
-rw-r--r-- | arch/arm/mach-omap2/board-omap3beagle.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 6c127605942f..af1166bd1c86 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c @@ -297,9 +297,15 @@ static int beagle_twl_gpio_setup(struct device *dev, gpio_request(gpio + 1, "EHCI_nOC"); gpio_direction_input(gpio + 1); - /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ + /* + * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active + * high / others active low) + */ gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); - gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); + if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) + gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1); + else + gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; |