17bb53f36SChristian Hewitt // SPDX-License-Identifier: GPL-2.0+
27bb53f36SChristian Hewitt // Copyright (c) 2018 Christian Hewitt
37bb53f36SChristian Hewitt 
47bb53f36SChristian Hewitt #include <media/rc-map.h>
57bb53f36SChristian Hewitt #include <linux/module.h>
67bb53f36SChristian Hewitt 
77bb53f36SChristian Hewitt /*
87bb53f36SChristian Hewitt  * Keymap for the Tanix TX5 max STB remote control
97bb53f36SChristian Hewitt  */
107bb53f36SChristian Hewitt 
117bb53f36SChristian Hewitt static struct rc_map_table tanix_tx5max[] = {
127bb53f36SChristian Hewitt 	{ 0x40404d, KEY_POWER },
137bb53f36SChristian Hewitt 	{ 0x404043, KEY_MUTE },
147bb53f36SChristian Hewitt 
157bb53f36SChristian Hewitt 	{ 0x404017, KEY_VOLUMEDOWN },
167bb53f36SChristian Hewitt 	{ 0x404018, KEY_VOLUMEUP },
177bb53f36SChristian Hewitt 
187bb53f36SChristian Hewitt 	{ 0x40400b, KEY_UP },
197bb53f36SChristian Hewitt 	{ 0x404010, KEY_LEFT },
207bb53f36SChristian Hewitt 	{ 0x404011, KEY_RIGHT },
217bb53f36SChristian Hewitt 	{ 0x40400e, KEY_DOWN },
227bb53f36SChristian Hewitt 	{ 0x40400d, KEY_OK },
237bb53f36SChristian Hewitt 
247bb53f36SChristian Hewitt 	{ 0x40401a, KEY_HOME },
257bb53f36SChristian Hewitt 	{ 0x404045, KEY_MENU },
267bb53f36SChristian Hewitt 	{ 0x404042, KEY_BACK },
277bb53f36SChristian Hewitt 
287bb53f36SChristian Hewitt 	{ 0x404001, KEY_1 },
297bb53f36SChristian Hewitt 	{ 0x404002, KEY_2 },
307bb53f36SChristian Hewitt 	{ 0x404003, KEY_3 },
317bb53f36SChristian Hewitt 
327bb53f36SChristian Hewitt 	{ 0x404004, KEY_4 },
337bb53f36SChristian Hewitt 	{ 0x404005, KEY_5 },
347bb53f36SChristian Hewitt 	{ 0x404006, KEY_6 },
357bb53f36SChristian Hewitt 
367bb53f36SChristian Hewitt 	{ 0x404007, KEY_7 },
377bb53f36SChristian Hewitt 	{ 0x404008, KEY_8 },
387bb53f36SChristian Hewitt 	{ 0x404009, KEY_9 },
397bb53f36SChristian Hewitt 
407bb53f36SChristian Hewitt 	{ 0x404047, KEY_SUBTITLE }, // mouse
417bb53f36SChristian Hewitt 	{ 0x404000, KEY_0 },
427bb53f36SChristian Hewitt 	{ 0x40400c, KEY_DELETE },
437bb53f36SChristian Hewitt };
447bb53f36SChristian Hewitt 
457bb53f36SChristian Hewitt static struct rc_map_list tanix_tx5max_map = {
467bb53f36SChristian Hewitt 	.map = {
477bb53f36SChristian Hewitt 		.scan     = tanix_tx5max,
487bb53f36SChristian Hewitt 		.size     = ARRAY_SIZE(tanix_tx5max),
497bb53f36SChristian Hewitt 		.rc_proto = RC_PROTO_NECX,
507bb53f36SChristian Hewitt 		.name     = RC_MAP_TANIX_TX5MAX,
517bb53f36SChristian Hewitt 	}
527bb53f36SChristian Hewitt };
537bb53f36SChristian Hewitt 
init_rc_map_tanix_tx5max(void)547bb53f36SChristian Hewitt static int __init init_rc_map_tanix_tx5max(void)
557bb53f36SChristian Hewitt {
567bb53f36SChristian Hewitt 	return rc_map_register(&tanix_tx5max_map);
577bb53f36SChristian Hewitt }
587bb53f36SChristian Hewitt 
exit_rc_map_tanix_tx5max(void)597bb53f36SChristian Hewitt static void __exit exit_rc_map_tanix_tx5max(void)
607bb53f36SChristian Hewitt {
617bb53f36SChristian Hewitt 	rc_map_unregister(&tanix_tx5max_map);
627bb53f36SChristian Hewitt }
637bb53f36SChristian Hewitt 
647bb53f36SChristian Hewitt module_init(init_rc_map_tanix_tx5max)
657bb53f36SChristian Hewitt module_exit(exit_rc_map_tanix_tx5max)
667bb53f36SChristian Hewitt 
677bb53f36SChristian Hewitt MODULE_LICENSE("GPL");
687bb53f36SChristian Hewitt MODULE_AUTHOR("Christian Hewitt <christianshewitt@gmail.com>");
69