mx51evk: Add DVI output support
authorFabio Estevam <fabio.estevam@freescale.com>
Wed, 9 Jan 2013 04:55:09 +0000 (04:55 +0000)
committerStefano Babic <sbabic@denx.de>
Sun, 13 Jan 2013 11:06:35 +0000 (12:06 +0100)
Add DVI output support and make it the default video output.

Currently the CLAA WVGA panel is supported, but this panel has to be purchased
separately, so using the DVI output as the default would allow more people to
try the splash screen feature on a mx51evk.

If someone still wants to use the CLAA WVGA, just set the panel variable as:
set panel claa

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
board/freescale/mx51evk/mx51evk.c
board/freescale/mx51evk/mx51evk_video.c

index d1ef431895a0786f72eb4ae42413202ee9200e97..54c16b1f9d36eb1791a781fdaf91169dbbff0bf3 100644 (file)
@@ -489,8 +489,6 @@ int board_init(void)
        /* address of boot parameters */
        gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
 
-       lcd_enable();
-
        return 0;
 }
 
index f036cf73b2e4bc5360a90a8b189ca0624d6fa2ac..7be5c9befc377095b25c6390361419231d235528 100644 (file)
@@ -48,6 +48,22 @@ static struct fb_videomode const claa_wvga = {
        .vmode          = FB_VMODE_NONINTERLACED
 };
 
+static struct fb_videomode const dvi = {
+       .name           = "DVI panel",
+       .refresh        = 60,
+       .xres           = 1024,
+       .yres           = 768,
+       .pixclock       = 15385,
+       .left_margin    = 220,
+       .right_margin   = 40,
+       .upper_margin   = 21,
+       .lower_margin   = 7,
+       .hsync_len      = 60,
+       .vsync_len      = 10,
+       .sync           = 0,
+       .vmode          = FB_VMODE_NONINTERLACED
+};
+
 void setup_iomux_lcd(void)
 {
        /* DI2_PIN15 */
@@ -73,9 +89,26 @@ void setup_iomux_lcd(void)
        gpio_direction_output(MX51EVK_LCD_BACKLIGHT, 1);
 }
 
-void lcd_enable(void)
+int board_video_skip(void)
 {
-       int ret = ipuv3_fb_init(&claa_wvga, 1, IPU_PIX_FMT_RGB565);
+       int ret;
+       char const *e = getenv("panel");
+
+       if (e) {
+               if (strcmp(e, "claa") == 0) {
+                       ret = ipuv3_fb_init(&claa_wvga, 1, IPU_PIX_FMT_RGB565);
+                       if (ret)
+                               printf("claa cannot be configured: %d\n", ret);
+                       return ret;
+               }
+       }
+
+       /*
+        * 'panel' env variable not found or has different value than 'claa'
+        *  Defaulting to dvi output.
+        */
+       ret = ipuv3_fb_init(&dvi, 0, IPU_PIX_FMT_RGB24);
        if (ret)
-               printf("LCD cannot be configured: %d\n", ret);
+               printf("dvi cannot be configured: %d\n", ret);
+       return ret;
 }