HID: hid-multitouch: add support for Elo TouchSystems 2515 IntelliTouch Plus
Benjamin Tissoires [Thu, 19 May 2011 09:37:29 +0000 (11:37 +0200)]
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>

drivers/hid/Kconfig
drivers/hid/hid-core.c
drivers/hid/hid-ids.h
drivers/hid/hid-multitouch.c

index 5a54b13..1572ff1 100644 (file)
@@ -305,6 +305,7 @@ config HID_MULTITOUCH
          - 3M PCT touch screens
          - Cando dual touch panel
          - Cypress TrueTouch panels
+         - Elo TouchSystems IntelliTouch Plus panels
          - Hanvon dual touch panels
          - Ilitek dual touch panel
          - IrTouch Infrared USB panels
index 3dad069..053fc08 100644 (file)
@@ -1366,6 +1366,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) },
        { HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
        { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
+       { HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) },
        { HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) },
        { HID_USB_DEVICE(USB_VENDOR_ID_EZKEY, USB_DEVICE_ID_BTC_8193) },
        { HID_USB_DEVICE(USB_VENDOR_ID_GAMERON, USB_DEVICE_ID_GAMERON_DUAL_PSX_ADAPTOR) },
index bfbc0d2..6c19d1a 100644 (file)
 #define USB_VENDOR_ID_DREAM_CHEEKY     0x1d34
 
 #define USB_VENDOR_ID_ELO              0x04E7
+#define USB_DEVICE_ID_ELO_TS2515       0x0022
 #define USB_DEVICE_ID_ELO_TS2700       0x0020
 
 #define USB_VENDOR_ID_EMS              0x2006
index ef33e2d..3bc8de6 100644 (file)
@@ -92,6 +92,7 @@ struct mt_class {
 #define MT_CLS_3M                              7
 #define MT_CLS_CONFIDENCE                      8
 #define MT_CLS_CONFIDENCE_MINUS_ONE            9
+#define MT_CLS_DUAL_NSMU_CONTACTID             10
 
 #define MT_DEFAULT_MAXCONTACT  10
 
@@ -163,6 +164,10 @@ struct mt_class mt_classes[] = {
                .sn_height = 128 },
        { .name = MT_CLS_CONFIDENCE,
                .quirks = MT_QUIRK_VALID_IS_CONFIDENCE },
+       { .name = MT_CLS_DUAL_NSMU_CONTACTID,
+               .quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
+                       MT_QUIRK_SLOT_IS_CONTACTID,
+               .maxcontacts = 2 },
 
        { }
 };
@@ -584,6 +589,11 @@ static const struct hid_device_id mt_devices[] = {
                HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS,
                        USB_DEVICE_ID_CYPRESS_TRUETOUCH) },
 
+       /* Elo TouchSystems IntelliTouch Plus panel */
+       { .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
+               HID_USB_DEVICE(USB_VENDOR_ID_ELO,
+                       USB_DEVICE_ID_ELO_TS2515) },
+
        /* GeneralTouch panel */
        { .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
                HID_USB_DEVICE(USB_VENDOR_ID_GENERAL_TOUCH,