diff options
author | Guennadi Liakhovetski <lg@denx.de> | 2009-04-15 08:32:52 -0400 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-05-07 10:16:12 -0400 |
commit | a8df0ee8d89dc1bdbec7415be620b159b5b0177b (patch) | |
tree | 7f40667d57173d804c64eb0bbeefa6ee7e97d217 /arch/arm/mach-mx3/pcm037.c | |
parent | 910862ec092c156023b8a6e726e8c793da0a03f7 (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>
Diffstat (limited to 'arch/arm/mach-mx3/pcm037.c')
-rw-r--r-- | arch/arm/mach-mx3/pcm037.c | 52 |
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 | ||
271 | static struct ipu_platform_data mx3_ipu_data = { | ||
272 | .irq_base = MXC_IPU_IRQ_START, | ||
273 | }; | ||
274 | |||
275 | static 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 | |||
312 | static 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 | ||
298 | static void __init pcm037_timer_init(void) | 350 | static void __init pcm037_timer_init(void) |