From 0fc73eb175a82dc11f6c1cc8e03f1d311d3180de Mon Sep 17 00:00:00 2001 From: Marcel Ziswiler Date: Tue, 2 Apr 2013 15:01:34 +0200 Subject: 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. --- drivers/input/touchscreen/fusion_F0710A.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'drivers') 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); -- cgit v1.2.3