summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Hewitt <christianshewitt@gmail.com>2019-08-15 10:59:12 -0400
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>2019-08-21 17:39:54 -0400
commita53dee7b70384840b13cbe92588fa68dce2c0b62 (patch)
tree46cca3e142bde059ec34da210b83cffe7e488a69
parent9b9e9e5b461789668ce0271f968d8eb5c5d3a332 (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/Makefile1
-rw-r--r--drivers/media/rc/keymaps/rc-khadas.c54
-rw-r--r--include/media/rc-map.h1
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
12static 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
31static 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
40static int __init init_rc_map_khadas(void)
41{
42 return rc_map_register(&khadas_map);
43}
44
45static void __exit exit_rc_map_khadas(void)
46{
47 rc_map_unregister(&khadas_map);
48}
49
50module_init(init_rc_map_khadas)
51module_exit(exit_rc_map_khadas)
52
53MODULE_LICENSE("GPL");
54MODULE_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"