1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Medion X10 RF remote keytable (Digitainer variant) 4 * 5 * Copyright (C) 2012 Anssi Hannula <anssi.hannula@iki.fi> 6 * 7 * This keymap is for a variant that has a distinctive scrollwheel instead of 8 * up/down buttons (tested with P/N 40009936 / 20018268), reportedly 9 * originally shipped with Medion Digitainer but now sold separately simply as 10 * an "X10" remote. 11 */ 12 13 #include <linux/module.h> 14 #include <media/rc-map.h> 15 16 static struct rc_map_table medion_x10_digitainer[] = { 17 { 0x02, KEY_POWER }, 18 19 { 0x2c, KEY_TV }, 20 { 0x2d, KEY_VIDEO }, 21 { 0x04, KEY_DVD }, /* CD/DVD */ 22 { 0x16, KEY_TEXT }, /* "teletext" icon, i.e. a screen with lines */ 23 { 0x06, KEY_AUDIO }, 24 { 0x2e, KEY_RADIO }, 25 { 0x31, KEY_EPG }, /* a screen with an open book */ 26 { 0x05, KEY_IMAGES }, /* Photo */ 27 { 0x2f, KEY_INFO }, 28 29 { 0x78, KEY_UP }, /* scrollwheel up 1 notch */ 30 /* 0x79..0x7f: 2-8 notches, driver repeats 0x78 entry */ 31 32 { 0x70, KEY_DOWN }, /* scrollwheel down 1 notch */ 33 /* 0x71..0x77: 2-8 notches, driver repeats 0x70 entry */ 34 35 { 0x19, KEY_MENU }, 36 { 0x1d, KEY_LEFT }, 37 { 0x1e, KEY_OK }, /* scrollwheel press */ 38 { 0x1f, KEY_RIGHT }, 39 { 0x20, KEY_BACK }, 40 41 { 0x09, KEY_VOLUMEUP }, 42 { 0x08, KEY_VOLUMEDOWN }, 43 { 0x00, KEY_MUTE }, 44 45 { 0x1b, KEY_SELECT }, /* also has "U" rotated 90 degrees CCW */ 46 47 { 0x0b, KEY_CHANNELUP }, 48 { 0x0c, KEY_CHANNELDOWN }, 49 { 0x1c, KEY_LAST }, 50 51 { 0x32, KEY_RED }, /* also Audio */ 52 { 0x33, KEY_GREEN }, /* also Subtitle */ 53 { 0x34, KEY_YELLOW }, /* also Angle */ 54 { 0x35, KEY_BLUE }, /* also Title */ 55 56 { 0x28, KEY_STOP }, 57 { 0x29, KEY_PAUSE }, 58 { 0x25, KEY_PLAY }, 59 { 0x21, KEY_PREVIOUS }, 60 { 0x18, KEY_CAMERA }, 61 { 0x23, KEY_NEXT }, 62 { 0x24, KEY_REWIND }, 63 { 0x27, KEY_RECORD }, 64 { 0x26, KEY_FORWARD }, 65 66 { 0x0d, KEY_NUMERIC_1 }, 67 { 0x0e, KEY_NUMERIC_2 }, 68 { 0x0f, KEY_NUMERIC_3 }, 69 { 0x10, KEY_NUMERIC_4 }, 70 { 0x11, KEY_NUMERIC_5 }, 71 { 0x12, KEY_NUMERIC_6 }, 72 { 0x13, KEY_NUMERIC_7 }, 73 { 0x14, KEY_NUMERIC_8 }, 74 { 0x15, KEY_NUMERIC_9 }, 75 { 0x17, KEY_NUMERIC_0 }, 76 77 /* these do not actually exist on this remote, but these scancodes 78 * exist on all other Medion X10 remotes and adding them here allows 79 * such remotes to be adequately usable with this keymap in case 80 * this keymap is wrongly used with them (which is quite possible as 81 * there are lots of different Medion X10 remotes): */ 82 { 0x1a, KEY_UP }, 83 { 0x22, KEY_DOWN }, 84 }; 85 86 static struct rc_map_list medion_x10_digitainer_map = { 87 .map = { 88 .scan = medion_x10_digitainer, 89 .size = ARRAY_SIZE(medion_x10_digitainer), 90 .rc_proto = RC_PROTO_OTHER, 91 .name = RC_MAP_MEDION_X10_DIGITAINER, 92 } 93 }; 94 95 static int __init init_rc_map_medion_x10_digitainer(void) 96 { 97 return rc_map_register(&medion_x10_digitainer_map); 98 } 99 100 static void __exit exit_rc_map_medion_x10_digitainer(void) 101 { 102 rc_map_unregister(&medion_x10_digitainer_map); 103 } 104 105 module_init(init_rc_map_medion_x10_digitainer) 106 module_exit(exit_rc_map_medion_x10_digitainer) 107 108 MODULE_DESCRIPTION("Medion X10 RF remote keytable (Digitainer variant)"); 109 MODULE_AUTHOR("Anssi Hannula <anssi.hannula@iki.fi>"); 110 MODULE_LICENSE("GPL"); 111