116216333SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later 25085c99eSAnssi Hannula /* 35085c99eSAnssi Hannula * Medion X10 OR22/OR24 RF remote keytable 45085c99eSAnssi Hannula * 55085c99eSAnssi Hannula * Copyright (C) 2012 Anssi Hannula <anssi.hannula@iki.fi> 65085c99eSAnssi Hannula * 75085c99eSAnssi Hannula * This keymap is for several Medion X10 remotes that have the Windows MCE 85085c99eSAnssi Hannula * button. This has been tested with a "RF VISTA Remote Control", OR24V, 95085c99eSAnssi Hannula * P/N 20035335, but should work with other variants that have the same 105085c99eSAnssi Hannula * buttons, such as OR22V and OR24E. 115085c99eSAnssi Hannula */ 125085c99eSAnssi Hannula 135085c99eSAnssi Hannula #include <linux/module.h> 145085c99eSAnssi Hannula #include <media/rc-map.h> 155085c99eSAnssi Hannula 165085c99eSAnssi Hannula static struct rc_map_table medion_x10_or2x[] = { 175085c99eSAnssi Hannula { 0x02, KEY_POWER }, 185085c99eSAnssi Hannula { 0x16, KEY_TEXT }, /* "T" in a box, for teletext */ 195085c99eSAnssi Hannula 205085c99eSAnssi Hannula { 0x09, KEY_VOLUMEUP }, 215085c99eSAnssi Hannula { 0x08, KEY_VOLUMEDOWN }, 225085c99eSAnssi Hannula { 0x00, KEY_MUTE }, 235085c99eSAnssi Hannula { 0x0b, KEY_CHANNELUP }, 245085c99eSAnssi Hannula { 0x0c, KEY_CHANNELDOWN }, 255085c99eSAnssi Hannula 265085c99eSAnssi Hannula { 0x32, KEY_RED }, 275085c99eSAnssi Hannula { 0x33, KEY_GREEN }, 285085c99eSAnssi Hannula { 0x34, KEY_YELLOW }, 295085c99eSAnssi Hannula { 0x35, KEY_BLUE }, 305085c99eSAnssi Hannula 315085c99eSAnssi Hannula { 0x18, KEY_PVR }, /* record symbol inside a tv symbol */ 325085c99eSAnssi Hannula { 0x04, KEY_DVD }, /* disc symbol */ 335085c99eSAnssi Hannula { 0x31, KEY_EPG }, /* a tv schedule symbol */ 345085c99eSAnssi Hannula { 0x1c, KEY_TV }, /* play symbol inside a tv symbol */ 355085c99eSAnssi Hannula { 0x20, KEY_BACK }, 365085c99eSAnssi Hannula { 0x2f, KEY_INFO }, 375085c99eSAnssi Hannula 385085c99eSAnssi Hannula { 0x1a, KEY_UP }, 395085c99eSAnssi Hannula { 0x22, KEY_DOWN }, 405085c99eSAnssi Hannula { 0x1d, KEY_LEFT }, 415085c99eSAnssi Hannula { 0x1f, KEY_RIGHT }, 425085c99eSAnssi Hannula { 0x1e, KEY_OK }, 435085c99eSAnssi Hannula 445085c99eSAnssi Hannula { 0x1b, KEY_MEDIA }, /* Windows MCE button */ 455085c99eSAnssi Hannula 465085c99eSAnssi Hannula { 0x21, KEY_PREVIOUS }, 475085c99eSAnssi Hannula { 0x23, KEY_NEXT }, 485085c99eSAnssi Hannula { 0x24, KEY_REWIND }, 495085c99eSAnssi Hannula { 0x26, KEY_FORWARD }, 505085c99eSAnssi Hannula { 0x25, KEY_PLAY }, 515085c99eSAnssi Hannula { 0x28, KEY_STOP }, 525085c99eSAnssi Hannula { 0x29, KEY_PAUSE }, 535085c99eSAnssi Hannula { 0x27, KEY_RECORD }, 545085c99eSAnssi Hannula 55*1910ea42SBastien Nocera { 0x0d, KEY_NUMERIC_1 }, 56*1910ea42SBastien Nocera { 0x0e, KEY_NUMERIC_2 }, 57*1910ea42SBastien Nocera { 0x0f, KEY_NUMERIC_3 }, 58*1910ea42SBastien Nocera { 0x10, KEY_NUMERIC_4 }, 59*1910ea42SBastien Nocera { 0x11, KEY_NUMERIC_5 }, 60*1910ea42SBastien Nocera { 0x12, KEY_NUMERIC_6 }, 61*1910ea42SBastien Nocera { 0x13, KEY_NUMERIC_7 }, 62*1910ea42SBastien Nocera { 0x14, KEY_NUMERIC_8 }, 63*1910ea42SBastien Nocera { 0x15, KEY_NUMERIC_9 }, 64*1910ea42SBastien Nocera { 0x17, KEY_NUMERIC_0 }, 655085c99eSAnssi Hannula { 0x30, KEY_CLEAR }, 665085c99eSAnssi Hannula { 0x36, KEY_ENTER }, 675085c99eSAnssi Hannula { 0x37, KEY_NUMERIC_STAR }, 685085c99eSAnssi Hannula { 0x38, KEY_NUMERIC_POUND }, 695085c99eSAnssi Hannula }; 705085c99eSAnssi Hannula 715085c99eSAnssi Hannula static struct rc_map_list medion_x10_or2x_map = { 725085c99eSAnssi Hannula .map = { 735085c99eSAnssi Hannula .scan = medion_x10_or2x, 745085c99eSAnssi Hannula .size = ARRAY_SIZE(medion_x10_or2x), 756d741bfeSSean Young .rc_proto = RC_PROTO_OTHER, 765085c99eSAnssi Hannula .name = RC_MAP_MEDION_X10_OR2X, 775085c99eSAnssi Hannula } 785085c99eSAnssi Hannula }; 795085c99eSAnssi Hannula 805085c99eSAnssi Hannula static int __init init_rc_map_medion_x10_or2x(void) 815085c99eSAnssi Hannula { 825085c99eSAnssi Hannula return rc_map_register(&medion_x10_or2x_map); 835085c99eSAnssi Hannula } 845085c99eSAnssi Hannula 855085c99eSAnssi Hannula static void __exit exit_rc_map_medion_x10_or2x(void) 865085c99eSAnssi Hannula { 875085c99eSAnssi Hannula rc_map_unregister(&medion_x10_or2x_map); 885085c99eSAnssi Hannula } 895085c99eSAnssi Hannula 905085c99eSAnssi Hannula module_init(init_rc_map_medion_x10_or2x) 915085c99eSAnssi Hannula module_exit(exit_rc_map_medion_x10_or2x) 925085c99eSAnssi Hannula 935085c99eSAnssi Hannula MODULE_DESCRIPTION("Medion X10 OR22/OR24 RF remote keytable"); 945085c99eSAnssi Hannula MODULE_AUTHOR("Anssi Hannula <anssi.hannula@iki.fi>"); 955085c99eSAnssi Hannula MODULE_LICENSE("GPL"); 96