--- setup.c.dist	2010-05-02 19:35:33.000000000 +0200
+++ setup.c	2010-05-03 12:28:26.000000000 +0200
@@ -35,6 +35,12 @@
 #include <mach/init.h>
 #include <mach/portmux.h>
 
+#define ATMEL_LCDC_PRI_8B_DATA (                                        \
+                ATMEL_LCDC(PC, DATA0)  | ATMEL_LCDC(PC, DATA1)  |       \
+                ATMEL_LCDC(PC, DATA2)  | ATMEL_LCDC(PC, DATA3)  |       \
+                ATMEL_LCDC(PC, DATA4)  | ATMEL_LCDC(PC, DATA5)  |       \
+                ATMEL_LCDC(PD, DATA6)  | ATMEL_LCDC(PD, DATA7))         \   
+
 
 //#define GPIO_AC_OUTPUT_SELECT	GPIO_PIN_PB(15)
 //#define GPIO_AC_RESET		GPIO_PIN_PB(19)
@@ -60,18 +66,19 @@
 #ifdef CONFIG_FB_ATMEL
 static struct fb_videomode __initdata grasshopper_tft_modes[] = {                            
 	{
-		.name		= "LQ043T3DX02 480x272 @ 60",
+		.name		= "Sharp LM64K101",
 		.refresh	= 60, 			// refresh rate 
-		.xres		= 480,			// horizontal resolution 
-		.yres		= 272, 			// vertical resolution 
-		.pixclock	= KHZ2PICOS(9000), 	// pixel clock in kHz 
-		.left_margin	= 2,			// h. front porch 
-		.right_margin	= 2, 			// h. back porch 
-		.upper_margin	= 10,			// v. front porch 
-		.lower_margin	= 11, 			// v. back porch 
-		.hsync_len	= 41,			// hsync length  
-		.vsync_len	= 10, 			// vsync lengt
-		.sync		= 0,			// Active low hsync/vsync
+		.xres		= 640,			// horizontal resolution 
+		.yres		= 480, 			// vertical resolution 
+		.pixclock	= KHZ2PICOS(6500), 	// pixel clock in kHz 
+		.left_margin	= 1,			// h. front porch 
+		.right_margin	= 1, 			// h. back porch 
+		.upper_margin	= 2,			// v. front porch 
+		.lower_margin	= 2, 			// v. back porch 
+		.hsync_len	= 1,			// hsync length  
+		.vsync_len	= 1, 			// vsync length
+		.sync		= FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
+							// Active high hsync/vsync
 		.vmode		= FB_VMODE_NONINTERLACED, 
 				// always send a full frame to the display 
        },
@@ -82,22 +89,20 @@
         .monitor                = "GENERIC",  		// Generic type 
         .modedb                 = grasshopper_tft_modes, 
         .modedb_len             = ARRAY_SIZE(grasshopper_tft_modes), 
-        .hfmin                  = 15000, 		// doesn't affect the lcdc! 
-        .hfmax                  = 30000, 		// doesn't affect the lcdc! 
-        .vfmin                  = 60, 			// doesn't affect the lcdc! 
+        .hfmin                  = 10000, 		// doesn't affect the lcdc! 
+        .hfmax                  = 90000, 		// doesn't affect the lcdc! 
+        .vfmin                  = 40, 			// doesn't affect the lcdc! 
         .vfmax                  = 700, 			// doesn't affect the lcdc! 
         .dclkmax                = 90000000, 		// doesn't affect the lcdc! 
 };
 
 struct atmel_lcdfb_info __initdata grasshopper_lcdc_data = {
-        .default_bpp            = 24, 			// Color depth
+        .default_bpp            = 4, 			// Color depth
         .default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
-	.default_lcdcon2	= (ATMEL_LCDC_DISTYPE_TFT
-				   //| ATMEL_LCDC_SCANMOD_SINGLE
-				   //| ATMEL_LCDC_INVLINE_INVERTED
-				   //| ATMEL_LCDC_INVFRAME_INVERTED
-				   //| ATMEL_LCDC_INVCLK_NORMAL
-				   | ATMEL_LCDC_PIXELSIZE_24
+	.default_lcdcon2	= (ATMEL_LCDC_DISTYPE_STNMONO
+				   | ATMEL_LCDC_SCANMOD_DUAL
+				   | ATMEL_LCDC_IFWIDTH_8
+				   | ATMEL_LCDC_PIXELSIZE_4
 				   | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
 				   | ATMEL_LCDC_MEMOR_BIG),
         .default_monspecs       = &grasshopper_default_monspecs, 
@@ -340,7 +345,10 @@
 #ifdef CONFIG_FB_ATMEL
 	at32_add_device_lcdc(0, &grasshopper_lcdc_data, 
 				fbmem_start, fbmem_size, 
-				ATMEL_LCDC_PRI_24BIT | ATMEL_LCDC_PRI_CONTROL);
+				ATMEL_LCDC_PRI_8B_DATA | ATMEL_LCDC_CONTROL | ATMEL_LCDC_PRI_CONTROL);
+
+	at32_select_periph(GPIO_PIOC_BASE,ATMEL_LCDC_PC_PWR,0,
+			AT32_GPIOF_OUTPUT|AT32_GPIOF_HIGH);
 #endif
 
 	// PWM
