[Maverick] SRU: Fix DVI for Beagle xM rev A3

Ricardo Salveti de Araujo rsalveti at rsalveti.net
Thu Oct 21 14:38:50 UTC 2010

SRU Justification:

Impact: With BeagleBoard xM rev A3 the DVI_PU is now used and connected to GPIO
2 on TPS65950. Without setting up this GPIO the DVI will be off, and the user
will be unable to install and use the distro.

Fix: The problem is fixed by setting up the GPIO 2 on TPS65950 for when running
at Beagle xM. There's no problem when setting this GPIO in previous xM revisions
as it's not connected. For more details please see

Testcase: When booting with current kernel on xM A3 you should be unable to use
the DVI. After applying the fix it should work the same way as with previous xM revisions.

BugLink: https://bugs.launchpad.net/bugs/663642

From: Robert Nelson <robertcnelson at gmail.com>
Date: Mon, 18 Oct 2010 15:02:35 -0500
Subject: [PATCH] UBUNTU: SAUCE: OMAP3: beagle: use GPIO2 on the xM A3 to turn DVI on

With BeagleBoard xM rev A3 the DVI_PU is now used and connected to GPIO
2 on TPS65950. This patch enable the correct GPIO pin in order to have a
working DVI again.

This patch is not yet upstream because it depends on the xM check
patches that are still not upstream.

BugLink: https://bugs.launchpad.net/bugs/663642

Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti at canonical.com>
 arch/arm/mach-omap2/board-omap3beagle.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 94cb19c..81b19e3 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -306,6 +306,10 @@ static int beagle_twl_gpio_setup(struct device *dev,
        if (cpu_is_omap3630()) {
                gpio_request(gpio + 1, "nDVI_PWR_EN");
                gpio_direction_output(gpio + 1, 0);
+               /* On the xM A3 DVI_PUP was moved to an empty GPIO pin on the TPS65950 */
+               gpio_request(gpio + 2, "DVI_PUP");
+               gpio_direction_output(gpio + 2, 1);
                /* TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, active low) */
                gpio_request(gpio + TWL4030_GPIO_MAX, "nEN_USB_PWR");

More information about the kernel-team mailing list