#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/fb.h>
#include <linux/init.h>
#include <linux/dma-mapping.h>
#include <linux/interrupt.h>
#include <linux/platform_device.h>
#include <linux/clk.h>

#include <asm/io.h>
#include <asm/div64.h>

#include <asm/mach/map.h>
#include <asm/arch/regs-lcd.h>
#include <asm/arch/regs-gpio.h>
#include <asm/arch/fb.h>
#include <asm/uaccess.h>
#include <linux/ioport.h>
#include <asm/io.h>

#define PALETTE_BUFF_CLEAR (0x80000000)	/* entry is clear/invalid */
#define	DEBUG_TRACE()					printk("[%s]:%d =>\n",__FUNCTION__,__LINE__)

// LCD CONTROLLER
#define LCDCON1    0x4d000000 //LCD control 1
#define LCDCON2    0x4d000004 //LCD control 2
#define LCDCON3    0x4d000008 //LCD control 3
#define LCDCON4    0x4d00000c //LCD control 4
#define LCDCON5    0x4d000010 //LCD control 5
#define LCDSADDR1  0x4d000014 //STN/TFT Frame buffer start address 1
#define LCDSADDR2  0x4d000018 //STN/TFT Frame buffer start address 2
#define LCDSADDR3  0x4d00001c //STN/TFT Virtual screen address set
#define TPAL       0x4d000050 //TFT Temporary palette
#define LCDINTPND  0x4d000054 //LCD Interrupt pending
#define LCDSRCPND  0x4d000058 //LCD Interrupt source
#define LCDINTMSK  0x4d00005c //LCD Interrupt mask
#define LPCSEL     0x4d000060 //LPC3600 Control
#define PALETTE     0x4d000400 //Palette start address

#define GPCCON    0x56000020 //Port C control
#define GPCUP     0x56000028 //Pull-up control C                
#define GPDCON    0x56000030 //Port D control
#define GPDUP     0x56000038 //Pull-up control D 

// SYNC settings

#define HFPD 30
#define HBPD 6
#define VFPD 2
#define VBPD 1
#define VSPW 1
#define HSPW 3

