xref: /linux/drivers/media/rc/keymaps/rc-siemens-gigaset-rc20.c (revision 4f9786035f9e519db41375818e1d0b5f20da2f10)
1*b2c4bf0cSMichael Klein // SPDX-License-Identifier: GPL-2.0-or-later
2*b2c4bf0cSMichael Klein /* rc-siemens-gigaset-rc20.c - Keytable for the Siemens Gigaset RC 20 remote
3*b2c4bf0cSMichael Klein  *
4*b2c4bf0cSMichael Klein  * Copyright (c) 2025 by Michael Klein
5*b2c4bf0cSMichael Klein  */
6*b2c4bf0cSMichael Klein 
7*b2c4bf0cSMichael Klein #include <media/rc-map.h>
8*b2c4bf0cSMichael Klein #include <linux/module.h>
9*b2c4bf0cSMichael Klein 
10*b2c4bf0cSMichael Klein static struct rc_map_table siemens_gigaset_rc20[] = {
11*b2c4bf0cSMichael Klein 	{ 0x1501, KEY_POWER },
12*b2c4bf0cSMichael Klein 	{ 0x1502, KEY_MUTE },
13*b2c4bf0cSMichael Klein 	{ 0x1503, KEY_NUMERIC_1 },
14*b2c4bf0cSMichael Klein 	{ 0x1504, KEY_NUMERIC_2 },
15*b2c4bf0cSMichael Klein 	{ 0x1505, KEY_NUMERIC_3 },
16*b2c4bf0cSMichael Klein 	{ 0x1506, KEY_NUMERIC_4 },
17*b2c4bf0cSMichael Klein 	{ 0x1507, KEY_NUMERIC_5 },
18*b2c4bf0cSMichael Klein 	{ 0x1508, KEY_NUMERIC_6 },
19*b2c4bf0cSMichael Klein 	{ 0x1509, KEY_NUMERIC_7 },
20*b2c4bf0cSMichael Klein 	{ 0x150a, KEY_NUMERIC_8 },
21*b2c4bf0cSMichael Klein 	{ 0x150b, KEY_NUMERIC_9 },
22*b2c4bf0cSMichael Klein 	{ 0x150c, KEY_NUMERIC_0 },
23*b2c4bf0cSMichael Klein 	{ 0x150d, KEY_UP },
24*b2c4bf0cSMichael Klein 	{ 0x150e, KEY_LEFT },
25*b2c4bf0cSMichael Klein 	{ 0x150f, KEY_OK },
26*b2c4bf0cSMichael Klein 	{ 0x1510, KEY_RIGHT },
27*b2c4bf0cSMichael Klein 	{ 0x1511, KEY_DOWN },
28*b2c4bf0cSMichael Klein 	{ 0x1512, KEY_SHUFFLE },        /* double-arrow */
29*b2c4bf0cSMichael Klein 	{ 0x1513, KEY_EXIT },
30*b2c4bf0cSMichael Klein 	{ 0x1514, KEY_RED },
31*b2c4bf0cSMichael Klein 	{ 0x1515, KEY_GREEN },
32*b2c4bf0cSMichael Klein 	{ 0x1516, KEY_YELLOW },         /* OPT */
33*b2c4bf0cSMichael Klein 	{ 0x1517, KEY_BLUE },
34*b2c4bf0cSMichael Klein 	{ 0x1518, KEY_MENU },
35*b2c4bf0cSMichael Klein 	{ 0x1519, KEY_TEXT },
36*b2c4bf0cSMichael Klein 	{ 0x151a, KEY_MODE },           /* TV/Radio */
37*b2c4bf0cSMichael Klein 
38*b2c4bf0cSMichael Klein 	{ 0x1521, KEY_EPG },
39*b2c4bf0cSMichael Klein 	{ 0x1522, KEY_FAVORITES },
40*b2c4bf0cSMichael Klein 	{ 0x1523, KEY_CHANNELUP },
41*b2c4bf0cSMichael Klein 	{ 0x1524, KEY_CHANNELDOWN },
42*b2c4bf0cSMichael Klein 	{ 0x1525, KEY_VOLUMEUP },
43*b2c4bf0cSMichael Klein 	{ 0x1526, KEY_VOLUMEDOWN },
44*b2c4bf0cSMichael Klein 	{ 0x1527, KEY_INFO },
45*b2c4bf0cSMichael Klein };
46*b2c4bf0cSMichael Klein 
47*b2c4bf0cSMichael Klein static struct rc_map_list siemens_gigaset_rc20_map = {
48*b2c4bf0cSMichael Klein 	.map = {
49*b2c4bf0cSMichael Klein 		.scan     = siemens_gigaset_rc20,
50*b2c4bf0cSMichael Klein 		.size     = ARRAY_SIZE(siemens_gigaset_rc20),
51*b2c4bf0cSMichael Klein 		.rc_proto = RC_PROTO_RC5,
52*b2c4bf0cSMichael Klein 		.name     = RC_MAP_SIEMENS_GIGASET_RC20,
53*b2c4bf0cSMichael Klein 	}
54*b2c4bf0cSMichael Klein };
55*b2c4bf0cSMichael Klein 
init_rc_map_siemens_gigaset_rc20(void)56*b2c4bf0cSMichael Klein static int __init init_rc_map_siemens_gigaset_rc20(void)
57*b2c4bf0cSMichael Klein {
58*b2c4bf0cSMichael Klein 	return rc_map_register(&siemens_gigaset_rc20_map);
59*b2c4bf0cSMichael Klein }
60*b2c4bf0cSMichael Klein 
exit_rc_map_siemens_gigaset_rc20(void)61*b2c4bf0cSMichael Klein static void __exit exit_rc_map_siemens_gigaset_rc20(void)
62*b2c4bf0cSMichael Klein {
63*b2c4bf0cSMichael Klein 	rc_map_unregister(&siemens_gigaset_rc20_map);
64*b2c4bf0cSMichael Klein }
65*b2c4bf0cSMichael Klein 
66*b2c4bf0cSMichael Klein module_init(init_rc_map_siemens_gigaset_rc20)
67*b2c4bf0cSMichael Klein module_exit(exit_rc_map_siemens_gigaset_rc20)
68*b2c4bf0cSMichael Klein 
69*b2c4bf0cSMichael Klein MODULE_LICENSE("GPL");
70*b2c4bf0cSMichael Klein MODULE_AUTHOR("Michael Klein");
71*b2c4bf0cSMichael Klein MODULE_DESCRIPTION("Siemens Gigaset RC20 remote keytable");
72