summaryrefslogtreecommitdiff
path: root/goodix_brl_hw.c
diff options
context:
space:
mode:
authorWendly Li <wendlyli@google.com>2022-06-06 06:10:15 +0000
committerWendly Li <wendlyli@google.com>2022-06-07 07:13:50 +0000
commite29c9d98224bd37a84929a3d2bb98c808efdca0e (patch)
tree5cbb7a32184aad4735fe6407e86195ec5a1f6d79 /goodix_brl_hw.c
parent0841e784fec0636ce57415d4b49e6c8d8f1f88d2 (diff)
downloadgoodix_touch-e29c9d98224bd37a84929a3d2bb98c808efdca0e.tar.gz
Import v1.0.10 driver
Bug: 214118837 Test: Check heatmap works Change-Id: Id7e23480bd7a6b1e38c493ad54cf362106ee43c1 Signed-off-by: Wendly Li <wendlyli@google.com>
Diffstat (limited to 'goodix_brl_hw.c')
-rw-r--r--goodix_brl_hw.c35
1 files changed, 27 insertions, 8 deletions
diff --git a/goodix_brl_hw.c b/goodix_brl_hw.c
index 91d933b..ac908b1 100644
--- a/goodix_brl_hw.c
+++ b/goodix_brl_hw.c
@@ -1249,11 +1249,16 @@ static int brl_after_event_handler(struct goodix_ts_core *cd)
{
struct goodix_ts_hw_ops *hw_ops = cd->hw_ops;
struct goodix_ic_info_misc *misc = &cd->ic_info.misc;
- u8 sync_clean = 0;
+ u8 sync_clean[1] = { 0 };
+ int ret = 0;
if (cd->tools_ctrl_sync)
return 0;
- return hw_ops->write(cd, misc->touch_data_addr, &sync_clean, 1);
+
+ ret = hw_ops->write(cd, misc->touch_data_addr, sync_clean, sizeof(sync_clean));
+ if (ret != 0)
+ return ret;
+ return hw_ops->write(cd, misc->frame_data_addr, sync_clean, sizeof(sync_clean));
}
static int brld_get_framedata(
@@ -1498,19 +1503,33 @@ int brl_set_continuously_report_enabled(struct goodix_ts_core *cd, bool enabled)
return 0;
}
-#define GOODIX_CMD_SET_HEATMAP_ENABLED 0x90
+#define GOODIX_CMD_SET_FRAMEDATA_ENABLED 0x90
+#define GOODIX_CMD_SET_HEATMAP_ENABLED 0xC9
int brl_set_heatmap_enabled(struct goodix_ts_core *cd, bool enabled)
{
struct goodix_ts_cmd cmd;
+ int ret = 0;
cmd.cmd = GOODIX_CMD_SET_HEATMAP_ENABLED;
cmd.len = 5;
- cmd.data[0] = enabled ? 2 : 0;
- if (cd->hw_ops->send_cmd(cd, &cmd))
- ts_err("failed to set heatmap enabled: %s",
- enabled ? "enabled" : "disabled");
+ cmd.data[0] = enabled ? 1 : 0;
+ ret = cd->hw_ops->send_cmd(cd, &cmd);
+ if (ret != 0) {
+ ts_err("failed to set heatmap %s, err: %d",
+ enabled ? "enabled" : "disabled", ret);
+ return ret;
+ }
- return 0;
+ cmd.cmd = GOODIX_CMD_SET_FRAMEDATA_ENABLED;
+ cmd.len = 5;
+ cmd.data[0] = enabled ? 0x82 : 0;
+ ret = cd->hw_ops->send_cmd(cd, &cmd);
+ if (ret != 0) {
+ ts_err("failed to set framedata %s, err: %d",
+ enabled ? "enabled" : "disabled", ret);
+ return ret;
+ }
+ return ret;
}
static struct goodix_ts_hw_ops brl_hw_ops = {