diff options
author | Yen-Chao Chen <davidycchen@google.com> | 2023-03-07 11:22:12 +0800 |
---|---|---|
committer | Yen-Chao Chen <davidycchen@google.com> | 2023-03-07 11:25:11 +0800 |
commit | d779bd663b3e55e0a4e6e12120a62713e8c05b1c (patch) | |
tree | e1e10546c59ad2662832dc660d1630c05e1ef891 | |
parent | 9a1bdd15f21249e755ef38ce2439e6ca407ca54c (diff) | |
download | goodix_touch-d779bd663b3e55e0a4e6e12120a62713e8c05b1c.tar.gz |
goodix: support GTI irq/reset commands
Support GTI unified commands.
Bug: 242559052
Test: test with the commands.
Change-Id: I47920055a1d47c7a24c5f166c9043b300d7f9bdd
Signed-off-by: Yen-Chao Chen <davidycchen@google.com>
-rw-r--r-- | goodix_ts_core.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/goodix_ts_core.c b/goodix_ts_core.c index c86c0b7..83044a4 100644 --- a/goodix_ts_core.c +++ b/goodix_ts_core.c @@ -1133,6 +1133,34 @@ static int gti_get_fw_version(void *private_data, return ret; } +static int gti_set_irq_mode(void *private_data, struct gti_irq_cmd *cmd) +{ + struct goodix_ts_core *cd = private_data; + return cd->hw_ops->irq_enable(cd, cmd->setting == GTI_IRQ_MODE_ENABLE); +} + +static int gti_get_irq_mode(void *private_data, struct gti_irq_cmd *cmd) +{ + struct goodix_ts_core *cd = private_data; + + if (atomic_read(&cd->irq_enabled) == 1) + cmd->setting = GTI_IRQ_MODE_ENABLE; + else + cmd->setting = GTI_IRQ_MODE_DISABLE; + + return 0; +} + +static int gti_reset(void *private_data, struct gti_reset_cmd *cmd) +{ + struct goodix_ts_core *cd = private_data; + + if (cmd->setting == GTI_RESET_MODE_HW || cmd->setting == GTI_RESET_MODE_AUTO) + return cd->hw_ops->reset(cd, GOODIX_NORMAL_RESET_DELAY_MS); + else + return -EOPNOTSUPP; +} + static int gti_ping(void *private_data, struct gti_ping_cmd *cmd) { struct goodix_ts_core *cd = private_data; @@ -2854,6 +2882,9 @@ int goodix_ts_stage2_init(struct goodix_ts_core *cd) options->get_screen_protector_mode = get_screen_protector_mode; options->set_heatmap_enabled = set_heatmap_enabled; options->get_fw_version = gti_get_fw_version; + options->set_irq_mode = gti_set_irq_mode; + options->get_irq_mode = gti_get_irq_mode; + options->reset = gti_reset; options->ping = gti_ping; options->selftest = gti_selftest; |