summaryrefslogtreecommitdiffstats
path: root/extras/recipes-kernel/linux/linux-omap-psp-2.6.32/beagleboard-xmc/0006-omap3-beaglexm-fix-power-on-of-DVI.patch
diff options
context:
space:
mode:
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.patch92
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 @@
1From 7ad849e3d54d897614a74ad225392bd243e07d2e Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@beagleboard.org>
3Date: Wed, 12 Jan 2011 00:23:29 +0000
4Subject: [PATCH 06/10] omap3: beaglexm: fix power on of DVI
5
6TFP410 DVI chip is used to provide display out.
7This chip is controlled by 2 lines:
8LDO which supplies the power is controlled over gpio + 2
9and the enable of the chip itself is done over gpio + 1
10NOTE: the LDO is necessary for LED, serial blocks as well.
11
12gpio + 1 was used to sense USB overcurrent in vanilla beagle.
13
14Without this fix, the display would not function as the LDO
15remains shut down.
16
17[nm@ti.com: split up, added descriptive changelogs]
18Signed-off-by: Nishanth Menon <nm@ti.com>
19Signed-off-by: Koen Kooi <koen@beagleboard.org>
20Signed-off-by: Tony Lindgren <tony@atomide.com>
21---
22 arch/arm/mach-omap2/board-omap3beagle.c | 40 +++++++++++++++++++++++++++++++
23 1 files changed, 40 insertions(+), 0 deletions(-)
24
25diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
26index 939de5a..9880c5c 100644
27--- a/arch/arm/mach-omap2/board-omap3beagle.c
28+++ b/arch/arm/mach-omap2/board-omap3beagle.c
29@@ -444,6 +444,8 @@ static struct gpio_led gpio_leds[];
30 static int beagle_twl_gpio_setup(struct device *dev,
31 unsigned gpio, unsigned ngpio)
32 {
33+ int r;
34+
35 if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
36 mmc[0].gpio_wp = -EINVAL;
37 } else if ((omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_C1_3) ||
38@@ -465,6 +467,17 @@ static int beagle_twl_gpio_setup(struct device *dev,
39 * power switch and overcurrent detect
40 */
41
42+ if (omap3_beagle_get_rev() != OMAP3BEAGLE_BOARD_XM) {
43+ r = gpio_request(gpio + 1, "EHCI_nOC");
44+ if (!r) {
45+ r = gpio_direction_input(gpio + 1);
46+ if (r)
47+ gpio_free(gpio + 1);
48+ }
49+ if (r)
50+ pr_err("%s: unable to configure EHCI_nOC\n", __func__);
51+ }
52+
53 if (cpu_is_omap3630()) {
54 /* Power on DVI, Serial and PWR led */
55 gpio_request(gpio + 1, "nDVI_PWR_EN");
56@@ -506,6 +519,33 @@ static int beagle_twl_gpio_setup(struct device *dev,
57 /* TWL4030_GPIO_MAX + 1 == ledB, PMU_STAT (out, active low LED) */
58 gpio_leds[2].gpio = gpio + TWL4030_GPIO_MAX + 1;
59
60+ /*
61+ * gpio + 1 on Xm controls the TFP410's enable line (active low)
62+ * gpio + 2 control varies depending on the board rev as follows:
63+ * P7/P8 revisions(prototype): Camera EN
64+ * A2+ revisions (production): LDO (supplies DVI, serial, led blocks)
65+ */
66+ if (omap3_beagle_get_rev() == OMAP3BEAGLE_BOARD_XM) {
67+ r = gpio_request(gpio + 1, "nDVI_PWR_EN");
68+ if (!r) {
69+ r = gpio_direction_output(gpio + 1, 0);
70+ if (r)
71+ gpio_free(gpio + 1);
72+ }
73+ if (r)
74+ pr_err("%s: unable to configure nDVI_PWR_EN\n",
75+ __func__);
76+ r = gpio_request(gpio + 2, "DVI_LDO_EN");
77+ if (!r) {
78+ r = gpio_direction_output(gpio + 2, 1);
79+ if (r)
80+ gpio_free(gpio + 2);
81+ }
82+ if (r)
83+ pr_err("%s: unable to configure DVI_LDO_EN\n",
84+ __func__);
85+ }
86+
87 return 0;
88 }
89
90--
911.6.6.1
92