A22: lcd use spi0 instead of spi1, make lcd enter deep sleep in suspend
authorroot <root@ubuntu.(none)>
Fri, 1 Jul 2011 09:20:33 +0000 (02:20 -0700)
committerroot <root@ubuntu.(none)>
Fri, 1 Jul 2011 09:20:33 +0000 (02:20 -0700)
arch/arm/configs/rk29_a22_defconfig [changed mode: 0644->0755]
arch/arm/mach-rk29/board-rk29-a22.c
drivers/video/display/screen/lcd_nt35510.c

old mode 100644 (file)
new mode 100755 (executable)
index dcf596f..e3441b5
@@ -985,6 +985,8 @@ CONFIG_SPIM_RK29=y
 CONFIG_SPIM0_RK29=y
 CONFIG_SPIM1_RK29=y
 CONFIG_LCD_USE_SPIM_CONTROL=y
+CONFIG_LCD_USE_SPI0=y
+# CONFIG_LCD_USE_SPI1 is not set
 
 #
 # SPI Protocol Masters
index 92f023d996ca6d4fbe41ab6840314d9ed2bc3ed2..e41230fb2fbe57bff8bdd0469b0fc263a2bd19c0 100755 (executable)
@@ -180,13 +180,12 @@ struct rk29_nand_platform_data rk29_nand_data = {
  * author: zyw@rock-chips.com
  *****************************************************************************************/
 //#ifdef  CONFIG_LCD_TD043MGEA1
+#define CONFIG_LCD_USE_SPI0 1
 #ifdef CONFIG_LCD_USE_SPI0
 #define LCD_TXD_PIN          RK29_PIN2_PC2
 #define LCD_CLK_PIN          RK29_PIN2_PC0
 #define LCD_CS_PIN           RK29_PIN1_PA4
-#endif
-
-#ifdef CONFIG_LCD_USE_SPI1
+#else
 #define LCD_TXD_PIN          RK29_PIN2_PC6
 #define LCD_CLK_PIN          RK29_PIN2_PC4
 #define LCD_CS_PIN           RK29_PIN2_PC5
@@ -209,25 +208,21 @@ static int rk29_lcd_io_init(void)
 {
        int ret = 0;
        //printk("rk29_lcd_io_init\n");
-       //ret = gpio_request(LCD_RXD_PIN, NULL);
-       ret = gpio_request(LCD_TXD_PIN, NULL);
-       ret = gpio_request(LCD_CLK_PIN, NULL);
-       ret = gpio_request(LCD_CS_PIN, NULL);
-       
 #ifdef CONFIG_LCD_USE_SPI0
        //rk29_mux_api_set(GPIO2C7_SPI1RXD_NAME,GPIO2H_GPIO2C7);
        rk29_mux_api_set(GPIO2C2_SPI0TXD_NAME,GPIO2H_GPIO2C2);
        rk29_mux_api_set(GPIO1A4_EMMCWRITEPRT_SPI0CS1_NAME,GPIO1L_GPIO1A4);
        rk29_mux_api_set(GPIO2C0_SPI0CLK_NAME,GPIO2H_GPIO2C0);
-#endif
-
-#ifdef CONFIG_LCD_USE_SPI1
+#else
        //rk29_mux_api_set(GPIO2C7_SPI1RXD_NAME,GPIO2H_GPIO2C7);
        rk29_mux_api_set(GPIO2C6_SPI1TXD_NAME,GPIO2H_GPIO2C6);
        rk29_mux_api_set(GPIO2C5_SPI1CSN0_NAME,GPIO2H_GPIO2C5);
        rk29_mux_api_set(GPIO2C4_SPI1CLK_NAME,GPIO2H_GPIO2C4);
 #endif
-
+       //ret = gpio_request(LCD_RXD_PIN, NULL);
+       ret = gpio_request(LCD_TXD_PIN, NULL);
+       ret = gpio_request(LCD_CLK_PIN, NULL);
+       ret = gpio_request(LCD_CS_PIN, NULL);
        return ret;
 }
 
@@ -244,9 +239,7 @@ static int rk29_lcd_io_deinit(void)
        rk29_mux_api_set(GPIO2C2_SPI0TXD_NAME,GPIO2H_SPI0_TXD);
        rk29_mux_api_set(GPIO1A4_EMMCWRITEPRT_SPI0CS1_NAME,GPIO1L_SPI0_CSN1);
        rk29_mux_api_set(GPIO2C0_SPI0CLK_NAME,GPIO2H_SPI0_CLK);
-#endif
-
-#ifdef CONFIG_LCD_USE_SPI1
+#else
        //rk29_mux_api_set(GPIO2C7_SPI1RXD_NAME,GPIO2H_SPI1_RXD);
        rk29_mux_api_set(GPIO2C6_SPI1TXD_NAME,GPIO2H_SPI1_TXD);
        rk29_mux_api_set(GPIO2C5_SPI1CSN0_NAME,GPIO2H_SPI1_CSN0);
@@ -1561,7 +1554,7 @@ struct rk_headset_pdata rk_headset_info = {
        .Headset_gpio           = RK29_PIN3_PA6,
        .headset_in_type= HEADSET_IN_HIGH,
        .Hook_gpio = RK29_PIN4_PD1,//Detection Headset--Must be set
-       .hook_key_code = KEY_MEDIA,
+//     .hook_key_code = KEY_MEDIA,
 };
 
 struct platform_device rk_device_headset = {
index ee8ec33a4103a2f7fb462965fb1edbc326f6035a..564bddc9db06f08db526bc6ff1062e856f27e84c 100755 (executable)
@@ -1576,23 +1576,29 @@ extern void rk29_lcd_spim_spin_lock(void);
 extern void rk29_lcd_spim_spin_unlock(void);\r
 int standby(u8 enable) //***enable =1 means suspend, 0 means resume \r
 {\r
-       rk29_lcd_spim_spin_lock();\r
+       //rk29_lcd_spim_spin_lock();\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
+               WriteCommand(0X1100); \r
+               mdelay(5);\r
+               WriteCommand(0X4f00); \r
+               WriteParameter(0x01);\r
        } else { \r
-               WriteCommand(0X1100); \r
-               mdelay(120);\r
-               WriteCommand(0X2900); \r
-               mdelay(100);\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
+               init_nt35510();\r
                //set_backlight(255);\r
                //resume_nt35510();//may be fail to wake up LCD some time,so change to init lcd again\r
-               printk("%s\n",__FUNCTION__);\r
+               printk("%s\n",__FUNCTION__);printk("%s\n",__FUNCTION__);\r
        }\r
 \r
     if(gLcd_info)\r