[AVR32] Implement platform hooks for atmel_lcdfb driver
[linux-2.6.git] / arch / avr32 / boards / atstk1000 / setup.c
index 2bc4b88..c9af409 100644 (file)
@@ -8,13 +8,56 @@
  * published by the Free Software Foundation.
  */
 #include <linux/bootmem.h>
+#include <linux/fb.h>
 #include <linux/init.h>
 #include <linux/types.h>
 #include <linux/linkage.h>
 
-#include <asm/setup.h>
+#include <video/atmel_lcdc.h>
 
+#include <asm/setup.h>
 #include <asm/arch/board.h>
 
+#include "atstk1000.h"
+
 /* Initialized by bootloader-specific startup code. */
 struct tag *bootloader_tags __initdata;
+
+static struct fb_videomode __initdata ltv350qv_modes[] = {
+       {
+               .name           = "320x240 @ 75",
+               .refresh        = 75,
+               .xres           = 320,          .yres           = 240,
+               .pixclock       = KHZ2PICOS(6891),
+
+               .left_margin    = 17,           .right_margin   = 33,
+               .upper_margin   = 10,           .lower_margin   = 10,
+               .hsync_len      = 16,           .vsync_len      = 1,
+
+               .sync           = 0,
+               .vmode          = FB_VMODE_NONINTERLACED,
+       },
+};
+
+static struct fb_monspecs __initdata atstk1000_default_monspecs = {
+       .manufacturer           = "SNG",
+       .monitor                = "LTV350QV",
+       .modedb                 = ltv350qv_modes,
+       .modedb_len             = ARRAY_SIZE(ltv350qv_modes),
+       .hfmin                  = 14820,
+       .hfmax                  = 22230,
+       .vfmin                  = 60,
+       .vfmax                  = 90,
+       .dclkmax                = 30000000,
+};
+
+struct atmel_lcdfb_info __initdata atstk1000_lcdc_data = {
+       .default_bpp            = 24,
+       .default_dmacon         = ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
+       .default_lcdcon2        = (ATMEL_LCDC_DISTYPE_TFT
+                                  | ATMEL_LCDC_INVCLK
+                                  | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
+                                  | ATMEL_LCDC_MEMOR_BIG),
+       .default_monspecs       = &atstk1000_default_monspecs,
+       .guard_time             = 2,
+};