diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2013-04-02 15:01:34 +0200 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2013-04-02 15:01:34 +0200 |
commit | 0fc73eb175a82dc11f6c1cc8e03f1d311d3180de (patch) | |
tree | 5e6010af6ff841ef70af551faa2d5df219990c3a | |
parent | b7e54923eb384267f79ccaf4fcc1a3e28e88f2ed (diff) |
input: touchscreen: android ics fusion_F0710A driver variant
For Android use ICS variant of Fusion 7 and 10 multi-touch driver (See
Fusion 7 and 10 drivers for Linux.pdf and Linux Drivers Fusion 10.zip).
Tested to be working both with Android 4.0.4 for Colibri T20 as well as
Android 4.2.1 for Colibri T30.
-rw-r--r-- | drivers/input/touchscreen/fusion_F0710A.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/fusion_F0710A.c b/drivers/input/touchscreen/fusion_F0710A.c index ac734abf5368..d29baf08de91 100644 --- a/drivers/input/touchscreen/fusion_F0710A.c +++ b/drivers/input/touchscreen/fusion_F0710A.c @@ -75,8 +75,12 @@ static int fusion_F0710A_register_input(void) input_set_abs_params(dev, ABS_MT_POSITION_X, 0, fusion_F0710A.info.xres-1, 0, 0); input_set_abs_params(dev, ABS_MT_POSITION_Y, 0, fusion_F0710A.info.yres-1, 0, 0); +#ifdef CONFIG_ANDROID + input_set_abs_params(dev, ABS_MT_TRACKING_ID, 0, 15, 0, 0); +#else input_set_abs_params(dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); input_set_abs_params(dev, ABS_MT_WIDTH_MAJOR, 0, 15, 0, 0); +#endif ret = input_register_device(dev); if (ret < 0) @@ -220,6 +224,23 @@ static void fusion_F0710A_wq(struct work_struct *work) } } +#ifdef CONFIG_ANDROID + if(z1) + { + input_report_abs(dev, ABS_MT_TRACKING_ID, 1); + input_report_abs(dev, ABS_MT_POSITION_X, x1); + input_report_abs(dev, ABS_MT_POSITION_Y, y1); + } + input_mt_sync(dev); + + if(z2) + { + input_report_abs(dev, ABS_MT_TRACKING_ID, 2); + input_report_abs(dev, ABS_MT_POSITION_X, x2); + input_report_abs(dev, ABS_MT_POSITION_Y, y2); + } + input_mt_sync(dev); +#else /* CONFIG_ANDROID */ input_report_abs(dev, ABS_MT_TOUCH_MAJOR, z1); input_report_abs(dev, ABS_MT_WIDTH_MAJOR, 1); input_report_abs(dev, ABS_MT_POSITION_X, x1); @@ -230,6 +251,7 @@ static void fusion_F0710A_wq(struct work_struct *work) input_report_abs(dev, ABS_MT_POSITION_X, x2); input_report_abs(dev, ABS_MT_POSITION_Y, y2); input_mt_sync(dev); +#endif /* CONFIG_ANDROID */ input_sync(dev); |