Support normal mode switch corner suppression level

Normal mode:
In case corner area mistake touch when phone is on horizontal screen
state,when phone rotate left or right,FrameWork will send rotation and
corner suppression level, then driver will send switch command to
IC,Firmware will disable corner area touch according to its own logic.

Change-Id: Ib6864cf2a8027beea2066c41e2441359f52d20e4
Signed-off-by: Wenge Zhu <zhuwg1@motorola.com>
Reviewed-on: https://gerrit.mot.com/2363420
SME-Granted: SME Approvals Granted
SLTApproved: Slta Waiver
Tested-by: Jira Key
Reviewed-by: Wei Deng <dengwei1@motorola.com>
Reviewed-by: Jianqi Yang <yangj@motorola.com>
Submit-Approved: Jira Key
This commit is contained in:
Wenge Zhu 2022-08-16 15:46:32 +08:00 • committed by zhuwg1
commit d45b34be1e
2 changed files with 25 additions and 4 deletions

View file

@ -77,6 +77,10 @@ static DEVICE_ATTR(timestamp, S_IRUGO, goodix_ts_timestamp_show, NULL);
#define DEFAULT_MODE 0
#define MAX_ATTRS_ENTRIES 10
#define NORMAL_DEFAULT_MODE 10
#define NORMAL_SMALL_MODE 11
#define NORMAL_BIG_MODE 12
#define ADD_ATTR(name) { \
if (idx < MAX_ATTRS_ENTRIES) { \
dev_info(dev, "%s: [%d] adding %p\n", __func__, idx, &dev_attr_##name.attr); \
@ -592,13 +596,26 @@ static ssize_t goodix_ts_edge_store(struct device *dev,
if (ret < 2)
return -EINVAL;
if (DEFAULT_MODE == args[0]) {
switch (args[0]) {
case DEFAULT_MODE:
edge_cmd[1] = DEFAULT_EDGE;
} else if (SMALL_MODE == args[0]) {
break;
case SMALL_MODE:
edge_cmd[1] = SMALL_EDGE;
} else if (BIG_MODE == args[0]) {
break;
case BIG_MODE:
edge_cmd[1] = BIG_EDGE;
} else {
break;
case NORMAL_DEFAULT_MODE:
edge_cmd[1] = NORMAL_DEFAULT_EDGE;
break;
case NORMAL_SMALL_MODE:
edge_cmd[1] = NORMAL_SMALL_EDGE;
break;
case NORMAL_BIG_MODE:
edge_cmd[1] = NORMAL_BIG_EDGE;
break;
default:
ts_err("Invalid edge mode: %d!\n", args[0]);
return -EINVAL;
}

View file

@ -45,6 +45,10 @@ static int inline goodix_ts_mmi_dev_unregister(struct platform_device *ts_device
#define SMALL_EDGE 0x40
#define BIG_EDGE 0x80
#define NORMAL_DEFAULT_EDGE 0x08
#define NORMAL_SMALL_EDGE 0x48
#define NORMAL_BIG_EDGE 0x88
#define STYLUS_MODE_SWITCH_CMD 0xA4
#define EXIT_HIGH_REPORT_RATE_CMD 0xC100