aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <lg@denx.de>2009-04-15 08:32:52 -0400
committerSascha Hauer <s.hauer@pengutronix.de>2009-05-07 10:16:12 -0400
commita8df0ee8d89dc1bdbec7415be620b159b5b0177b (patch)
tree7f40667d57173d804c64eb0bbeefa6ee7e97d217
parent910862ec092c156023b8a6e726e8c793da0a03f7 (diff)
ARM: framebuffer support for pcm037
Add support for a QVGA Sharp LCD on pcm037. Signed-off-by: Guennadi Liakhovetski <lg@denx.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-mx3/pcm037.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c
index 68098917cc83..5d7e0ca5c133 100644
--- a/arch/arm/mach-mx3/pcm037.c
+++ b/arch/arm/mach-mx3/pcm037.c
@@ -40,7 +40,9 @@
40#include <mach/common.h> 40#include <mach/common.h>
41#include <mach/imx-uart.h> 41#include <mach/imx-uart.h>
42#include <mach/iomux-mx3.h> 42#include <mach/iomux-mx3.h>
43#include <mach/ipu.h>
43#include <mach/board-pcm037.h> 44#include <mach/board-pcm037.h>
45#include <mach/mx3fb.h>
44#include <mach/mxc_nand.h> 46#include <mach/mxc_nand.h>
45#include <mach/mmc.h> 47#include <mach/mmc.h>
46#ifdef CONFIG_I2C_IMX 48#ifdef CONFIG_I2C_IMX
@@ -266,6 +268,54 @@ static struct platform_device *devices[] __initdata = {
266 &pcm037_sram_device, 268 &pcm037_sram_device,
267}; 269};
268 270
271static struct ipu_platform_data mx3_ipu_data = {
272 .irq_base = MXC_IPU_IRQ_START,
273};
274
275static const struct fb_videomode fb_modedb[] = {
276 {
277 /* 240x320 @ 60 Hz Sharp */
278 .name = "Sharp-LQ035Q7DH06-QVGA",
279 .refresh = 60,
280 .xres = 240,
281 .yres = 320,
282 .pixclock = 185925,
283 .left_margin = 9,
284 .right_margin = 16,
285 .upper_margin = 7,
286 .lower_margin = 9,
287 .hsync_len = 1,
288 .vsync_len = 1,
289 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_SHARP_MODE |
290 FB_SYNC_CLK_INVERT | FB_SYNC_CLK_IDLE_EN,
291 .vmode = FB_VMODE_NONINTERLACED,
292 .flag = 0,
293 }, {
294 /* 240x320 @ 60 Hz */
295 .name = "TX090",
296 .refresh = 60,
297 .xres = 240,
298 .yres = 320,
299 .pixclock = 38255,
300 .left_margin = 144,
301 .right_margin = 0,
302 .upper_margin = 7,
303 .lower_margin = 40,
304 .hsync_len = 96,
305 .vsync_len = 1,
306 .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_OE_ACT_HIGH,
307 .vmode = FB_VMODE_NONINTERLACED,
308 .flag = 0,
309 },
310};
311
312static struct mx3fb_platform_data mx3fb_pdata = {
313 .dma_dev = &mx3_ipu.dev,
314 .name = "Sharp-LQ035Q7DH06-QVGA",
315 .mode = fb_modedb,
316 .num_modes = ARRAY_SIZE(fb_modedb),
317};
318
269/* 319/*
270 * Board specific initialization. 320 * Board specific initialization.
271 */ 321 */
@@ -293,6 +343,8 @@ static void __init mxc_board_init(void)
293#endif 343#endif
294 mxc_register_device(&mxc_nand_device, &pcm037_nand_board_info); 344 mxc_register_device(&mxc_nand_device, &pcm037_nand_board_info);
295 mxc_register_device(&mxcsdhc_device0, &sdhc_pdata); 345 mxc_register_device(&mxcsdhc_device0, &sdhc_pdata);
346 mxc_register_device(&mx3_ipu, &mx3_ipu_data);
347 mxc_register_device(&mx3_fb, &mx3fb_pdata);
296} 348}
297 349
298static void __init pcm037_timer_init(void) 350static void __init pcm037_timer_init(void)