Input: wdt87xx_i2c - change the sleep time to 2500ms after the sw reset
authorHungNien Chen <hn.chen@weidahitech.com>
Sun, 12 Jul 2015 00:30:19 +0000 (17:30 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 12 Jul 2015 06:26:33 +0000 (23:26 -0700)
The original wait time was 200ms which was enough for the firmware to
finish loading and boot. After that the firmware will perform
initialization and touch calibration, which will take about 1.1 second. The
touch calibration will change controller frequency to scan at the most
optimal frequency and during calibration/frequency switching process we may
run into i2c data errors. To avoid them we extend the sleep to 2500ms after
issuing the sw reset.

Signed-off-by: HungNien Chen <hn.chen@weidahitech.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/wdt87xx_i2c.c

index 764d8f2..515c20a 100644 (file)
 /* Controller requires minimum 300us between commands */
 #define WDT_COMMAND_DELAY_MS           2
 #define WDT_FLASH_WRITE_DELAY_MS       4
+#define WDT_FW_RESET_TIME              2500
 
 struct wdt87xx_sys_param {
        u16     fw_id;
@@ -406,7 +407,7 @@ static int wdt87xx_sw_reset(struct i2c_client *client)
        }
 
        /* Wait the device to be ready */
-       msleep(200);
+       msleep(WDT_FW_RESET_TIME);
 
        return 0;
 }