2011-02-03 18:41:47 +03:00
/*
* HID driver for LC Power Model RC1000MCE
*
* Copyright ( c ) 2011 Chris Schlund
* based on hid - topseed module
*/
/*
* This program is free software ; you can redistribute it and / or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation ; either version 2 of the License , or ( at your option )
* any later version .
*/
# include <linux/device.h>
# include <linux/hid.h>
# include <linux/module.h>
# include "hid-ids.h"
# define ts_map_key_clear(c) hid_map_usage_clear(hi, usage, bit, max, \
EV_KEY , ( c ) )
static int ts_input_mapping ( struct hid_device * hdev , struct hid_input * hi ,
struct hid_field * field , struct hid_usage * usage ,
unsigned long * * bit , int * max )
{
2012-09-05 06:19:30 +04:00
if ( ( usage - > hid & HID_USAGE_PAGE ) ! = HID_UP_LOGIVENDOR )
2011-02-03 18:41:47 +03:00
return 0 ;
switch ( usage - > hid & HID_USAGE ) {
case 0x046 : ts_map_key_clear ( KEY_YELLOW ) ; break ;
case 0x047 : ts_map_key_clear ( KEY_GREEN ) ; break ;
2011-02-07 19:53:10 +03:00
case 0x049 : ts_map_key_clear ( KEY_BLUE ) ; break ;
case 0x04a : ts_map_key_clear ( KEY_RED ) ; break ;
2011-02-03 18:41:47 +03:00
case 0x00d : ts_map_key_clear ( KEY_HOME ) ; break ;
case 0x025 : ts_map_key_clear ( KEY_TV ) ; break ;
case 0x048 : ts_map_key_clear ( KEY_VCR ) ; break ;
case 0x024 : ts_map_key_clear ( KEY_MENU ) ; break ;
default :
return 0 ;
}
return 1 ;
}
static const struct hid_device_id ts_devices [ ] = {
{ HID_USB_DEVICE ( USB_VENDOR_ID_LCPOWER , USB_DEVICE_ID_LCPOWER_LC1000 ) } ,
{ }
} ;
MODULE_DEVICE_TABLE ( hid , ts_devices ) ;
static struct hid_driver ts_driver = {
. name = " LC RC1000MCE " ,
. id_table = ts_devices ,
. input_mapping = ts_input_mapping ,
} ;
2012-12-18 02:28:26 +04:00
module_hid_driver ( ts_driver ) ;
2011-02-03 18:41:47 +03:00
MODULE_LICENSE ( " GPL " ) ;