[U-Boot] [PATCH v2 2/3] Add video support to mx51evk board

Renato Frias renato.frias at gmail.com
Wed Nov 3 03:59:05 CET 2010


From: Renato Frias <renato.frias at freescale.com>

Adds video support to mx51evk board, this board allows different displays.
This patch enables the WVGA TFT LCD panel only, on Display interface 1.
Remove comments from include/configs/mx51evk.h to use it.

Signed-off-by: Renato Frias <renato.frias at freescale.com>
---
Changes for v2:
	- Removed trailing whitespaces from struct fb_videomode
	- Using PAD_CTL_* definitions
	- Updated commit message

 board/freescale/mx51evk/mx51evk.c |   60 ++++++++++++++++++++++++++++++++++++-
 include/configs/mx51evk.h         |   11 +++++++
 2 files changed, 70 insertions(+), 1 deletions(-)

diff --git a/board/freescale/mx51evk/mx51evk.c b/board/freescale/mx51evk/mx51evk.c
index 2160d5a..3743121 100644
--- a/board/freescale/mx51evk/mx51evk.c
+++ b/board/freescale/mx51evk/mx51evk.c
@@ -34,9 +34,37 @@
 #include <fsl_pmic.h>
 #include <mc13892.h>
 
+#ifdef CONFIG_LCD
+#include <linux/fb.h>
+#include <lcd.h>
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 static u32 system_rev;
+extern int mx51_fb_init(struct fb_videomode *mode, u32 ipu_di, u32 pix_fmt);
+
+#ifdef CONFIG_LCD
+static struct fb_videomode claa_wvga = {
+	"CLAA07LC0ACW",
+	57,	/* Refresh */
+	800,	/* xres */
+	480,	/* yres */
+	37037,	/* pixclock = 27Mhz */
+	40,	/* left margin */
+	60,	/* right margin */
+	10,	/* upper margin */
+	10,	/* lower margin */
+	20,	/* hsync-len */
+	10,	/* vsync-len */
+	0,	/* sync */
+	FB_VMODE_NONINTERLACED,	/* vmode */
+	0,	/* flag */
+};
+
+static int wvga_ipu_di = 1;
+static int wvga_bppix = 16;
+#endif
 
 #ifdef CONFIG_FSL_ESDHC
 struct fsl_esdhc_cfg esdhc_cfg[2] = {
@@ -148,6 +176,34 @@ static void setup_iomux_fec(void)
 	mxc_iomux_set_pad(MX51_PIN_NANDF_D11, 0x2180);
 }
 
+#ifdef CONFIG_LCD
+void setup_iomux_ipu(void)
+{
+	/* DISP2_DAT [0:15] are configured by default */
+	mxc_request_iomux(MX51_PIN_DI1_D1_CS, IOMUX_CONFIG_ALT4);
+	mxc_iomux_set_pad(MX51_PIN_DI1_D1_CS,
+		PAD_CTL_PKE_ENABLE | PAD_CTL_DRV_HIGH | PAD_CTL_SRE_FAST);
+	mxc_request_iomux(MUX_IN_GPIO3_IPP_IND_G_IN_4_SELECT_INPUT,
+		INPUT_CTL_PATH1);
+
+	/* DISP2_DRDY pin */
+	mxc_request_iomux(MX51_PIN_DI_GP4, IOMUX_CONFIG_ALT4);
+	mxc_iomux_set_pad(MX51_PIN_DI_GP4, PAD_CTL_PKE_ENABLE |
+		PAD_CTL_PUE_KEEPER | PAD_CTL_DRV_LOW);
+}
+
+void lcd_enable(void)
+{
+	int ret;
+
+	ret = mx51_fb_init(&claa_wvga, wvga_ipu_di, wvga_bppix);
+	if (ret) {
+		puts("LCD cannot be configured\n");
+	}
+
+}
+#endif
+
 #ifdef CONFIG_MXC_SPI
 static void setup_iomux_spi(void)
 {
@@ -409,7 +465,9 @@ int board_init(void)
 
 	setup_iomux_uart();
 	setup_iomux_fec();
-
+#ifdef CONFIG_LCD
+	setup_iomux_ipu();
+#endif
 	return 0;
 }
 
diff --git a/include/configs/mx51evk.h b/include/configs/mx51evk.h
index f98438d..cd931ea 100644
--- a/include/configs/mx51evk.h
+++ b/include/configs/mx51evk.h
@@ -211,6 +211,17 @@
 #define CONFIG_SYS_DDR_CLKSEL	0
 #define CONFIG_SYS_CLKTL_CBCDR	0x59E35100
 
+/*
+ * Framebuffer and LCD
+ */
+/*
+#define CONFIG_LCD
+#define CONFIG_VIDEO_MX5
+#define LCD_BPP		LCD_COLOR16
+#define CONFIG_CMD_BMP
+#define CONFIG_BMP_16BPP
+*/
+
 /*-----------------------------------------------------------------------
  * FLASH and environment organization
  */
-- 
1.6.0.4



More information about the U-Boot mailing list