diff options
author | Christian Hewitt <christianshewitt@gmail.com> | 2019-08-15 10:59:12 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | 2019-08-21 17:39:54 -0400 |
commit | a53dee7b70384840b13cbe92588fa68dce2c0b62 (patch) | |
tree | 46cca3e142bde059ec34da210b83cffe7e488a69 | |
parent | 9b9e9e5b461789668ce0271f968d8eb5c5d3a332 (diff) |
media: rc: add keymap for Khadas VIM/EDGE remote
Khadas VIM and Edge SBC devices use the same NEC remote device. The
remote includes a mouse button for Android use. This has been mapped
to KEY_MUTE.
Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
-rw-r--r-- | drivers/media/rc/keymaps/Makefile | 1 | ||||
-rw-r--r-- | drivers/media/rc/keymaps/rc-khadas.c | 54 | ||||
-rw-r--r-- | include/media/rc-map.h | 1 |
3 files changed, 56 insertions, 0 deletions
diff --git a/drivers/media/rc/keymaps/Makefile b/drivers/media/rc/keymaps/Makefile index b88c4e76cdc6..39192b0abf91 100644 --- a/drivers/media/rc/keymaps/Makefile +++ b/drivers/media/rc/keymaps/Makefile | |||
@@ -58,6 +58,7 @@ obj-$(CONFIG_RC_MAP) += rc-adstech-dvb-t-pci.o \ | |||
58 | rc-it913x-v1.o \ | 58 | rc-it913x-v1.o \ |
59 | rc-it913x-v2.o \ | 59 | rc-it913x-v2.o \ |
60 | rc-kaiomy.o \ | 60 | rc-kaiomy.o \ |
61 | rc-khadas.o \ | ||
61 | rc-kworld-315u.o \ | 62 | rc-kworld-315u.o \ |
62 | rc-kworld-pc150u.o \ | 63 | rc-kworld-pc150u.o \ |
63 | rc-kworld-plus-tv-analog.o \ | 64 | rc-kworld-plus-tv-analog.o \ |
diff --git a/drivers/media/rc/keymaps/rc-khadas.c b/drivers/media/rc/keymaps/rc-khadas.c new file mode 100644 index 000000000000..ce4938444d90 --- /dev/null +++ b/drivers/media/rc/keymaps/rc-khadas.c | |||
@@ -0,0 +1,54 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0+ | ||
2 | // | ||
3 | // Copyright (C) 2019 Christian Hewitt <christianshewitt@gmail.com> | ||
4 | |||
5 | /* | ||
6 | * Keytable for the Khadas VIM/EDGE SBC remote control | ||
7 | */ | ||
8 | |||
9 | #include <media/rc-map.h> | ||
10 | #include <linux/module.h> | ||
11 | |||
12 | static struct rc_map_table khadas[] = { | ||
13 | { 0x14, KEY_POWER }, | ||
14 | |||
15 | { 0x03, KEY_UP }, | ||
16 | { 0x02, KEY_DOWN }, | ||
17 | { 0x0e, KEY_LEFT }, | ||
18 | { 0x1a, KEY_RIGHT }, | ||
19 | { 0x07, KEY_OK }, | ||
20 | |||
21 | { 0x01, KEY_BACK }, | ||
22 | { 0x5b, KEY_MUTE }, // mouse | ||
23 | { 0x13, KEY_MENU }, | ||
24 | |||
25 | { 0x58, KEY_VOLUMEDOWN }, | ||
26 | { 0x0b, KEY_VOLUMEUP }, | ||
27 | |||
28 | { 0x48, KEY_HOME }, | ||
29 | }; | ||
30 | |||
31 | static struct rc_map_list khadas_map = { | ||
32 | .map = { | ||
33 | .scan = khadas, | ||
34 | .size = ARRAY_SIZE(khadas), | ||
35 | .rc_proto = RC_PROTO_NEC, | ||
36 | .name = RC_MAP_KHADAS, | ||
37 | } | ||
38 | }; | ||
39 | |||
40 | static int __init init_rc_map_khadas(void) | ||
41 | { | ||
42 | return rc_map_register(&khadas_map); | ||
43 | } | ||
44 | |||
45 | static void __exit exit_rc_map_khadas(void) | ||
46 | { | ||
47 | rc_map_unregister(&khadas_map); | ||
48 | } | ||
49 | |||
50 | module_init(init_rc_map_khadas) | ||
51 | module_exit(exit_rc_map_khadas) | ||
52 | |||
53 | MODULE_LICENSE("GPL"); | ||
54 | MODULE_AUTHOR("Christian Hewitt <christianshewitt@gmail.com>"); | ||
diff --git a/include/media/rc-map.h b/include/media/rc-map.h index bff5a6b4cbc6..9754017518a0 100644 --- a/include/media/rc-map.h +++ b/include/media/rc-map.h | |||
@@ -211,6 +211,7 @@ struct rc_map *rc_map_get(const char *name); | |||
211 | #define RC_MAP_IT913X_V1 "rc-it913x-v1" | 211 | #define RC_MAP_IT913X_V1 "rc-it913x-v1" |
212 | #define RC_MAP_IT913X_V2 "rc-it913x-v2" | 212 | #define RC_MAP_IT913X_V2 "rc-it913x-v2" |
213 | #define RC_MAP_KAIOMY "rc-kaiomy" | 213 | #define RC_MAP_KAIOMY "rc-kaiomy" |
214 | #define RC_MAP_KHADAS "rc-khadas" | ||
214 | #define RC_MAP_KWORLD_315U "rc-kworld-315u" | 215 | #define RC_MAP_KWORLD_315U "rc-kworld-315u" |
215 | #define RC_MAP_KWORLD_PC150U "rc-kworld-pc150u" | 216 | #define RC_MAP_KWORLD_PC150U "rc-kworld-pc150u" |
216 | #define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog" | 217 | #define RC_MAP_KWORLD_PLUS_TV_ANALOG "rc-kworld-plus-tv-analog" |