ARM: pxa168/aspenite: added initial support for TPO TD043MTEA1 LCD
Mark F. Brown [Thu, 26 Aug 2010 03:51:55 +0000 (23:51 -0400)]
Signed-off-by: Mark F. Brown <mark.brown314@gmail.com>
Cc: Haojian Zhuang <haojian.zhuang@marvell.com>
Cc: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>

arch/arm/mach-mmp/aspenite.c

index 0629394..9e1bd6b 100644 (file)
@@ -23,6 +23,7 @@
 #include <mach/mfp-pxa168.h>
 #include <mach/pxa168.h>
 #include <mach/gpio.h>
+#include <video/pxa168fb.h>
 
 #include "common.h"
 
@@ -66,6 +67,36 @@ static unsigned long common_pin_config[] __initdata = {
        GPIO115_I2S_BCLK,
        GPIO116_I2S_RXD,
        GPIO117_I2S_TXD,
+
+       /* LCD */
+       GPIO56_LCD_FCLK_RD,
+       GPIO57_LCD_LCLK_A0,
+       GPIO58_LCD_PCLK_WR,
+       GPIO59_LCD_DENA_BIAS,
+       GPIO60_LCD_DD0,
+       GPIO61_LCD_DD1,
+       GPIO62_LCD_DD2,
+       GPIO63_LCD_DD3,
+       GPIO64_LCD_DD4,
+       GPIO65_LCD_DD5,
+       GPIO66_LCD_DD6,
+       GPIO67_LCD_DD7,
+       GPIO68_LCD_DD8,
+       GPIO69_LCD_DD9,
+       GPIO70_LCD_DD10,
+       GPIO71_LCD_DD11,
+       GPIO72_LCD_DD12,
+       GPIO73_LCD_DD13,
+       GPIO74_LCD_DD14,
+       GPIO75_LCD_DD15,
+       GPIO76_LCD_DD16,
+       GPIO77_LCD_DD17,
+       GPIO78_LCD_DD18,
+       GPIO79_LCD_DD19,
+       GPIO80_LCD_DD20,
+       GPIO81_LCD_DD21,
+       GPIO82_LCD_DD22,
+       GPIO83_LCD_DD23,
 };
 
 static struct smc91x_platdata smc91x_info = {
@@ -134,6 +165,34 @@ static struct i2c_board_info aspenite_i2c_info[] __initdata = {
        { I2C_BOARD_INFO("wm8753", 0x1b), },
 };
 
+static struct fb_videomode video_modes[] = {
+       [0] = {
+               .pixclock       = 30120,
+               .refresh        = 60,
+               .xres           = 800,
+               .yres           = 480,
+               .hsync_len      = 1,
+               .left_margin    = 215,
+               .right_margin   = 40,
+               .vsync_len      = 1,
+               .upper_margin   = 34,
+               .lower_margin   = 10,
+               .sync           = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
+       },
+};
+
+struct pxa168fb_mach_info aspenite_lcd_info = {
+       .id                     = "Graphic Frame",
+       .modes                  = video_modes,
+       .num_modes              = ARRAY_SIZE(video_modes),
+       .pix_fmt                = PIX_FMT_RGB565,
+       .io_pin_allocation_mode = PIN_MODE_DUMB_24,
+       .dumb_mode              = DUMB_MODE_RGB888,
+       .active                 = 1,
+       .panel_rbswap           = 0,
+       .invert_pixclock        = 0,
+};
+
 static void __init common_init(void)
 {
        mfp_config(ARRAY_AND_SIZE(common_pin_config));
@@ -143,6 +202,7 @@ static void __init common_init(void)
        pxa168_add_twsi(1, NULL, ARRAY_AND_SIZE(aspenite_i2c_info));
        pxa168_add_ssp(1);
        pxa168_add_nand(&aspenite_nand_info);
+       pxa168_add_fb(&aspenite_lcd_info);
 
        /* off-chip devices */
        platform_device_register(&smc91x_device);