| 
									
										
										
										
											2009-03-27 10:18:14 +01:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Display setup code for the Merisc board | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2008 Martinsson Elektronik AB | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License version 2 as | 
					
						
							|  |  |  |  * published by the Free Software Foundation. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | #include <linux/platform_device.h>
 | 
					
						
							|  |  |  | #include <linux/fb.h>
 | 
					
						
							|  |  |  | #include <video/atmel_lcdc.h>
 | 
					
						
							|  |  |  | #include <asm/setup.h>
 | 
					
						
							|  |  |  | #include <mach/board.h>
 | 
					
						
							|  |  |  | #include "merisc.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static struct fb_videomode merisc_fb_videomode[] = { | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		.refresh	= 44, | 
					
						
							|  |  |  | 		.xres		= 640, | 
					
						
							|  |  |  | 		.yres		= 480, | 
					
						
							|  |  |  | 		.left_margin	= 96, | 
					
						
							|  |  |  | 		.right_margin	= 96, | 
					
						
							|  |  |  | 		.upper_margin	= 34, | 
					
						
							|  |  |  | 		.lower_margin	= 8, | 
					
						
							|  |  |  | 		.hsync_len	= 64, | 
					
						
							|  |  |  | 		.vsync_len	= 64, | 
					
						
							|  |  |  | 		.name		= "640x480 @ 44", | 
					
						
							|  |  |  | 		.pixclock	= KHZ2PICOS(25180), | 
					
						
							|  |  |  | 		.sync		= 0, | 
					
						
							|  |  |  | 		.vmode		= FB_VMODE_NONINTERLACED, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static struct fb_monspecs merisc_fb_monspecs = { | 
					
						
							|  |  |  | 	.manufacturer	= "Kyo", | 
					
						
							|  |  |  | 	.monitor	= "TCG075VG2AD", | 
					
						
							|  |  |  | 	.modedb		= merisc_fb_videomode, | 
					
						
							|  |  |  | 	.modedb_len	= ARRAY_SIZE(merisc_fb_videomode), | 
					
						
							|  |  |  | 	.hfmin		= 30000, | 
					
						
							|  |  |  | 	.hfmax		= 33333, | 
					
						
							|  |  |  | 	.vfmin		= 60, | 
					
						
							|  |  |  | 	.vfmax		= 90, | 
					
						
							|  |  |  | 	.dclkmax	= 30000000, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-03-28 22:53:42 +08:00
										 |  |  | struct atmel_lcdfb_pdata merisc_lcdc_data = { | 
					
						
							| 
									
										
										
										
											2009-03-27 10:18:14 +01:00
										 |  |  | 	.default_bpp		= 24, | 
					
						
							|  |  |  | 	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN, | 
					
						
							|  |  |  | 	.default_lcdcon2	= (ATMEL_LCDC_DISTYPE_TFT | 
					
						
							|  |  |  | 				   | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE | 
					
						
							|  |  |  | 				   | ATMEL_LCDC_MEMOR_BIG), | 
					
						
							|  |  |  | 	.default_monspecs	= &merisc_fb_monspecs, | 
					
						
							|  |  |  | 	.guard_time		= 2, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static int __init merisc_display_init(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	at32_add_device_lcdc(0, &merisc_lcdc_data, fbmem_start, | 
					
						
							|  |  |  | 			     fbmem_size, 0); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | device_initcall(merisc_display_init); |