summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Wu <quic_zwy@quicinc.com>2022-12-21 17:10:02 +0800
committerYu Wu <quic_zwy@quicinc.com>2022-12-30 15:27:53 +0800
commit3d03d5839ed0e3779cbdb2933becb7e1b00a4dda (patch)
tree18a7d26d0f64aa8b6da29e533e2924dd1bea3d7c
parentca51d4f514abe083bbcb05e530a1574f8a852a47 (diff)
downloadtouch-3d03d5839ed0e3779cbdb2933becb7e1b00a4dda.tar.gz
touch: goodix: Sleep 100ms after reset operation
It is found there might be some i2c NACK error after power on and reset operation, from goodix datasheet it is required to wait 100ms after reset operation before I2C communication, so put a 100ms sleep after reset. Change-Id: I2601085f85c83a57bc895915506eaf0c29442678 Signed-off-by: Yu Wu <quic_zwy@quicinc.com>
-rw-r--r--goodix_berlin_driver/goodix_brl_hw.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/goodix_berlin_driver/goodix_brl_hw.c b/goodix_berlin_driver/goodix_brl_hw.c
index f7b2afd..1aebdc0 100644
--- a/goodix_berlin_driver/goodix_brl_hw.c
+++ b/goodix_berlin_driver/goodix_brl_hw.c
@@ -231,9 +231,12 @@ static int brl_power_on(struct goodix_ts_core *cd, bool on)
goto power_off;
}
}
+
+ gpio_direction_output(cd->board_data.reset_gpio, 0);
usleep_range(15000, 15100);
- gpio_direction_output(reset_gpio, 1);
- usleep_range(4000, 4100);
+ gpio_direction_output(cd->board_data.reset_gpio, 1);
+ msleep(GOODIX_NORMAL_RESET_DELAY_MS);
+
ret = brl_dev_confirm(cd);
if (ret < 0)
goto power_off;
@@ -241,7 +244,6 @@ static int brl_power_on(struct goodix_ts_core *cd, bool on)
if (ret < 0)
goto power_off;
- msleep(GOODIX_NORMAL_RESET_DELAY_MS);
return 0;
}