summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Nelson <eric.nelson@boundarydevices.com>2012-08-29 21:50:30 -0700
committerMahesh Mahadevan <Mahesh.Mahadevan@freescale.com>2013-03-14 18:33:49 -0500
commit0834b12048cb043b29fca9c83824e3135d9a309b (patch)
tree2419f284a79eec8383426a1549b4d6fa21d1e51a
parent44d7e62772c2c8f5e8683ee2de452c63617b96dc (diff)
ENGR00243289 egalax_ts: Add support for single-touch
Add support for single-touch for the Egalax Touch driver Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com> Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@freescale.com>
-rwxr-xr-xdrivers/input/touchscreen/Kconfig10
-rw-r--r--drivers/input/touchscreen/egalax_ts.c7
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);