aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorKoen Kooi <koen@beagleboard.org>2011-01-11 12:13:35 -0500
committerTony Lindgren <tony@atomide.com>2011-01-11 18:20:19 -0500
commit68fc3e152c9f99323e2a4917967725aec5281b32 (patch)
tree2eb0ab08839b0ddb647587736bbd5cca8e889d5b /arch
parent18cbc7d94c1248fdc850ef6bac1cd8e22ef0738f (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 [nm@ti.com: split up, added descriptive changelogs] Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Koen Kooi <koen@beagleboard.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c10
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,
297 gpio_request(gpio + 1, "EHCI_nOC"); 297 gpio_request(gpio + 1, "EHCI_nOC");
298 gpio_direction_input(gpio + 1); 298 gpio_direction_input(gpio + 1);
299 299
300 /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */ 300 /*
301 * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active
302 * high / others active low)
303 */
301 gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR"); 304 gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");
302 gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0); 305 if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM)
306 gpio_direction_output(gpio + TWL4030_GPIO_MAX, 1);
307 else
308 gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0);
303 309
304 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ 310 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
305 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; 311 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;