diff options
Diffstat (limited to 'extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0006-omap3-beaglexm-fix-power-on-of-DVI.patch')
-rw-r--r-- | extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0006-omap3-beaglexm-fix-power-on-of-DVI.patch | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0006-omap3-beaglexm-fix-power-on-of-DVI.patch b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0006-omap3-beaglexm-fix-power-on-of-DVI.patch new file mode 100644 index 00000000..ba74284b --- /dev/null +++ b/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0006-omap3-beaglexm-fix-power-on-of-DVI.patch @@ -0,0 +1,92 @@ +From 7ad849e3d54d897614a74ad225392bd243e07d2e Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen@beagleboard.org> +Date: Wed, 12 Jan 2011 00:23:29 +0000 +Subject: [PATCH 06/10] omap3: beaglexm: fix power on of DVI + +TFP410 DVI chip is used to provide display out. +This chip is controlled by 2 lines: +LDO which supplies the power is controlled over gpio + 2 +and the enable of the chip itself is done over gpio + 1 +NOTE: the LDO is necessary for LED, serial blocks as well. + +gpio + 1 was used to sense USB overcurrent in vanilla beagle. + +Without this fix, the display would not function as the LDO +remains shut down. + +[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> +--- + arch/arm/mach-omap2/board-omap3beagle.c | 40 +++++++++++++++++++++++++++++++ + 1 files changed, 40 insertions(+), 0 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index 939de5a..9880c5c 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -444,6 +444,8 @@ static struct gpio_led gpio_leds[]; + static int beagle_twl_gpio_setup(struct device *dev, + unsigned gpio, unsigned ngpio) + { ++ int r; ++ + if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { + mmc[0].gpio_wp = -EINVAL; + } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) || +@@ -465,6 +467,17 @@ static int beagle_twl_gpio_setup(struct device *dev, + * power switch and overcurrent detect + */ + ++ if (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XM) { ++ r = gpio_request(gpio + 1, "EHCI_nOC"); ++ if (!r) { ++ r = gpio_direction_input(gpio + 1); ++ if (r) ++ gpio_free(gpio + 1); ++ } ++ if (r) ++ pr_err("%s: unable to configure EHCI_nOC\n", __func__); ++ } ++ + if (cpu_is_omap3630()) { + /* Power on DVI, Serial and PWR led */ + gpio_request(gpio + 1, "nDVI_PWR_EN"); +@@ -506,6 +519,33 @@ static int beagle_twl_gpio_setup(struct device *dev, + /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */ + gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1; + ++ /* ++ * gpio + 1 on Xm controls the TFP410's enable line (active low) ++ * gpio + 2 control varies depending on the board rev as follows: ++ * P7/P8 revisions(prototype): Camera EN ++ * A2+ revisions (production): LDO (supplies DVI, serial, led blocks) ++ */ ++ if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) { ++ r = gpio_request(gpio + 1, "nDVI_PWR_EN"); ++ if (!r) { ++ r = gpio_direction_output(gpio + 1, 0); ++ if (r) ++ gpio_free(gpio + 1); ++ } ++ if (r) ++ pr_err("%s: unable to configure nDVI_PWR_EN\n", ++ __func__); ++ r = gpio_request(gpio + 2, "DVI_LDO_EN"); ++ if (!r) { ++ r = gpio_direction_output(gpio + 2, 1); ++ if (r) ++ gpio_free(gpio + 2); ++ } ++ if (r) ++ pr_err("%s: unable to configure DVI_LDO_EN\n", ++ __func__); ++ } ++ + return 0; + } + +-- +1.6.6.1 + |