add lcd nt35510 support
authorroot <root@lw.(none)>
Tue, 17 May 2011 19:39:00 +0000 (03:39 +0800)
committerroot <root@lw.(none)>
Tue, 17 May 2011 19:42:34 +0000 (03:42 +0800)
drivers/video/display/screen/lcd_nt35510.c [new file with mode: 0755]

diff --git a/drivers/video/display/screen/lcd_nt35510.c b/drivers/video/display/screen/lcd_nt35510.c
new file mode 100755 (executable)
index 0000000..c905911
--- /dev/null
@@ -0,0 +1,1600 @@
+#include <linux/fb.h>\r
+#include <linux/delay.h>\r
+#include "../../rk29_fb.h"\r
+#include <mach/gpio.h>\r
+#include <mach/iomux.h>\r
+#include <mach/board.h>\r
+#include "screen.h"\r
+\r
+/* Base */\r
+#define OUT_TYPE               SCREEN_RGB\r
+#define OUT_FACE               OUT_P888\r
+#define OUT_CLK                26*1000*1000    //***27\r
+#define LCDC_ACLK       150000000     //29 lcdc axi DMA Ƶ��           //rk29\r
+\r
+/* Timing */\r
+#define H_PW                   4 //8Ç°ÏûÓ°\r
+#define H_BP                   8//6\r
+#define H_VD                   480//320        //***800 \r
+#define H_FP                   8//60\r
+\r
+#define V_PW                   4//12\r
+#define V_BP                   8// 4\r
+#define V_VD                   800//480        //***480\r
+#define V_FP                   8//40\r
+\r
+#define LCD_WIDTH       800    //need modify   //rk29\r
+#define LCD_HEIGHT      480\r
+\r
+/* Other */\r
+#define DCLK_POL               1//0 \r
+#define SWAP_RB                        0\r
+\r
+static struct rk29lcd_info *gLcd_info = NULL;\r
+int init(void);\r
+int standby(u8 enable);\r
+\r
+#define TXD_PORT        gLcd_info->txd_pin\r
+#define CLK_PORT        gLcd_info->clk_pin\r
+#define CS_PORT         gLcd_info->cs_pin\r
+\r
+#define CS_OUT()        gpio_direction_output(CS_PORT, 1)\r
+#define CS_SET()        gpio_set_value(CS_PORT, GPIO_HIGH)\r
+#define CS_CLR()        gpio_set_value(CS_PORT, GPIO_LOW)\r
+#define CLK_OUT()       gpio_direction_output(CLK_PORT, 0) \r
+#define CLK_SET()       gpio_set_value(CLK_PORT, GPIO_HIGH)\r
+#define CLK_CLR()       gpio_set_value(CLK_PORT, GPIO_LOW)\r
+#define TXD_OUT()       gpio_direction_output(TXD_PORT, 1) \r
+#define TXD_SET()       gpio_set_value(TXD_PORT, GPIO_HIGH)\r
+#define TXD_CLR()       gpio_set_value(TXD_PORT, GPIO_LOW)\r
+\r
+\r
+#define DRVDelayUs(i)   udelay(i*4)\r
+#if 0\r
+void spi_screenreg_cmd(u8 Addr)\r
+{\r
+ u32 i;\r
+    u32 control_bit;\r
+\r
+    TXD_OUT();\r
+    CLK_OUT();\r
+    CS_OUT();\r
+    DRVDelayUs(2);\r
+    DRVDelayUs(2);\r
+\r
+    CS_SET();\r
+    TXD_SET();\r
+    CLK_CLR();\r
+    DRVDelayUs(30);\r
+\r
+        CS_CLR();\r
+        control_bit = 0x0000;\r
+        Addr = (control_bit | Addr);//spi_screenreg_set(0x36, 0x0000, 0xffff); \r
+        //printk("addr is 0x%x \n", Addr); \r
+        for(i = 0; i < 9; i++)  //reg\r
+        {\r
+                if(Addr &(1<<(8-i)))\r
+                        TXD_SET();\r
+                else\r
+                        TXD_CLR();\r
+\r
+                // \u6a21\u62dfCLK\r
+                CLK_SET();\r
+                DRVDelayUs(2);\r
+                CLK_CLR();\r
+                DRVDelayUs(2);\r
+        }\r
+\r
+        CS_SET();\r
+        TXD_SET();\r
+        CLK_CLR();             \r
+        DRVDelayUs(10);\r
+}\r
+\r
+\r
+void spi_screenreg_param(u8 Param)\r
+{\r
+\r
+       u32 i;\r
+    u32 control_bit;\r
+\r
+   CS_CLR();\r
\r
+        control_bit = 0x0100;\r
+        Param = (control_bit | Param);\r
+        //printk("data0 is 0x%x \n", Data); \r
+        for(i = 0; i < 9; i++)  //data\r
+        {\r
+                if(Param &(1<<(8-i)))\r
+                        TXD_SET();\r
+                else\r
+                        TXD_CLR();\r
+\r
+                // \u6a21\u62dfCLK\r
+                CLK_SET();\r
+                DRVDelayUs(2);\r
+                CLK_CLR();\r
+                DRVDelayUs(2);\r
+        }\r
+\r
+        CS_SET();\r
+        CLK_CLR();\r
+        TXD_CLR();\r
+        DRVDelayUs(10);\r
+}\r
+#endif\r
+\r
+void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )\r
+{\r
+       //printk("lcd_hx8357 set_lcd_info \n"); \r
+       /* screen type & face */\r
+       screen->type = OUT_TYPE;\r
+       screen->face = OUT_FACE;\r
+\r
+       /* Screen size */\r
+       screen->x_res = H_VD;\r
+       screen->y_res = V_VD;\r
+       screen->width = LCD_WIDTH;    //rk29\r
+       screen->height = LCD_HEIGHT;  //rk29\r
+\r
+       /* Timing */\r
+       screen->lcdc_aclk = LCDC_ACLK;  //rk29\r
+       screen->pixclock = OUT_CLK;\r
+       screen->left_margin = H_BP;             /*>2*/ \r
+       screen->right_margin = H_FP;    /*>2*/ \r
+       screen->hsync_len = H_PW;               /*>2*/ //***all > 326, 4<PW+BP<15, \r
+       screen->upper_margin = V_BP;    /*>2*/ \r
+       screen->lower_margin = V_FP;    /*>2*/ \r
+       screen->vsync_len = V_PW;               /*>6*/ \r
+\r
+       /* Pin polarity */\r
+       screen->pin_hsync = 0; \r
+       screen->pin_vsync = 0; \r
+       screen->pin_den = 0;\r
+       screen->pin_dclk = DCLK_POL;\r
+\r
+       /* Swap rule */\r
+       screen->swap_rb = 0;\r
+       screen->swap_rg = 0;\r
+       screen->swap_gb = 0;\r
+       screen->swap_delta = 0;\r
+       screen->swap_dumy = 0;\r
+\r
+       /* Operation function*/\r
+       screen->init = init;\r
+       screen->standby = standby;\r
+       if(lcd_info)\r
+       gLcd_info = lcd_info;\r
+}\r
+\r
+#define PIN_BL_SET          RK29_PIN6_PD2\r
+void set_backlight(int brightness)\r
+{\r
+#if 0\r
+       if(gLcd_info)\r
+        gLcd_info->io_init();\r
+\r
+       printk("lcd_ili9803:set_backlight = %d\r\n", brightness);\r
+       if (brightness < 0)\r
+       {\r
+               brightness = 0;\r
+       }\r
+       if (brightness > 4)\r
+       {\r
+               brightness = 4;\r
+       }\r
+       spi_screenreg_cmd(0x51);\r
+       spi_screenreg_param(brightness<<5);\r
+               \r
+        if(gLcd_info)\r
+        gLcd_info->io_deinit();\r
+\r
+#endif\r
+\r
+       gpio_request(PIN_BL_SET, NULL);\r
+       if(brightness > 0)\r
+        gpio_direction_output(PIN_BL_SET,GPIO_HIGH);\r
+       else\r
+       gpio_direction_output(PIN_BL_SET,GPIO_LOW);     \r
+       printk("%s:brightness=%d\n",__FUNCTION__,brightness);\r
+}\r
+\r
+void WriteCommand( int  Command)\r
+{\r
+       unsigned char i,count1, count2,count3,count4;\r
+       count1= Command>>8;\r
+       count2= Command;\r
+       count3=0x20;//00100000   //дÃüÁî¸ßλ\r
+       count4=0x00;//00000000   //дÃüÁîµÍλ======¾ßÌåÇë¿´ICµÄDatasheet\r
+       CS_CLR();\r
+       for(i=0;i<8;i++)\r
+       {\r
+               CLK_CLR();\r
+               if (count3 & 0x80) TXD_SET();\r
+               else             TXD_CLR();\r
+               CLK_SET();\r
+               count3<<=1;\r
+       }\r
+\r
+       for(i=0;i<8;i++)\r
+       {\r
+               CLK_CLR();\r
+               if (count1 & 0x80) TXD_SET();\r
+               else             TXD_CLR();\r
+               CLK_SET();\r
+               count1<<=1;\r
+       }\r
+\r
+       for(i=0;i<8;i++)\r
+       {\r
+               CLK_CLR();\r
+               if (count4 & 0x80) TXD_SET();\r
+               else             TXD_CLR();\r
+               CLK_SET();\r
+               count4<<=1;\r
+       }\r
+       \r
+       for(i=0;i<8;i++)\r
+       {\r
+               CLK_CLR();\r
+               if (count2 & 0x80) TXD_SET();\r
+               else             TXD_CLR();\r
+               CLK_SET();\r
+               count2<<=1;\r
+       }\r
+\r
+       CS_SET();\r
+\r
+}\r
+\r
+\r
+\r
+void WriteParameter(char DH)\r
+{\r
+       unsigned char i, count1, count2,count3,count4;\r
+       count1=DH>>8;\r
+       count2=DH;\r
+       count3=0x60;//дÊý¾Ý¸ßλ\r
+       count4=0x40;//дÊý¾ÝµÍλ\r
+\r
+       CS_CLR();\r
+       /*\r
+       TXD_CLR();  CLK_CLR(); CLK_SET();  //WRITE\r
+       TXD_SET(); CLK_CLR(); CLK_SET();  //DATA\r
+       TXD_SET(); CLK_CLR(); CLK_SET(); //HIGH BYTE\r
+       TXD_CLR(); CLK_CLR(); CLK_SET();\r
+       TXD_CLR(); CLK_CLR(); CLK_SET();\r
+       TXD_CLR(); CLK_CLR(); CLK_SET();\r
+       TXD_CLR(); CLK_CLR(); CLK_SET();\r
+       TXD_CLR(); CLK_CLR(); CLK_SET();\r
+       */\r
+       /*\r
+       //ÒòΪÊý¾ÝµÄ¸ßλ»ù±¾ÊDz»Óõģ¬¿ÉÒÔ²»´«¸ßλ£¬Ö±½Ó´«µÍλ\r
+       for(i=0;i<8;i++)\r
+       {\r
+       CLK_CLR();\r
+       if (count3 & 0x80) TXD_SET();\r
+       else             TXD_CLR();\r
+       CLK_SET();\r
+       count3<<=1;\r
+       }\r
+\r
+       for(i=0;i<8;i++)\r
+       {\r
+       CLK_CLR();\r
+       if (count1 & 0x80) TXD_SET();\r
+       else             TXD_CLR();\r
+       CLK_SET();\r
+       count1<<=1;\r
+       }\r
+       */\r
+\r
+\r
+       for(i=0;i<8;i++)\r
+       {\r
+               CLK_CLR();\r
+               if (count4 & 0x80) TXD_SET();\r
+               else             TXD_CLR();\r
+               CLK_SET();\r
+               count4<<=1;\r
+       }\r
+\r
+       for(i=0;i<8;i++)\r
+       {\r
+               CLK_CLR();\r
+               if (count2 & 0x80) TXD_SET();\r
+               else             TXD_CLR();\r
+               CLK_SET();\r
+               count2<<=1;\r
+       }\r
+\r
+       CS_SET();\r
+\r
+}\r
+\r
+\r
+void init_nt35510(void)\r
+{\r
+       WriteCommand(0X1100); \r
+       mdelay(120);\r
+\r
+       WriteCommand(0X1300); \r
+\r
+       WriteCommand(0XF000); \r
+       WriteParameter(0x55);\r
+\r
+       WriteCommand(0XF001); \r
+       WriteParameter(0xAA);\r
+\r
+       WriteCommand(0XF002); \r
+       WriteParameter(0x52);\r
+\r
+       WriteCommand(0XF003); \r
+       WriteParameter(0x08);\r
+\r
+       WriteCommand(0XF004); \r
+       WriteParameter(0x01);\r
+\r
+       //Gamma setting Red\r
+       WriteCommand(0XD100);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD101);\r
+       WriteParameter(0x20);\r
+\r
+       WriteCommand(0XD102);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD103);\r
+       WriteParameter(0x2B);\r
+\r
+       WriteCommand(0XD104);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD105);\r
+       WriteParameter(0x3C);\r
+\r
+       WriteCommand(0XD106);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD107);\r
+       WriteParameter(0x56);\r
+\r
+       WriteCommand(0XD108);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD109);\r
+       WriteParameter(0x68);\r
+\r
+       WriteCommand(0XD10a);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD10b);\r
+       WriteParameter(0x87);\r
+\r
+       WriteCommand(0XD10c);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD10d);\r
+       WriteParameter(0x9E);\r
+\r
+       WriteCommand(0XD10e);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD10f);\r
+       WriteParameter(0xC6);\r
+\r
+       WriteCommand(0XD110);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD111);\r
+       WriteParameter(0xE4);\r
+\r
+       WriteCommand(0XD112);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD113);\r
+       WriteParameter(0x12);\r
+\r
+       WriteCommand(0XD114);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD115);\r
+       WriteParameter(0x37);\r
+\r
+       WriteCommand(0XD116);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD117);\r
+       WriteParameter(0x75);\r
+\r
+       WriteCommand(0XD118);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD119);\r
+       WriteParameter(0xA5);\r
+\r
+       WriteCommand(0XD11a);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD11b);\r
+       WriteParameter(0xA6);\r
+\r
+       WriteCommand(0XD11c);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD11d);\r
+       WriteParameter(0xD0);\r
+\r
+       WriteCommand(0XD11e);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD11f);\r
+       WriteParameter(0xF5);\r
+\r
+       WriteCommand(0XD120);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD121);\r
+       WriteParameter(0x0A);\r
+\r
+       WriteCommand(0XD122);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD123);\r
+       WriteParameter(0x26);\r
+\r
+       WriteCommand(0XD124);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD125);\r
+       WriteParameter(0x3B);\r
+\r
+       WriteCommand(0XD126);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD127);\r
+       WriteParameter(0x6B);\r
+\r
+       WriteCommand(0XD128);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD129);\r
+       WriteParameter(0x99);\r
+\r
+       WriteCommand(0XD12a);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD12b);\r
+       WriteParameter(0xDD);\r
+\r
+       WriteCommand(0XD12C);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD12D);\r
+       WriteParameter(0x10);\r
+\r
+       WriteCommand(0XD12E);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD12F);\r
+       WriteParameter(0x26);\r
+\r
+       WriteCommand(0XD130);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD131);\r
+       WriteParameter(0x32);\r
+\r
+       WriteCommand(0XD132);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD133);\r
+       WriteParameter(0x9A);\r
+\r
+       //Gamma setting Green\r
+       WriteCommand(0XD200);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD201);\r
+       WriteParameter(0xa0);\r
+\r
+       WriteCommand(0XD202);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD203);\r
+       WriteParameter(0xa9);\r
+\r
+       WriteCommand(0XD204);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD205);\r
+       WriteParameter(0xb5);\r
+\r
+       WriteCommand(0XD206);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD207);\r
+       WriteParameter(0xbf);\r
+\r
+       WriteCommand(0XD208);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD209);\r
+       WriteParameter(0xc9);\r
+\r
+       WriteCommand(0XD20a);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD20b);\r
+       WriteParameter(0xdc);\r
+\r
+       WriteCommand(0XD20c);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD20d);\r
+       WriteParameter(0xEE);\r
+\r
+       WriteCommand(0XD20e);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD20f);\r
+       WriteParameter(0x0A);\r
+\r
+       WriteCommand(0XD210);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD211);\r
+       WriteParameter(0x21);\r
+\r
+       WriteCommand(0XD212);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD213);\r
+       WriteParameter(0x48);\r
+\r
+       WriteCommand(0XD214);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD215);\r
+       WriteParameter(0x67);\r
+\r
+       WriteCommand(0XD216);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD217);\r
+       WriteParameter(0x97);\r
+\r
+       WriteCommand(0XD218);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD219);\r
+       WriteParameter(0xBE);\r
+\r
+       WriteCommand(0XD21a);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD21b);\r
+       WriteParameter(0xC0);\r
+\r
+       WriteCommand(0XD21c);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD21d);\r
+       WriteParameter(0xE1);\r
+\r
+       WriteCommand(0XD21e);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD21f);\r
+       WriteParameter(0x04);\r
+\r
+       WriteCommand(0XD220);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD221);\r
+       WriteParameter(0x17);\r
+\r
+       WriteCommand(0XD222);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD223);\r
+       WriteParameter(0x36);\r
+\r
+       WriteCommand(0XD224);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD225);\r
+       WriteParameter(0x50);\r
+\r
+       WriteCommand(0XD226);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD227);\r
+       WriteParameter(0x7E);\r
+\r
+       WriteCommand(0XD228);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD229);\r
+       WriteParameter(0xAC);\r
+\r
+       WriteCommand(0XD22a);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD22b);\r
+       WriteParameter(0xF1);\r
+\r
+       WriteCommand(0XD22C);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD22D);\r
+       WriteParameter(0x20);\r
+\r
+       WriteCommand(0XD22E);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD22F);\r
+       WriteParameter(0x38);\r
+\r
+       WriteCommand(0XD230);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD231);\r
+       WriteParameter(0x43);\r
+\r
+       WriteCommand(0XD232);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD233);\r
+       WriteParameter(0x9A);\r
+\r
+\r
+       //Gamma setting Blue\r
+       WriteCommand(0XD300);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD301);\r
+       WriteParameter(0x50);\r
+\r
+       WriteCommand(0XD302);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD303);\r
+       WriteParameter(0x53);\r
+\r
+       WriteCommand(0XD304);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD305);\r
+       WriteParameter(0x73);\r
+\r
+       WriteCommand(0XD306);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD307);\r
+       WriteParameter(0x89);\r
+\r
+       WriteCommand(0XD308);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD309);\r
+       WriteParameter(0x9f);\r
+\r
+       WriteCommand(0XD30a);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD30b);\r
+       WriteParameter(0xc1);\r
+\r
+       WriteCommand(0XD30c);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD30d);\r
+       WriteParameter(0xda);\r
+\r
+       WriteCommand(0XD30e);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD30f);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD310);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD311);\r
+       WriteParameter(0x23);\r
+\r
+       WriteCommand(0XD312);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD313);\r
+       WriteParameter(0x50);\r
+\r
+       WriteCommand(0XD314);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD315);\r
+       WriteParameter(0x6f);\r
+\r
+       WriteCommand(0XD316);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD317);\r
+       WriteParameter(0x9f);\r
+\r
+       WriteCommand(0XD318);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD319);\r
+       WriteParameter(0xc5);\r
+\r
+       WriteCommand(0XD31a);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD31b);\r
+       WriteParameter(0xC6);\r
+\r
+       WriteCommand(0XD31c);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD31d);\r
+       WriteParameter(0xE3);\r
+\r
+       WriteCommand(0XD31e);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD31f);\r
+       WriteParameter(0x08);\r
+\r
+       WriteCommand(0XD320);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD321);\r
+       WriteParameter(0x16);\r
+\r
+       WriteCommand(0XD322);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD323);\r
+       WriteParameter(0x2b);\r
+\r
+       WriteCommand(0XD324);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD325);\r
+       WriteParameter(0x4d);\r
+\r
+       WriteCommand(0XD326);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD327);\r
+       WriteParameter(0x6f);\r
+\r
+       WriteCommand(0XD328);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD329);\r
+       WriteParameter(0x8C);\r
+\r
+       WriteCommand(0XD32a);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD32b);\r
+       WriteParameter(0xd6);\r
+\r
+       WriteCommand(0XD32C);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD32D);\r
+       WriteParameter(0x12);\r
+\r
+       WriteCommand(0XD32E);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD32F);\r
+       WriteParameter(0x28);\r
+\r
+       WriteCommand(0XD330);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD331);\r
+       WriteParameter(0x3e);\r
+\r
+       WriteCommand(0XD332);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD333);\r
+       WriteParameter(0x9A);\r
+\r
+       //Gamma setting Red\r
+       WriteCommand(0XD400);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD401);\r
+       WriteParameter(0x20);\r
+\r
+       WriteCommand(0XD402);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD403);\r
+       WriteParameter(0x2b);\r
+\r
+       WriteCommand(0XD404);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD405);\r
+       WriteParameter(0x3c);\r
+\r
+       WriteCommand(0XD406);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD407);\r
+       WriteParameter(0x56);\r
+\r
+       WriteCommand(0XD408);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD409);\r
+       WriteParameter(0x68);\r
+\r
+       WriteCommand(0XD40a);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD40b);\r
+       WriteParameter(0x87);\r
+\r
+       WriteCommand(0XD40c);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD40d);\r
+       WriteParameter(0x9e);\r
+\r
+       WriteCommand(0XD40e);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD40f);\r
+       WriteParameter(0xc6);\r
+\r
+       WriteCommand(0XD410);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD411);\r
+       WriteParameter(0xe4);\r
+\r
+       WriteCommand(0XD412);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD413);\r
+       WriteParameter(0x12);\r
+\r
+       WriteCommand(0XD414);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD415);\r
+       WriteParameter(0x37);\r
+\r
+       WriteCommand(0XD416);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD417);\r
+       WriteParameter(0x75);\r
+\r
+       WriteCommand(0XD418);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD419);\r
+       WriteParameter(0xa5);\r
+\r
+       WriteCommand(0XD41a);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD41b);\r
+       WriteParameter(0xa6);\r
+\r
+       WriteCommand(0XD41c);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD41d);\r
+       WriteParameter(0xd0);\r
+\r
+       WriteCommand(0XD41e);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD41f);\r
+       WriteParameter(0xf5);\r
+\r
+       WriteCommand(0XD420);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD421);\r
+       WriteParameter(0x0a);\r
+\r
+       WriteCommand(0XD422);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD423);\r
+       WriteParameter(0x26);\r
+\r
+       WriteCommand(0XD424);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD425);\r
+       WriteParameter(0x3b);\r
+\r
+       WriteCommand(0XD426);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD427);\r
+       WriteParameter(0x6b);\r
+\r
+       WriteCommand(0XD428);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD429);\r
+       WriteParameter(0x99);\r
+\r
+       WriteCommand(0XD42a);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD42b);\r
+       WriteParameter(0xdd);\r
+\r
+       WriteCommand(0XD42C);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD42D);\r
+       WriteParameter(0x10);\r
+\r
+       WriteCommand(0XD42E);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD42F);\r
+       WriteParameter(0x26);\r
+\r
+       WriteCommand(0XD430);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD431);\r
+       WriteParameter(0x32);\r
+\r
+       WriteCommand(0XD432);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD433);\r
+       WriteParameter(0x9A);\r
+\r
+       //Gamma setting Green\r
+       WriteCommand(0XD500);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD501);\r
+       WriteParameter(0xa0);\r
+\r
+       WriteCommand(0XD502);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD503);\r
+       WriteParameter(0xa9);\r
+\r
+       WriteCommand(0XD504);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD505);\r
+       WriteParameter(0xb5);\r
+\r
+       WriteCommand(0XD506);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD507);\r
+       WriteParameter(0xbf);\r
+\r
+       WriteCommand(0XD508);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD509);\r
+       WriteParameter(0xc9);\r
+\r
+       WriteCommand(0XD50a);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD50b);\r
+       WriteParameter(0xdc);\r
+\r
+       WriteCommand(0XD50c);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD50d);\r
+       WriteParameter(0xee);\r
+\r
+       WriteCommand(0XD50e);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD50f);\r
+       WriteParameter(0x0a);\r
+\r
+       WriteCommand(0XD510);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD511);\r
+       WriteParameter(0x21);\r
+\r
+       WriteCommand(0XD512);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD513);\r
+       WriteParameter(0x48);\r
+\r
+       WriteCommand(0XD514);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD515);\r
+       WriteParameter(0x67);\r
+\r
+       WriteCommand(0XD516);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD517);\r
+       WriteParameter(0x97);\r
+\r
+       WriteCommand(0XD518);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD519);\r
+       WriteParameter(0xbe);\r
+\r
+       WriteCommand(0XD51a);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD51b);\r
+       WriteParameter(0xc0);\r
+\r
+       WriteCommand(0XD51c);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD51d);\r
+       WriteParameter(0xe1);\r
+\r
+       WriteCommand(0XD51e);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD51f);\r
+       WriteParameter(0x04);\r
+\r
+       WriteCommand(0XD520);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD521);\r
+       WriteParameter(0x17);\r
+\r
+       WriteCommand(0XD522);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD523);\r
+       WriteParameter(0x36);\r
+\r
+       WriteCommand(0XD524);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD525);\r
+       WriteParameter(0x50);\r
+\r
+       WriteCommand(0XD526);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD527);\r
+       WriteParameter(0x7e);\r
+\r
+       WriteCommand(0XD528);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD529);\r
+       WriteParameter(0xac);\r
+\r
+       WriteCommand(0XD52a);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD52b);\r
+       WriteParameter(0xf1);\r
+\r
+       WriteCommand(0XD52C);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD52D);\r
+       WriteParameter(0x20);\r
+\r
+       WriteCommand(0XD52E);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD52F);\r
+       WriteParameter(0x38);\r
+\r
+       WriteCommand(0XD530);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD531);\r
+       WriteParameter(0x43);\r
+\r
+       WriteCommand(0XD532);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD533);\r
+       WriteParameter(0x9A);\r
+\r
+       //Gamma setting Blue\r
+       WriteCommand(0XD600);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD601);\r
+       WriteParameter(0x50);\r
+\r
+       WriteCommand(0XD602);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD603);\r
+       WriteParameter(0x53);\r
+\r
+       WriteCommand(0XD604);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD605);\r
+       WriteParameter(0x73);\r
+\r
+       WriteCommand(0XD606);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD607);\r
+       WriteParameter(0x89);\r
+\r
+       WriteCommand(0XD608);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD609);\r
+       WriteParameter(0x9f);\r
+\r
+       WriteCommand(0XD60a);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD60b);\r
+       WriteParameter(0xc1);\r
+\r
+       WriteCommand(0XD60c);\r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XD60d);\r
+       WriteParameter(0xda);\r
+\r
+       WriteCommand(0XD60e);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD60f);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD610);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD611);\r
+       WriteParameter(0x23);\r
+\r
+       WriteCommand(0XD612);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD613);\r
+       WriteParameter(0x50);\r
+\r
+       WriteCommand(0XD614);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD615);\r
+       WriteParameter(0x6f);\r
+\r
+       WriteCommand(0XD616);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD617);\r
+       WriteParameter(0x9f);\r
+\r
+       WriteCommand(0XD618);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD619);\r
+       WriteParameter(0xc5);\r
+\r
+       WriteCommand(0XD61a);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD61b);\r
+       WriteParameter(0xc6);\r
+\r
+       WriteCommand(0XD61c);\r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XD61d);\r
+       WriteParameter(0xe3);\r
+\r
+       WriteCommand(0XD61e);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD61f);\r
+       WriteParameter(0x08);\r
+\r
+       WriteCommand(0XD620);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD621);\r
+       WriteParameter(0x16);\r
+\r
+       WriteCommand(0XD622);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD623);\r
+       WriteParameter(0x2b);\r
+\r
+       WriteCommand(0XD624);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD625);\r
+       WriteParameter(0x4d);\r
+\r
+       WriteCommand(0XD626);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD627);\r
+       WriteParameter(0x6f);\r
+\r
+       WriteCommand(0XD628);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD629);\r
+       WriteParameter(0x8c);\r
+\r
+       WriteCommand(0XD62a);\r
+       WriteParameter(0x02);\r
+\r
+       WriteCommand(0XD62b);\r
+       WriteParameter(0xd6);\r
+\r
+       WriteCommand(0XD62C);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD62D);\r
+       WriteParameter(0x12);\r
+\r
+       WriteCommand(0XD62E);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD62F);\r
+       WriteParameter(0x28);\r
+\r
+       WriteCommand(0XD630);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD631);\r
+       WriteParameter(0x3e);\r
+\r
+       WriteCommand(0XD632);\r
+       WriteParameter(0x03);\r
+\r
+       WriteCommand(0XD633);\r
+       WriteParameter(0x9A);\r
+\r
+       WriteCommand(0XBA00); \r
+       WriteParameter(0x14);\r
+\r
+       WriteCommand(0XBA01); \r
+       WriteParameter(0x14);\r
+\r
+       WriteCommand(0XBA02); \r
+       WriteParameter(0x14);\r
+\r
+       WriteCommand(0XBF00); \r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XB300); \r
+       WriteParameter(0x07);\r
+\r
+       WriteCommand(0XB301); \r
+       WriteParameter(0x07);\r
+\r
+       WriteCommand(0XB302); \r
+       WriteParameter(0x07);\r
+\r
+       WriteCommand(0XB900); \r
+       WriteParameter(0x25);\r
+\r
+       WriteCommand(0XB901); \r
+       WriteParameter(0x25);\r
+\r
+       WriteCommand(0XB902); \r
+       WriteParameter(0x25);\r
+\r
+\r
+\r
+       WriteCommand(0XBC01); \r
+       WriteParameter(0xA0);\r
+\r
+       WriteCommand(0XBC02); \r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XBD01); \r
+       WriteParameter(0xA0);\r
+\r
+       WriteCommand(0XBD02); \r
+       WriteParameter(0x00);\r
+\r
+\r
+       WriteCommand(0XF000); \r
+       WriteParameter(0x55);\r
+\r
+       WriteCommand(0XF001); \r
+       WriteParameter(0xAA);\r
+\r
+       WriteCommand(0XF002); \r
+       WriteParameter(0x52);\r
+\r
+       WriteCommand(0XF003); \r
+       WriteParameter(0x08);\r
+\r
+       WriteCommand(0XF004); \r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XB100); \r
+       WriteParameter(0xCC);\r
+\r
+       WriteCommand(0XBC00); \r
+       WriteParameter(0x05);\r
+\r
+       WriteCommand(0XBC01); \r
+       WriteParameter(0x05);\r
+\r
+       WriteCommand(0XBC02); \r
+       WriteParameter(0x05);\r
+\r
+\r
+       WriteCommand(0XBD02); \r
+       WriteParameter(0x07);\r
+       WriteCommand(0XBD03); \r
+       WriteParameter(0x31);\r
+\r
+       WriteCommand(0XBE02); \r
+       WriteParameter(0x07);\r
+       WriteCommand(0XBE03); \r
+       WriteParameter(0x31);\r
+\r
+       WriteCommand(0XBF02); \r
+       WriteParameter(0x07);\r
+       WriteCommand(0XBF03); \r
+       WriteParameter(0x31);\r
+\r
+       WriteCommand(0XFF00); \r
+       WriteParameter(0xAA);\r
+       WriteCommand(0XFF01); \r
+       WriteParameter(0x55);\r
+       WriteCommand(0XFF02); \r
+       WriteParameter(0x25);\r
+       WriteCommand(0XFF03); \r
+       WriteParameter(0x01);\r
+\r
+\r
+       WriteCommand(0X3500); \r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0X3a00); \r
+       \r
+if(OUT_FACE == OUT_P888)\r
+       WriteParameter(0x70);   //24bit\r
+else if(OUT_FACE == OUT_P666)\r
+       WriteParameter(0x60);//18bit\r
+\r
+       WriteCommand(0X3600); \r
+       WriteParameter(0x00);//R<->B\r
+\r
+       WriteCommand(0X2000); //\r
+\r
+       WriteCommand(0X1100); \r
+       mdelay(120);\r
+\r
+       WriteCommand(0X2900); \r
+\r
+       mdelay(100);\r
+       WriteCommand(0X2C00); \r
+}\r
+\r
+\r
+void resume_nt35510(void)\r
+{\r
+       WriteCommand(0X1100); \r
+       mdelay(120);\r
+\r
+       WriteCommand(0X1300); \r
+\r
+       WriteCommand(0XF000); \r
+       WriteParameter(0x55);\r
+\r
+       WriteCommand(0XF001); \r
+       WriteParameter(0xAA);\r
+\r
+       WriteCommand(0XF002); \r
+       WriteParameter(0x52);\r
+\r
+       WriteCommand(0XF003); \r
+       WriteParameter(0x08);\r
+\r
+       WriteCommand(0XF004); \r
+       WriteParameter(0x01);\r
+\r
+\r
+       /**************/\r
+       WriteCommand(0XBA00); \r
+       WriteParameter(0x14);\r
+\r
+       WriteCommand(0XBA01); \r
+       WriteParameter(0x14);\r
+\r
+       WriteCommand(0XBA02); \r
+       WriteParameter(0x14);\r
+\r
+       WriteCommand(0XBF00); \r
+       WriteParameter(0x01);\r
+\r
+       WriteCommand(0XB300); \r
+       WriteParameter(0x07);\r
+\r
+       WriteCommand(0XB301); \r
+       WriteParameter(0x07);\r
+\r
+       WriteCommand(0XB302); \r
+       WriteParameter(0x07);\r
+\r
+       WriteCommand(0XB900); \r
+       WriteParameter(0x25);\r
+\r
+       WriteCommand(0XB901); \r
+       WriteParameter(0x25);\r
+\r
+       WriteCommand(0XB902); \r
+       WriteParameter(0x25);\r
+\r
+\r
+\r
+       WriteCommand(0XBC01); \r
+       WriteParameter(0xA0);\r
+\r
+       WriteCommand(0XBC02); \r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XBD01); \r
+       WriteParameter(0xA0);\r
+\r
+       WriteCommand(0XBD02); \r
+       WriteParameter(0x00);\r
+\r
+\r
+       WriteCommand(0XF000); \r
+       WriteParameter(0x55);\r
+\r
+       WriteCommand(0XF001); \r
+       WriteParameter(0xAA);\r
+\r
+       WriteCommand(0XF002); \r
+       WriteParameter(0x52);\r
+\r
+       WriteCommand(0XF003); \r
+       WriteParameter(0x08);\r
+\r
+       WriteCommand(0XF004); \r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0XB100); \r
+       WriteParameter(0xCC);\r
+\r
+       WriteCommand(0XBC00); \r
+       WriteParameter(0x05);\r
+\r
+       WriteCommand(0XBC01); \r
+       WriteParameter(0x05);\r
+\r
+       WriteCommand(0XBC02); \r
+       WriteParameter(0x05);\r
+\r
+\r
+       WriteCommand(0XBD02); \r
+       WriteParameter(0x07);\r
+       WriteCommand(0XBD03); \r
+       WriteParameter(0x31);\r
+\r
+       WriteCommand(0XBE02); \r
+       WriteParameter(0x07);\r
+       WriteCommand(0XBE03); \r
+       WriteParameter(0x31);\r
+\r
+       WriteCommand(0XBF02); \r
+       WriteParameter(0x07);\r
+       WriteCommand(0XBF03); \r
+       WriteParameter(0x31);\r
+\r
+       WriteCommand(0XFF00); \r
+       WriteParameter(0xAA);\r
+       WriteCommand(0XFF01); \r
+       WriteParameter(0x55);\r
+       WriteCommand(0XFF02); \r
+       WriteParameter(0x25);\r
+       WriteCommand(0XFF03); \r
+       WriteParameter(0x01);\r
+\r
+\r
+       WriteCommand(0X3500); \r
+       WriteParameter(0x00);\r
+\r
+       WriteCommand(0X3a00); \r
+       \r
+if(OUT_FACE == OUT_P888)\r
+       WriteParameter(0x70);   //24bit\r
+else if(OUT_FACE == OUT_P666)\r
+       WriteParameter(0x60);//18bit\r
+\r
+       WriteCommand(0X3600); \r
+       WriteParameter(0x00);//R<->B\r
+\r
+       WriteCommand(0X2000); //\r
+\r
+       WriteCommand(0X1100); \r
+       mdelay(120);\r
+\r
+       WriteCommand(0X2900); \r
+\r
+       mdelay(100);\r
+       WriteCommand(0X2C00); \r
+}\r
+\r
+int init(void)\r
+{ \r
+       volatile u32 data;\r
+       printk("lcd init...\n");\r
+       /* reset lcd to start init lcd */\r
+       gpio_request(RK29_PIN6_PC6, NULL);\r
+       gpio_direction_output(RK29_PIN6_PC6, 1);\r
+       gpio_direction_output(RK29_PIN6_PC6, 0);\r
+       mdelay(5);\r
+       gpio_set_value(RK29_PIN6_PC6, 1);\r
+       mdelay(50);\r
+       gpio_free(RK29_PIN6_PC6);\r
+\r
+       if(gLcd_info)\r
+       gLcd_info->io_init();\r
+       init_nt35510();\r
+\r
+       if(gLcd_info)\r
+       gLcd_info->io_deinit();\r
+\r
+       //set_backlight(255);\r
+\r
+    return 0;\r
+}\r
+\r
+int standby(u8 enable) //***enable =1 means suspend, 0 means resume \r
+{\r
+    if(gLcd_info)\r
+        gLcd_info->io_init();\r
+\r
+       if(enable) {\r
+               WriteCommand(0X2800); \r
+               //set_backlight(0);\r
+               mdelay(100);\r
+               WriteCommand(0X1000); \r
+       } else { \r
+               //WriteCommand(0X1100); \r
+               //mdelay(120);\r
+               //WriteCommand(0X2900); \r
+               //mdelay(100);\r
+               //set_backlight(255);\r
+               resume_nt35510();//may be fail to wake up LCD some time,so change to init lcd again\r
+       }\r
+\r
+    if(gLcd_info)\r
+        gLcd_info->io_deinit();\r
+\r
+    return 0;\r
+}\r
+\r
+\r