/* reserved                                    0x0011 */
 #define MT_CLS_WIN_8                           0x0012
 #define MT_CLS_EXPORT_ALL_INPUTS               0x0013
+#define MT_CLS_WIN_8_DUAL                      0x0014
 
 /* vendor specific classes */
 #define MT_CLS_3M                              0x0101
                .quirks = MT_QUIRK_ALWAYS_VALID |
                        MT_QUIRK_CONTACT_CNT_ACCURATE,
                .export_all_inputs = true },
+       { .name = MT_CLS_WIN_8_DUAL,
+               .quirks = MT_QUIRK_ALWAYS_VALID |
+                       MT_QUIRK_IGNORE_DUPLICATES |
+                       MT_QUIRK_HOVERING |
+                       MT_QUIRK_CONTACT_CNT_ACCURATE,
+               .export_all_inputs = true },
 
        /*
         * vendor specific classes
                        mt_store_field(usage, td, hi);
                        return 1;
                case HID_DG_CONFIDENCE:
-                       if (cls->name == MT_CLS_WIN_8 &&
+                       if ((cls->name == MT_CLS_WIN_8 ||
+                               cls->name == MT_CLS_WIN_8_DUAL) &&
                                field->application == HID_DG_TOUCHPAD)
                                cls->quirks |= MT_QUIRK_CONFIDENCE;
                        mt_store_field(usage, td, hi);
                 * MS PTP spec says that external buttons left and right have
                 * usages 2 and 3.
                 */
-               if (cls->name == MT_CLS_WIN_8 &&
+               if ((cls->name == MT_CLS_WIN_8 ||
+                       cls->name == MT_CLS_WIN_8_DUAL) &&
                    field->application == HID_DG_TOUCHPAD &&
                    (usage->hid & HID_USAGE) > 1)
                        code--;
                MT_USB_DEVICE(USB_VENDOR_ID_3M,
                        USB_DEVICE_ID_3M3266) },
 
+       /* Alps devices */
+       { .driver_data = MT_CLS_WIN_8_DUAL,
+               HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+                       USB_VENDOR_ID_ALPS_JP,
+                       HID_DEVICE_ID_ALPS_U1_DUAL_PTP) },
+       { .driver_data = MT_CLS_WIN_8_DUAL,
+               HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8,
+                       USB_VENDOR_ID_ALPS_JP,
+                       HID_DEVICE_ID_ALPS_U1_DUAL_3BTN_PTP) },
+
        /* Anton devices */
        { .driver_data = MT_CLS_EXPORT_ALL_INPUTS,
                MT_USB_DEVICE(USB_VENDOR_ID_ANTON,