HID: Add support for Toshiba WT10A tablet bluetooth keyboard
authorHans de Goede <hdegoede@redhat.com>
Fri, 1 Feb 2019 15:18:07 +0000 (16:18 +0100)
committerBenjamin Tissoires <benjamin.tissoires@redhat.com>
Thu, 7 Feb 2019 15:44:46 +0000 (16:44 +0100)
The bluetooth-keyboard which comes with the Toshiba WT10A tablet uses
a couple of usage codes in the vendor specific ffbc page.

The keyboard has a vendor-id of 04f2 which maps to Chicony.

Other then adding a few keymappings for the ffbc usages, no special
handling is necessary. So rather then adding a new hid-toshiba driver,
this commit adds the ID and 2 extra key-mappings to the hid-topseed
driver. The hid-topseed driver already contains mapping for some
ffbc usages (and does nothing else) and it already binds to another
Chicony manufactured keyboard.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
drivers/hid/hid-ids.h
drivers/hid/hid-topseed.c

index 24f846d..644a9f2 100644 (file)
 #define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE 0x1053
 #define USB_DEVICE_ID_CHICONY_WIRELESS2        0x1123
 #define USB_DEVICE_ID_ASUS_AK1D                0x1125
+#define USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A    0x1408
 #define USB_DEVICE_ID_CHICONY_ACER_SWITCH12    0x1421
 
 #define USB_VENDOR_ID_CHUNGHWAT                0x2247
index 8a5b843..e9cdde8 100644 (file)
@@ -34,7 +34,9 @@ static int ts_input_mapping(struct hid_device *hdev, struct hid_input *hi,
                return 0;
 
        switch (usage->hid & HID_USAGE) {
+       case 0x00c: ts_map_key_clear(KEY_WLAN);         break;
        case 0x00d: ts_map_key_clear(KEY_MEDIA);        break;
+       case 0x010: ts_map_key_clear(KEY_ZOOM);         break;
        case 0x024: ts_map_key_clear(KEY_MENU);         break;
        case 0x025: ts_map_key_clear(KEY_TV);           break;
        case 0x027: ts_map_key_clear(KEY_MODE);         break;
@@ -67,6 +69,7 @@ static const struct hid_device_id ts_devices[] = {
        { HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
        { HID_USB_DEVICE(USB_VENDOR_ID_TOPSEED2, USB_DEVICE_ID_TOPSEED2_RF_COMBO) },
        { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) },
+       { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A) },
        { }
 };
 MODULE_DEVICE_TABLE(hid, ts_devices);