aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@enac.fr>2011-05-19 05:37:29 -0400
committerJiri Kosina <jkosina@suse.cz>2011-05-19 05:54:55 -0400
commitc04abeeff9d76a703cac1e6d312853b0fc8136f5 (patch)
tree3b840d56e04330ccfbabb554109d8243316d4401
parentdf167c4a0d68a9dbde044a39a77f255ac666f93e (diff)
HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus
This patch adds support for Elo TouchSystems 2515 IntelliTouch Plus that can be found in Lenovo A700 all-in-one. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@enac.fr> Tested-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
-rw-r--r--drivers/hid/Kconfig1
-rw-r--r--drivers/hid/hid-core.c1
-rw-r--r--drivers/hid/hid-ids.h1
-rw-r--r--drivers/hid/hid-multitouch.c10
4 files changed, 13 insertions, 0 deletions
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index 5a54b1312abf..1572ff13f348 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -305,6 +305,7 @@ config HID_MULTITOUCH
305 - 3M PCT touch screens 305 - 3M PCT touch screens
306 - Cando dual touch panel 306 - Cando dual touch panel
307 - Cypress TrueTouch panels 307 - Cypress TrueTouch panels
308 - Elo TouchSystems IntelliTouch Plus panels
308 - Hanvon dual touch panels 309 - Hanvon dual touch panels
309 - Ilitek dual touch panel 310 - Ilitek dual touch panel
310 - IrTouch Infrared USB panels 311 - IrTouch Infrared USB panels
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 3dad069e142a..053fc08a270d 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -1366,6 +1366,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
1366 { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) }, 1366 { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) },
1367 { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) }, 1367 { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
1368 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) }, 1368 { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
1369 { HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) },
1369 { HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) }, 1370 { HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) },
1370 { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) }, 1371 { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) },
1371 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) }, 1372 { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index bfbc0d258851..6c19d1a66cf2 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -216,6 +216,7 @@
216#define USB_VENDOR_ID_DREAM_CHEEKY 0x1d34 216#define USB_VENDOR_ID_DREAM_CHEEKY 0x1d34
217 217
218#define USB_VENDOR_ID_ELO 0x04E7 218#define USB_VENDOR_ID_ELO 0x04E7
219#define USB_DEVICE_ID_ELO_TS2515 0x0022
219#define USB_DEVICE_ID_ELO_TS2700 0x0020 220#define USB_DEVICE_ID_ELO_TS2700 0x0020
220 221
221#define USB_VENDOR_ID_EMS 0x2006 222#define USB_VENDOR_ID_EMS 0x2006
diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
index ef33e2d5af87..3bc8de6074f7 100644
--- a/drivers/hid/hid-multitouch.c
+++ b/drivers/hid/hid-multitouch.c
@@ -92,6 +92,7 @@ struct mt_class {
92#define MT_CLS_3M 7 92#define MT_CLS_3M 7
93#define MT_CLS_CONFIDENCE 8 93#define MT_CLS_CONFIDENCE 8
94#define MT_CLS_CONFIDENCE_MINUS_ONE 9 94#define MT_CLS_CONFIDENCE_MINUS_ONE 9
95#define MT_CLS_DUAL_NSMU_CONTACTID 10
95 96
96#define MT_DEFAULT_MAXCONTACT 10 97#define MT_DEFAULT_MAXCONTACT 10
97 98
@@ -163,6 +164,10 @@ struct mt_class mt_classes[] = {
163 .sn_height = 128 }, 164 .sn_height = 128 },
164 { .name = MT_CLS_CONFIDENCE, 165 { .name = MT_CLS_CONFIDENCE,
165 .quirks = MT_QUIRK_VALID_IS_CONFIDENCE }, 166 .quirks = MT_QUIRK_VALID_IS_CONFIDENCE },
167 { .name = MT_CLS_DUAL_NSMU_CONTACTID,
168 .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
169 MT_QUIRK_SLOT_IS_CONTACTID,
170 .maxcontacts = 2 },
166 171
167 { } 172 { }
168}; 173};
@@ -584,6 +589,11 @@ static const struct hid_device_id mt_devices[] = {
584 HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, 589 HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS,
585 USB_DEVICE_ID_CYPRESS_TRUETOUCH) }, 590 USB_DEVICE_ID_CYPRESS_TRUETOUCH) },
586 591
592 /* Elo TouchSystems IntelliTouch Plus panel */
593 { .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
594 HID_USB_DEVICE(USB_VENDOR_ID_ELO,
595 USB_DEVICE_ID_ELO_TS2515) },
596
587 /* GeneralTouch panel */ 597 /* GeneralTouch panel */
588 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER, 598 { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
589 HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH, 599 HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,