/* * 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, }; struct atmel_lcdfb_pdata merisc_lcdc_data = { .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);