[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