diff options
-rw-r--r-- | drivers/media/IR/keymaps/Makefile | 1 | ||||
-rw-r--r-- | drivers/media/IR/keymaps/rc-rc6-mce.c | 105 | ||||
-rw-r--r-- | include/media/rc-map.h | 4 |
3 files changed, 110 insertions, 0 deletions
diff --git a/drivers/media/IR/keymaps/Makefile b/drivers/media/IR/keymaps/Makefile index aea649fbcf5a..c3def729d759 100644 --- a/drivers/media/IR/keymaps/Makefile +++ b/drivers/media/IR/keymaps/Makefile | |||
@@ -57,6 +57,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ | |||
57 | rc-pv951.o \ | 57 | rc-pv951.o \ |
58 | rc-rc5-hauppauge-new.o \ | 58 | rc-rc5-hauppauge-new.o \ |
59 | rc-rc5-tv.o \ | 59 | rc-rc5-tv.o \ |
60 | rc-rc6-mce.o \ | ||
60 | rc-real-audio-220-32-keys.o \ | 61 | rc-real-audio-220-32-keys.o \ |
61 | rc-tbs-nec.o \ | 62 | rc-tbs-nec.o \ |
62 | rc-terratec-cinergy-xs.o \ | 63 | rc-terratec-cinergy-xs.o \ |
diff --git a/drivers/media/IR/keymaps/rc-rc6-mce.c b/drivers/media/IR/keymaps/rc-rc6-mce.c new file mode 100644 index 000000000000..c6726a8039be --- /dev/null +++ b/drivers/media/IR/keymaps/rc-rc6-mce.c | |||
@@ -0,0 +1,105 @@ | |||
1 | /* rc-rc6-mce.c - Keytable for Windows Media Center RC-6 remotes for use | ||
2 | * with the Media Center Edition eHome Infrared Transceiver. | ||
3 | * | ||
4 | * Copyright (c) 2010 by Jarod Wilson <jarod@redhat.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #include <media/rc-map.h> | ||
13 | |||
14 | static struct ir_scancode rc6_mce[] = { | ||
15 | { 0x800f0415, KEY_REWIND }, | ||
16 | { 0x800f0414, KEY_FASTFORWARD }, | ||
17 | { 0x800f041b, KEY_PREVIOUS }, | ||
18 | { 0x800f041a, KEY_NEXT }, | ||
19 | |||
20 | { 0x800f0416, KEY_PLAY }, | ||
21 | { 0x800f0418, KEY_PAUSE }, | ||
22 | { 0x800f0419, KEY_STOP }, | ||
23 | { 0x800f0417, KEY_RECORD }, | ||
24 | |||
25 | { 0x800f041e, KEY_UP }, | ||
26 | { 0x800f041f, KEY_DOWN }, | ||
27 | { 0x800f0420, KEY_LEFT }, | ||
28 | { 0x800f0421, KEY_RIGHT }, | ||
29 | |||
30 | { 0x800f040b, KEY_ENTER }, | ||
31 | { 0x800f0422, KEY_OK }, | ||
32 | { 0x800f0423, KEY_EXIT }, | ||
33 | { 0x800f040a, KEY_DELETE }, | ||
34 | |||
35 | { 0x800f040e, KEY_MUTE }, | ||
36 | { 0x800f0410, KEY_VOLUMEUP }, | ||
37 | { 0x800f0411, KEY_VOLUMEDOWN }, | ||
38 | { 0x800f0412, KEY_CHANNELUP }, | ||
39 | { 0x800f0413, KEY_CHANNELDOWN }, | ||
40 | |||
41 | { 0x800f0401, KEY_NUMERIC_1 }, | ||
42 | { 0x800f0402, KEY_NUMERIC_2 }, | ||
43 | { 0x800f0403, KEY_NUMERIC_3 }, | ||
44 | { 0x800f0404, KEY_NUMERIC_4 }, | ||
45 | { 0x800f0405, KEY_NUMERIC_5 }, | ||
46 | { 0x800f0406, KEY_NUMERIC_6 }, | ||
47 | { 0x800f0407, KEY_NUMERIC_7 }, | ||
48 | { 0x800f0408, KEY_NUMERIC_8 }, | ||
49 | { 0x800f0409, KEY_NUMERIC_9 }, | ||
50 | { 0x800f0400, KEY_NUMERIC_0 }, | ||
51 | |||
52 | { 0x800f041d, KEY_NUMERIC_STAR }, | ||
53 | { 0x800f041c, KEY_NUMERIC_POUND }, | ||
54 | |||
55 | { 0x800f0446, KEY_TV }, | ||
56 | { 0x800f0447, KEY_AUDIO }, /* My Music */ | ||
57 | { 0x800f0448, KEY_PVR }, /* RecordedTV */ | ||
58 | { 0x800f0449, KEY_CAMERA }, | ||
59 | { 0x800f044a, KEY_VIDEO }, | ||
60 | { 0x800f0424, KEY_DVD }, | ||
61 | { 0x800f0425, KEY_TUNER }, /* LiveTV */ | ||
62 | { 0x800f0450, KEY_RADIO }, | ||
63 | |||
64 | { 0x800f044c, KEY_LANGUAGE }, | ||
65 | { 0x800f0427, KEY_ZOOM }, /* Aspect */ | ||
66 | |||
67 | { 0x800f045b, KEY_RED }, | ||
68 | { 0x800f045c, KEY_GREEN }, | ||
69 | { 0x800f045d, KEY_YELLOW }, | ||
70 | { 0x800f045e, KEY_BLUE }, | ||
71 | |||
72 | { 0x800f040f, KEY_INFO }, | ||
73 | { 0x800f0426, KEY_EPG }, /* Guide */ | ||
74 | { 0x800f045a, KEY_SUBTITLE }, /* Caption/Teletext */ | ||
75 | { 0x800f044d, KEY_TITLE }, | ||
76 | |||
77 | { 0x800f040c, KEY_POWER }, | ||
78 | { 0x800f040d, KEY_PROG1 }, /* Windows MCE button */ | ||
79 | |||
80 | }; | ||
81 | |||
82 | static struct rc_keymap rc6_mce_map = { | ||
83 | .map = { | ||
84 | .scan = rc6_mce, | ||
85 | .size = ARRAY_SIZE(rc6_mce), | ||
86 | .ir_type = IR_TYPE_RC6, | ||
87 | .name = RC_MAP_RC6_MCE, | ||
88 | } | ||
89 | }; | ||
90 | |||
91 | static int __init init_rc_map_rc6_mce(void) | ||
92 | { | ||
93 | return ir_register_map(&rc6_mce_map); | ||
94 | } | ||
95 | |||
96 | static void __exit exit_rc_map_rc6_mce(void) | ||
97 | { | ||
98 | ir_unregister_map(&rc6_mce_map); | ||
99 | } | ||
100 | |||
101 | module_init(init_rc_map_rc6_mce) | ||
102 | module_exit(exit_rc_map_rc6_mce) | ||
103 | |||
104 | MODULE_LICENSE("GPL"); | ||
105 | MODULE_AUTHOR("Jarod Wilson <jarod@redhat.com>"); | ||
diff --git a/include/media/rc-map.h b/include/media/rc-map.h index c78e99a435b6..36ee280d42a9 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h | |||
@@ -19,6 +19,9 @@ | |||
19 | #define IR_TYPE_SONY (1 << 4) /* Sony12/15/20 protocol */ | 19 | #define IR_TYPE_SONY (1 << 4) /* Sony12/15/20 protocol */ |
20 | #define IR_TYPE_OTHER (1u << 31) | 20 | #define IR_TYPE_OTHER (1u << 31) |
21 | 21 | ||
22 | #define IR_TYPE_ALL (IR_TYPE_RC5 | IR_TYPE_NEC | IR_TYPE_RC6 | \ | ||
23 | IR_TYPE_JVC | IR_TYPE_SONY | IR_TYPE_OTHER) | ||
24 | |||
22 | struct ir_scancode { | 25 | struct ir_scancode { |
23 | u32 scancode; | 26 | u32 scancode; |
24 | u32 keycode; | 27 | u32 keycode; |
@@ -107,6 +110,7 @@ void rc_map_init(void); | |||
107 | #define RC_MAP_PV951 "rc-pv951" | 110 | #define RC_MAP_PV951 "rc-pv951" |
108 | #define RC_MAP_RC5_HAUPPAUGE_NEW "rc-rc5-hauppauge-new" | 111 | #define RC_MAP_RC5_HAUPPAUGE_NEW "rc-rc5-hauppauge-new" |
109 | #define RC_MAP_RC5_TV "rc-rc5-tv" | 112 | #define RC_MAP_RC5_TV "rc-rc5-tv" |
113 | #define RC_MAP_RC6_MCE "rc-rc6-mce" | ||
110 | #define RC_MAP_REAL_AUDIO_220_32_KEYS "rc-real-audio-220-32-keys" | 114 | #define RC_MAP_REAL_AUDIO_220_32_KEYS "rc-real-audio-220-32-keys" |
111 | #define RC_MAP_TBS_NEC "rc-tbs-nec" | 115 | #define RC_MAP_TBS_NEC "rc-tbs-nec" |
112 | #define RC_MAP_TERRATEC_CINERGY_XS "rc-terratec-cinergy-xs" | 116 | #define RC_MAP_TERRATEC_CINERGY_XS "rc-terratec-cinergy-xs" |