rk292x gt811: add wake up touch by int
authorwuhao <wuhao@wuhao@rock-chips.com>
Fri, 23 Nov 2012 06:45:51 +0000 (14:45 +0800)
committerwuhao <wuhao@wuhao@rock-chips.com>
Fri, 23 Nov 2012 06:45:51 +0000 (14:45 +0800)
drivers/input/touchscreen/gt811_ts.c

index 90b48b67c451e54a81d026c25df47613f6d65711..1bb4e94602f867023fe100a8a3f616a46d749470 100755 (executable)
@@ -725,12 +725,25 @@ static int goodix_ts_power(struct gt811_ts_data * ts, int on)
                        return ret;\r
                        \r
                case 1:\r
-                       gpio_direction_output(reset_pin,0);\r
-                       msleep(1);\r
-           gpio_set_value(reset_pin,0);\r
-           msleep(100);\r
-           gpio_set_value(reset_pin,1);\r
-           msleep(100);\r
+                        printk("++++ reset_pin: %d \n",reset_pin);\r
+                       if(reset_pin > 0 ){\r
+                               gpio_direction_output(reset_pin,0);\r
+                               msleep(1);\r
+                               gpio_set_value(reset_pin,0);\r
+                               msleep(100);\r
+                               gpio_set_value(reset_pin,1);\r
+                               msleep(100);\r
+                       }else{\r
+                               msleep(1);\r
+                               gpio_direction_output(irq_to_gpio(ts->client->irq), 0);\r
+                               msleep(100);\r
+                               gpio_direction_output(irq_to_gpio(ts->client->irq), 1);\r
+                               msleep(100);\r
+\r
+                               unsigned int  gpio = irq_to_gpio(ts->client->irq);\r
+                               gpio_set_value(gpio, 0);\r
+                               gpio_direction_input(gpio);\r
+                       }\r
                        ret = 0;\r
                        return ret;\r
                                \r
@@ -1098,7 +1111,11 @@ static int goodix_ts_suspend(struct i2c_client *client, pm_message_t mesg)
        struct gt811_ts_data *ts = i2c_get_clientdata(client);\r
        disable_irq(gpio_to_irq(client->irq));\r
        if (ts->power) \r
-       {       \r
+       {\r
+              ret = ts->power(ts, 0);\r
+               printk("goodix_ts suspend >>>>>>>>>ret=%d \n",ret);\r
+               if (ret < 0)\r
+                       printk(KERN_ERR "goodix_ts_suspend power on failed\n"); \r
        }\r
         return 0;\r
 }\r