root/drivers/hid/hid-topseed.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. ts_input_mapping

   1 // SPDX-License-Identifier: GPL-2.0-or-later
   2 /*
   3  *  HID driver for TopSeed Cyberlink remote
   4  *
   5  *  Copyright (c) 2008 Lev Babiev
   6  *  based on hid-cherry driver
   7  *
   8  *  Modified to also support BTC "Emprex 3009URF III Vista MCE Remote" by
   9  *  Wayne Thomas 2010.
  10  *
  11  *  Modified to support Conceptronic CLLRCMCE by
  12  *  Kees Bakker 2010.
  13  */
  14 
  15 /*
  16  */
  17 
  18 #include <linux/device.h>
  19 #include <linux/hid.h>
  20 #include <linux/module.h>
  21 
  22 #include "hid-ids.h"
  23 
  24 #define ts_map_key_clear(c)     hid_map_usage_clear(hi, usage, bit, max, \
  25                                         EV_KEY, (c))
  26 static int ts_input_mapping(struct hid_device *hdev, struct hid_input *hi,
  27                 struct hid_field *field, struct hid_usage *usage,
  28                 unsigned long **bit, int *max)
  29 {
  30         if ((usage->hid & HID_USAGE_PAGE) != HID_UP_LOGIVENDOR)
  31                 return 0;
  32 
  33         switch (usage->hid & HID_USAGE) {
  34         case 0x00c: ts_map_key_clear(KEY_WLAN);         break;
  35         case 0x00d: ts_map_key_clear(KEY_MEDIA);        break;
  36         case 0x010: ts_map_key_clear(KEY_ZOOM);         break;
  37         case 0x024: ts_map_key_clear(KEY_MENU);         break;
  38         case 0x025: ts_map_key_clear(KEY_TV);           break;
  39         case 0x027: ts_map_key_clear(KEY_MODE);         break;
  40         case 0x031: ts_map_key_clear(KEY_AUDIO);        break;
  41         case 0x032: ts_map_key_clear(KEY_TEXT);         break;
  42         case 0x033: ts_map_key_clear(KEY_CHANNEL);      break;
  43         case 0x047: ts_map_key_clear(KEY_MP3);          break;
  44         case 0x048: ts_map_key_clear(KEY_TV2);          break;
  45         case 0x049: ts_map_key_clear(KEY_CAMERA);       break;
  46         case 0x04a: ts_map_key_clear(KEY_VIDEO);        break;
  47         case 0x04b: ts_map_key_clear(KEY_ANGLE);        break;
  48         case 0x04c: ts_map_key_clear(KEY_LANGUAGE);     break;
  49         case 0x04d: ts_map_key_clear(KEY_SUBTITLE);     break;
  50         case 0x050: ts_map_key_clear(KEY_RADIO);        break;
  51         case 0x05a: ts_map_key_clear(KEY_TEXT);         break;
  52         case 0x05b: ts_map_key_clear(KEY_RED);          break;
  53         case 0x05c: ts_map_key_clear(KEY_GREEN);        break;
  54         case 0x05d: ts_map_key_clear(KEY_YELLOW);       break;
  55         case 0x05e: ts_map_key_clear(KEY_BLUE);         break;
  56         default:
  57                 return 0;
  58         }
  59 
  60         return 1;
  61 }
  62 
  63 static const struct hid_device_id ts_devices[] = {
  64         { HID_USB_DEVICE(USB_VENDOR_ID_TOPSEED, USB_DEVICE_ID_TOPSEED_CYBERLINK) },
  65         { HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE) },
  66         { HID_USB_DEVICE(USB_VENDOR_ID_BTC, USB_DEVICE_ID_BTC_EMPREX_REMOTE_2) },
  67         { HID_USB_DEVICE(USB_VENDOR_ID_TOPSEED2, USB_DEVICE_ID_TOPSEED2_RF_COMBO) },
  68         { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) },
  69         { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TOSHIBA_WT10A) },
  70         { }
  71 };
  72 MODULE_DEVICE_TABLE(hid, ts_devices);
  73 
  74 static struct hid_driver ts_driver = {
  75         .name = "topseed",
  76         .id_table = ts_devices,
  77         .input_mapping = ts_input_mapping,
  78 };
  79 module_hid_driver(ts_driver);
  80 
  81 MODULE_LICENSE("GPL");

/* [<][>][^][v][top][bottom][index][help] */