aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-omap3beagle.c
diff options
context:
space:
mode:
authorKoen Kooi <koen@beagleboard.org>2011-01-11 17:13:35 +0000
committerTony Lindgren <tony@atomide.com>2011-01-11 15:20:19 -0800
commit68fc3e152c9f99323e2a4917967725aec5281b32 (patch)
tree2eb0ab08839b0ddb647587736bbd5cca8e889d5b /arch/arm/mach-omap2/board-omap3beagle.c
parent18cbc7d94c1248fdc850ef6bac1cd8e22ef0738f (diff)
downloadkernel_samsung_smdk4412-68fc3e152c9f99323e2a4917967725aec5281b32.zip
kernel_samsung_smdk4412-68fc3e152c9f99323e2a4917967725aec5281b32.tar.gz
kernel_samsung_smdk4412-68fc3e152c9f99323e2a4917967725aec5281b32.tar.bz2
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/arm/mach-omap2/board-omap3beagle.c')
-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 6c12760..af1166b 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;