m701 - tp: improve tp can't work when low power startup.
authorzhengxing <zhengxing@rock-chips.com>
Sat, 20 Oct 2012 07:18:19 +0000 (15:18 +0800)
committerzhengxing <zhengxing@rock-chips.com>
Sat, 20 Oct 2012 07:19:07 +0000 (15:19 +0800)
arch/arm/mach-rk30/board-rk3066b-m701.c
drivers/input/touchscreen/ft5306_ts_av.c

index f52c0bc1d31d2a33dc67da0617167bf9a0639252..a07b5df42fec107675c4e70737bdcb29393184f2 100755 (executable)
@@ -158,7 +158,9 @@ static int ft5306_init_platform_hw(void)
          return -EIO;
        }
 
-       gpio_direction_output(TOUCH_RESET_PIN, 0);
+       gpio_direction_output(TOUCH_RESET_PIN, 1);
+       gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);
+       mdelay(50);
        gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);
        mdelay(50);
        gpio_direction_input(TOUCH_INT_PIN);
index 7b27bb2494886e0fb50de24a4ff47809810e010a..769efcbfe2f1765580a730fc7a4210aa5c9e7c75 100644 (file)
@@ -851,23 +851,33 @@ static int  ft5306_probe(struct i2c_client *client ,const struct i2c_device_id *
                return -ENOMEM;\r
        }\r
 \r
-       while(retry < 5)\r
-       {\r
-               ret=ft5306_set_regs(client,FT5X0X_REG_PMODE, buf_test,1);\r
-               if(ret > 0)break;\r
-               retry++;\r
-       }\r
-       if(ret <= 0)\r
-       {\r
-               FTprintk("FT5306 I2C TEST ERROR!\n");\r
-               err = -ENODEV;\r
-               goto exit_i2c_test_fail;\r
-       }\r
+    while(retry < 5) \r
+    {    \r
+        ret = ft5306_set_regs(client,FT5X0X_REG_PMODE, buf_test, 1);\r
+        if(ret > 0) \r
+            break;\r
+        retry++;\r
+\r
+        printk("FT5306 I2C TEST FAILED, retry = %d, ret = %d, will again...\n", retry, ret);\r
+\r
+        if (pdata->exit_platform_hw)     \r
+            pdata->exit_platform_hw();\r
+        if (pdata->init_platform_hw)     \r
+            pdata->init_platform_hw();\r
+    }    \r
+    printk("FT5306 I2C TEST OK, retry = %d, ret = %d\n", retry, ret);\r
+\r
+    if(ret <= 0)\r
+    {    \r
+        printk("FT5306 I2C TEST ERROR! retry = %d, ret = %d\n", retry, ret);\r
+        err = -ENODEV;\r
+        goto exit_i2c_test_fail;\r
+    }\r
        \r
        input_dev = input_allocate_device();\r
        if (!input_dev) {\r
                err = -ENOMEM;\r
-               FTprintk("failed to allocate input device\n");\r
+               printk("failed to allocate input device\n");\r
                goto exit_input_dev_alloc_failed;\r
        }\r
        ft5x0x_ts->client = this_client = client;\r
@@ -903,7 +913,7 @@ static int  ft5306_probe(struct i2c_client *client ,const struct i2c_device_id *
        input_dev->name         = "ft5x0x_ts-touchscreen";              //dev_name(&client->dev)\r
        err = input_register_device(input_dev);\r
        if (err) {\r
-               FTprintk("ft5306_ts_probe: failed to register input device: \n");\r
+               printk("ft5306_ts_probe: failed to register input device: \n");\r
                goto exit_input_register_device_failed;\r
        }\r
 \r