mx6sabresd: Fix wrong colors in LVDS splash
authorFabio Estevam <fabio.estevam@freescale.com>
Mon, 25 Nov 2013 12:34:26 +0000 (10:34 -0200)
committerStefano Babic <sbabic@denx.de>
Thu, 28 Nov 2013 07:28:53 +0000 (08:28 +0100)
Currently HDMI splash screen is selected by default on mx6sabresd boards.

As LVDS is also enabled, this causes incorrect colors to be displayed im the
LVDS panel.

Fix this by selecting the LVDS panel as the default splash output and only keep
HDMI or LVDS turned on at the same time.

Acked-by: Liu Ying <Ying.Liu@freescale.com>
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
board/freescale/mx6sabresd/mx6sabresd.c

index 1ecedaccd1dee94f6f93ed61abb1ae2a68eca60d..db9fdff92d87616b62cad26fdfd4b575f9e7ee78 100644 (file)
@@ -249,8 +249,22 @@ static int detect_hdmi(struct display_info_t const *dev)
        return readb(&hdmi->phy_stat0) & HDMI_DVI_STAT;
 }
 
+
+static void disable_lvds(struct display_info_t const *dev)
+{
+       struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR;
+
+       int reg = readl(&iomux->gpr[2]);
+
+       reg &= ~(IOMUXC_GPR2_LVDS_CH0_MODE_MASK |
+                IOMUXC_GPR2_LVDS_CH1_MODE_MASK);
+
+       writel(reg, &iomux->gpr[2]);
+}
+
 static void do_enable_hdmi(struct display_info_t const *dev)
 {
+       disable_lvds(dev);
        imx_enable_hdmi_phy();
 }
 
@@ -263,14 +277,15 @@ static void enable_lvds(struct display_info_t const *dev)
               IOMUXC_GPR2_DATA_WIDTH_CH1_24BIT;
        writel(reg, &iomux->gpr[2]);
 }
+
 static struct display_info_t const displays[] = {{
        .bus    = -1,
        .addr   = 0,
-       .pixfmt = IPU_PIX_FMT_RGB24,
-       .detect = detect_hdmi,
-       .enable = do_enable_hdmi,
+       .pixfmt = IPU_PIX_FMT_LVDS666,
+       .detect = NULL,
+       .enable = enable_lvds,
        .mode   = {
-               .name           = "HDMI",
+               .name           = "Hannstar-XGA",
                .refresh        = 60,
                .xres           = 1024,
                .yres           = 768,
@@ -286,11 +301,11 @@ static struct display_info_t const displays[] = {{
 } }, {
        .bus    = -1,
        .addr   = 0,
-       .pixfmt = IPU_PIX_FMT_LVDS666,
-       .detect = NULL,
-       .enable = enable_lvds,
+       .pixfmt = IPU_PIX_FMT_RGB24,
+       .detect = detect_hdmi,
+       .enable = do_enable_hdmi,
        .mode   = {
-               .name           = "Hannstar-XGA",
+               .name           = "HDMI",
                .refresh        = 60,
                .xres           = 1024,
                .yres           = 768,