66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
|
/*
|
||
|
* 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);
|