summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen/egalax_ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/touchscreen/egalax_ts.c')
-rw-r--r--drivers/input/touchscreen/egalax_ts.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c
index 04c92e03b8aa..321146efbff3 100644
--- a/drivers/input/touchscreen/egalax_ts.c
+++ b/drivers/input/touchscreen/egalax_ts.c
@@ -147,6 +147,7 @@ static int egalax_wake_up_device(struct i2c_client *client)
return ret;
}
/* wake up controller via an falling edge on IRQ gpio. */
+ gpio_direction_output(gpio, 1);
gpio_direction_output(gpio, 0);
gpio_set_value(gpio, 1);
/* controller should be waken up, return irq. */
@@ -192,6 +193,10 @@ static int __devinit egalax_ts_probe(struct i2c_client *client,
data->input_dev = input_dev;
/* controller may be in sleep, wake it up. */
egalax_wake_up_device(client);
+ msleep(10);
+ /* the controller needs some time to wakeup, otherwise the
+ * following firmware version read will be failed.
+ */
ret = egalax_firmware_version(client);
if (ret < 0) {
dev_err(&client->dev,