aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark F. Brown <mark.brown314@gmail.com>2010-08-25 23:51:55 -0400
committerEric Miao <eric.y.miao@gmail.com>2010-10-08 04:21:18 -0400
commit884646a5721e547d302390d8a483e9b75a31b017 (patch)
tree685c945506559f67ebd5682b8f91c8adbebed2d5
parent58cf68b88ce3fc48e345e756c07770e1d6e4cbe9 (diff)
ARM: pxa168/aspenite: added initial support for TPO TD043MTEA1 LCD
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>
-rw-r--r--arch/arm/mach-mmp/aspenite.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/aspenite.c b/arch/arm/mach-mmp/aspenite.c
index 0629394a5fb9..9e1bd6b1fdfb 100644
--- a/arch/arm/mach-mmp/aspenite.c
+++ b/arch/arm/mach-mmp/aspenite.c
@@ -23,6 +23,7 @@
23#include <mach/mfp-pxa168.h> 23#include <mach/mfp-pxa168.h>
24#include <mach/pxa168.h> 24#include <mach/pxa168.h>
25#include <mach/gpio.h> 25#include <mach/gpio.h>
26#include <video/pxa168fb.h>
26 27
27#include "common.h" 28#include "common.h"
28 29
@@ -66,6 +67,36 @@ static unsigned long common_pin_config[] __initdata = {
66 GPIO115_I2S_BCLK, 67 GPIO115_I2S_BCLK,
67 GPIO116_I2S_RXD, 68 GPIO116_I2S_RXD,
68 GPIO117_I2S_TXD, 69 GPIO117_I2S_TXD,
70
71 /* LCD */
72 GPIO56_LCD_FCLK_RD,
73 GPIO57_LCD_LCLK_A0,
74 GPIO58_LCD_PCLK_WR,
75 GPIO59_LCD_DENA_BIAS,
76 GPIO60_LCD_DD0,
77 GPIO61_LCD_DD1,
78 GPIO62_LCD_DD2,
79 GPIO63_LCD_DD3,
80 GPIO64_LCD_DD4,
81 GPIO65_LCD_DD5,
82 GPIO66_LCD_DD6,
83 GPIO67_LCD_DD7,
84 GPIO68_LCD_DD8,
85 GPIO69_LCD_DD9,
86 GPIO70_LCD_DD10,
87 GPIO71_LCD_DD11,
88 GPIO72_LCD_DD12,
89 GPIO73_LCD_DD13,
90 GPIO74_LCD_DD14,
91 GPIO75_LCD_DD15,
92 GPIO76_LCD_DD16,
93 GPIO77_LCD_DD17,
94 GPIO78_LCD_DD18,
95 GPIO79_LCD_DD19,
96 GPIO80_LCD_DD20,
97 GPIO81_LCD_DD21,
98 GPIO82_LCD_DD22,
99 GPIO83_LCD_DD23,
69}; 100};
70 101
71static struct smc91x_platdata smc91x_info = { 102static struct smc91x_platdata smc91x_info = {
@@ -134,6 +165,34 @@ static struct i2c_board_info aspenite_i2c_info[] __initdata = {
134 { I2C_BOARD_INFO("wm8753", 0x1b), }, 165 { I2C_BOARD_INFO("wm8753", 0x1b), },
135}; 166};
136 167
168static struct fb_videomode video_modes[] = {
169 [0] = {
170 .pixclock = 30120,
171 .refresh = 60,
172 .xres = 800,
173 .yres = 480,
174 .hsync_len = 1,
175 .left_margin = 215,
176 .right_margin = 40,
177 .vsync_len = 1,
178 .upper_margin = 34,
179 .lower_margin = 10,
180 .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
181 },
182};
183
184struct pxa168fb_mach_info aspenite_lcd_info = {
185 .id = "Graphic Frame",
186 .modes = video_modes,
187 .num_modes = ARRAY_SIZE(video_modes),
188 .pix_fmt = PIX_FMT_RGB565,
189 .io_pin_allocation_mode = PIN_MODE_DUMB_24,
190 .dumb_mode = DUMB_MODE_RGB888,
191 .active = 1,
192 .panel_rbswap = 0,
193 .invert_pixclock = 0,
194};
195
137static void __init common_init(void) 196static void __init common_init(void)
138{ 197{
139 mfp_config(ARRAY_AND_SIZE(common_pin_config)); 198 mfp_config(ARRAY_AND_SIZE(common_pin_config));
@@ -143,6 +202,7 @@ static void __init common_init(void)
143 pxa168_add_twsi(1, NULL, ARRAY_AND_SIZE(aspenite_i2c_info)); 202 pxa168_add_twsi(1, NULL, ARRAY_AND_SIZE(aspenite_i2c_info));
144 pxa168_add_ssp(1); 203 pxa168_add_ssp(1);
145 pxa168_add_nand(&aspenite_nand_info); 204 pxa168_add_nand(&aspenite_nand_info);
205 pxa168_add_fb(&aspenite_lcd_info);
146 206
147 /* off-chip devices */ 207 /* off-chip devices */
148 platform_device_register(&smc91x_device); 208 platform_device_register(&smc91x_device);