From 0834b12048cb043b29fca9c83824e3135d9a309b Mon Sep 17 00:00:00 2001 From: Eric Nelson Date: Wed, 29 Aug 2012 21:50:30 -0700 Subject: ENGR00243289 egalax_ts: Add support for single-touch Add support for single-touch for the Egalax Touch driver Signed-off-by: Eric Nelson Signed-off-by: Mahesh Mahadevan --- drivers/input/touchscreen/Kconfig | 10 ++++++++++ drivers/input/touchscreen/egalax_ts.c | 7 ++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig index eabf4098ca1c..3420cdbfcbf6 100755 --- a/drivers/input/touchscreen/Kconfig +++ b/drivers/input/touchscreen/Kconfig @@ -199,6 +199,16 @@ config TOUCHSCREEN_ELAN To compile this driver as a module, choose M here: the module will be called elan-touch. +config TOUCHSCREEN_EGALAX_SINGLE_TOUCH + bool "EETI eGalax touchscreen as single-touch" + default N + depends on TOUCHSCREEN_EGALAX + help + If you say yes here you get single-touch touchscreen support + on the eGalax I2C controller. + If you say "no", you'll get the normal multi-touch. + + config TOUCHSCREEN_FUJITSU tristate "Fujitsu serial touchscreen" select SERIO diff --git a/drivers/input/touchscreen/egalax_ts.c b/drivers/input/touchscreen/egalax_ts.c index fff8afe1b41a..0b6cde77c421 100644 --- a/drivers/input/touchscreen/egalax_ts.c +++ b/drivers/input/touchscreen/egalax_ts.c @@ -139,7 +139,7 @@ retry: events[id].x = x; events[id].y = y; -#ifdef FORCE_SINGLE_POINTER_SUPPORT +#ifdef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH input_report_abs(input_dev, ABS_X, x); input_report_abs(input_dev, ABS_Y, y); input_event(data->input_dev, EV_KEY, BTN_TOUCH, 1); @@ -166,7 +166,7 @@ retry: dev_dbg(&client->dev, "release id:%d\n", id); events[id].valid = 0; events[id].status = 0; -#ifdef FORCE_SINGLE_POINTER_SUPPORT +#ifdef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH input_report_key(input_dev, BTN_TOUCH, 0); input_report_abs(input_dev, ABS_PRESSURE, 0); #else @@ -256,8 +256,9 @@ static int __devinit egalax_ts_probe(struct i2c_client *client, __set_bit(ABS_PRESSURE, input_dev->absbit); input_set_abs_params(input_dev, ABS_X, 0, 32767, 0, 0); input_set_abs_params(input_dev, ABS_Y, 0, 32767, 0, 0); + input_set_abs_params(input_dev, ABS_PRESSURE, 0, 1, 0, 0); -#ifndef FORCE_SINGLE_POINTER_SUPPORT +#ifndef CONFIG_TOUCHSCREEN_EGALAX_SINGLE_TOUCH input_set_abs_params(input_dev, ABS_MT_POSITION_X, 0, 32767, 0, 0); input_set_abs_params(input_dev, ABS_MT_POSITION_Y, 0, 32767, 0, 0); input_set_abs_params(input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); -- cgit v1.2.3