1 | // SPDX-License-Identifier: GPL-2.0+ |
2 | |
3 | // Keytable for the Pine64 IR Remote Controller |
4 | // Copyright (c) 2017 Jonas Karlman |
5 | |
6 | #include <media/rc-map.h> |
7 | #include <linux/module.h> |
8 | |
9 | static struct rc_map_table pine64[] = { |
10 | { 0x40404d, KEY_POWER }, |
11 | { 0x40401f, KEY_WWW }, |
12 | { 0x40400a, KEY_MUTE }, |
13 | |
14 | { 0x404017, KEY_VOLUMEDOWN }, |
15 | { 0x404018, KEY_VOLUMEUP }, |
16 | |
17 | { 0x404010, KEY_LEFT }, |
18 | { 0x404011, KEY_RIGHT }, |
19 | { 0x40400b, KEY_UP }, |
20 | { 0x40400e, KEY_DOWN }, |
21 | { 0x40400d, KEY_OK }, |
22 | |
23 | { 0x40401d, KEY_MENU }, |
24 | { 0x40401a, KEY_HOME }, |
25 | |
26 | { 0x404045, KEY_BACK }, |
27 | |
28 | { 0x404001, KEY_NUMERIC_1 }, |
29 | { 0x404002, KEY_NUMERIC_2 }, |
30 | { 0x404003, KEY_NUMERIC_3 }, |
31 | { 0x404004, KEY_NUMERIC_4 }, |
32 | { 0x404005, KEY_NUMERIC_5 }, |
33 | { 0x404006, KEY_NUMERIC_6 }, |
34 | { 0x404007, KEY_NUMERIC_7 }, |
35 | { 0x404008, KEY_NUMERIC_8 }, |
36 | { 0x404009, KEY_NUMERIC_9 }, |
37 | { 0x40400c, KEY_BACKSPACE }, |
38 | { 0x404000, KEY_NUMERIC_0 }, |
39 | { 0x404047, KEY_EPG }, // mouse |
40 | }; |
41 | |
42 | static struct rc_map_list pine64_map = { |
43 | .map = { |
44 | .scan = pine64, |
45 | .size = ARRAY_SIZE(pine64), |
46 | .rc_proto = RC_PROTO_NECX, |
47 | .name = RC_MAP_PINE64, |
48 | } |
49 | }; |
50 | |
51 | static int __init init_rc_map_pine64(void) |
52 | { |
53 | return rc_map_register(map: &pine64_map); |
54 | } |
55 | |
56 | static void __exit exit_rc_map_pine64(void) |
57 | { |
58 | rc_map_unregister(map: &pine64_map); |
59 | } |
60 | |
61 | module_init(init_rc_map_pine64) |
62 | module_exit(exit_rc_map_pine64) |
63 | |
64 | MODULE_LICENSE("GPL" ); |
65 | MODULE_AUTHOR("Jonas Karlman" ); |
66 | MODULE_DESCRIPTION("Pine64 IR remote controller keytable" ); |
67 | |