[PATCH 120/133] [Jaunty SRU] ARM.imx51 Freescale:ENGR00113302 MX51 Babbage:Support CLAA WVGA lcd panel

Brad Figg brad.figg at canonical.com
Thu Jul 9 16:49:50 UTC 2009


From: Liu Ying <b17645 at freescale.com>

Support CLAA WVGA lcd panel.

Signed-off-by: Liu Ying <b17645 at freescale.com>
Signed-off-by: Brad Figg <brad.figg at canonical.com>
---
 arch/arm/mach-mx51/mx51_babbage.c      |   36 +++++++++++++++++++++++++++++++-
 arch/arm/mach-mx51/mx51_babbage_gpio.c |   17 +++++++++++++++
 2 files changed, 52 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-mx51/mx51_babbage.c b/arch/arm/mach-mx51/mx51_babbage.c
index 42473ee..5097b81 100644
--- a/arch/arm/mach-mx51/mx51_babbage.c
+++ b/arch/arm/mach-mx51/mx51_babbage.c
@@ -159,6 +159,24 @@ static struct platform_device mxc_fb_device[] = {
 };
 
 static int __initdata enable_vga = { 0 };
+static int __initdata enable_wvga = { 0 };
+
+static void wvga_reset(void)
+{
+	mxc_set_gpio_dataout(MX51_PIN_DI1_D1_CS, 1);
+}
+
+static struct mxc_lcd_platform_data lcd_wvga_data = {
+	.reset = wvga_reset,
+};
+
+static struct platform_device lcd_wvga_device = {
+	.name = "lcd_claa",
+	.dev = {
+		.release = mxc_nop_release,
+		.platform_data = &lcd_wvga_data,
+		},
+};
 
 static void __init mxc_init_fb(void)
 {
@@ -167,6 +185,12 @@ static void __init mxc_init_fb(void)
 		fb_data[0].mode_str = NULL;
 		fb_data[1].mode_str = NULL;
 	}
+
+	if (enable_wvga) {
+		fb_data[1].interface_pix_fmt = IPU_PIX_FMT_RGB666;
+		fb_data[1].mode_str = "800x480M-16 at 55";
+	}
+
 	/* DVI Detect */
 	mxc_set_gpio_direction(MX51_PIN_NANDF_D12, 1);
 	/* DVI Reset - Assert for i2c disabled mode */
@@ -176,7 +200,9 @@ static void __init mxc_init_fb(void)
 	mxc_set_gpio_dataout(MX51_PIN_DISPB2_SER_DIO, 1);
 	mxc_set_gpio_direction(MX51_PIN_DISPB2_SER_DIO, 0);
 
-	if (!enable_vga)
+	(void)platform_device_register(&lcd_wvga_device);
+
+	if (!enable_vga && !enable_wvga)
 		(void)platform_device_register(&mxc_fb_device[0]);
 	else
 		(void)platform_device_register(&mxc_fb_device[1]);
@@ -190,6 +216,14 @@ static int __init vga_setup(char *__unused)
 }
 
 __setup("vga", vga_setup);
+
+static int __init wvga_setup(char *__unused)
+{
+	enable_wvga = 1;
+	return 1;
+}
+
+__setup("wvga", wvga_setup);
 #else
 static inline void mxc_init_fb(void)
 {
diff --git a/arch/arm/mach-mx51/mx51_babbage_gpio.c b/arch/arm/mach-mx51/mx51_babbage_gpio.c
index 1f9e492..23c1b89 100644
--- a/arch/arm/mach-mx51/mx51_babbage_gpio.c
+++ b/arch/arm/mach-mx51/mx51_babbage_gpio.c
@@ -227,6 +227,20 @@ static struct mxc_iomux_pin_cfg __initdata mxc_iomux_pins[] = {
 	 MUX_IN_GPIO3_IPP_IND_G_IN_5_SELECT_INPUT,
 	 INPUT_CTL_PATH1,
 	 },
+#ifdef CONFIG_FB_MXC_CLAA_WVGA_SYNC_PANEL
+	{	/* DISP2_DAT16 */
+	 MX51_PIN_DISP1_DAT22, IOMUX_CONFIG_ALT5,
+	 },
+	{	/* DISP2_DAT17 */
+	 MX51_PIN_DISP1_DAT23, IOMUX_CONFIG_ALT5,
+	 },
+	{
+	 MX51_PIN_DI1_D1_CS, IOMUX_CONFIG_ALT4,
+	 (PAD_CTL_PKE_ENABLE | PAD_CTL_PUE_KEEPER | PAD_CTL_DRV_HIGH |
+	  PAD_CTL_SRE_FAST),
+	 MUX_IN_GPIO3_IPP_IND_G_IN_4_SELECT_INPUT, INPUT_CTL_PATH1,
+	 },
+#endif
 	{
 	 MX51_PIN_NANDF_D12, IOMUX_CONFIG_GPIO,
 	 0,
@@ -625,4 +639,7 @@ void __init mx51_babbage_io_init(void)
 	/* Deassert VGA reset to free i2c bus */
 	mxc_set_gpio_direction(MX51_PIN_EIM_A19, 0);
 	mxc_set_gpio_dataout(MX51_PIN_EIM_A19, 1);
+
+	/* LCD related gpio */
+	mxc_set_gpio_direction(MX51_PIN_DI1_D1_CS, 0);
 }
-- 
1.6.0.4





More information about the kernel-team mailing list