summaryrefslogtreecommitdiff
path: root/goodix_ts_core.c
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2022-09-05 04:24:53 +0000
committerWendly Li <wendlyli@google.com>2022-09-05 05:07:51 +0000
commit4b6547193acf4c42323d6407ea29da2fa04cf564 (patch)
tree644f9ea8376860c0796f3d2d062b0b1e33da7686 /goodix_ts_core.c
parentd7d25658b53d20d4345e33aa9f8d43fab0a8c66c (diff)
downloadgoodix_touch-4b6547193acf4c42323d6407ea29da2fa04cf564.tar.gz
touch/goodix: Import v1.1.1 driver
Bug: 245028037 Test: Check esd checker will not be enabled when device is suspended Change-Id: I64268295f8373b95864dd4fa8bdebe0579ffed81 Signed-off-by: Wendly Li <wendlyli@google.com>
Diffstat (limited to 'goodix_ts_core.c')
-rw-r--r--goodix_ts_core.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/goodix_ts_core.c b/goodix_ts_core.c
index 38661f3..51bc3fd 100644
--- a/goodix_ts_core.c
+++ b/goodix_ts_core.c
@@ -2110,7 +2110,7 @@ static void goodix_ts_esd_work(struct work_struct *work)
if (ts_esd->irq_status)
goto exit;
- if (!atomic_read(&ts_esd->esd_on))
+ if (!atomic_read(&ts_esd->esd_on) || atomic_read(&cd->suspended))
return;
if (!hw_ops->esd_check)
@@ -2119,9 +2119,22 @@ static void goodix_ts_esd_work(struct work_struct *work)
ret = hw_ops->esd_check(cd);
if (ret) {
ts_err("esd check failed");
- goodix_ts_power_off(cd);
+ gpio_direction_output(cd->board_data.reset_gpio, 0);
+ if (cd->iovdd)
+ ret = regulator_disable(cd->iovdd);
+ if (cd->avdd)
+ ret = regulator_disable(cd->avdd);
+
usleep_range(5000, 5100);
- goodix_ts_power_on(cd);
+
+ if (cd->iovdd) {
+ ret = regulator_enable(cd->iovdd);
+ usleep_range(3000, 3100);
+ }
+ if (cd->avdd)
+ ret = regulator_enable(cd->avdd);
+ usleep_range(15000, 15100);
+ gpio_direction_output(cd->board_data.reset_gpio, 1);
}
exit: