Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) // SPDX-License-Identifier: GPL-2.0-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) /* rc5-imon-pad.c - Keytable for SoundGraph iMON PAD and Antec Veris
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * RM-200 Remote Control
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5)  * Copyright (c) 2010 by Jarod Wilson <jarod@redhat.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #include <media/rc-map.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #include <linux/module.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12)  * standard imon remote key table, which isn't really entirely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13)  * "standard", as different receivers decode the same key on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14)  * same remote to different hex codes, and the silkscreened names
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15)  * vary a bit between the SoundGraph and Antec remotes... ugh.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) static struct rc_map_table imon_pad[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	/* keys sorted mostly by frequency of use to optimize lookups */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	{ 0x2a8195b7, KEY_REWIND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	{ 0x298315b7, KEY_REWIND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	{ 0x2b8115b7, KEY_FASTFORWARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	{ 0x2b8315b7, KEY_FASTFORWARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 	{ 0x2b9115b7, KEY_PREVIOUS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	{ 0x298195b7, KEY_NEXT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	{ 0x2a8115b7, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	{ 0x2a8315b7, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	{ 0x2a9115b7, KEY_PAUSE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	{ 0x2b9715b7, KEY_STOP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	{ 0x298115b7, KEY_RECORD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	{ 0x01008000, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	{ 0x01007f00, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	{ 0x01000080, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	{ 0x0100007f, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 	{ 0x2aa515b7, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	{ 0x289515b7, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	{ 0x29a515b7, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	{ 0x2ba515b7, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	{ 0x0200002c, KEY_SPACE }, /* Select/Space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	{ 0x2a9315b7, KEY_SPACE }, /* Select/Space */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	{ 0x02000028, KEY_ENTER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	{ 0x28a195b7, KEY_ENTER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	{ 0x288195b7, KEY_EXIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	{ 0x02000029, KEY_ESC },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	{ 0x2bb715b7, KEY_ESC },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	{ 0x0200002a, KEY_BACKSPACE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	{ 0x28a115b7, KEY_BACKSPACE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	{ 0x2b9595b7, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	{ 0x28a395b7, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	{ 0x28a595b7, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	{ 0x289395b7, KEY_CHANNELUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	{ 0x288795b7, KEY_CHANNELDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	{ 0x0200001e, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	{ 0x0200001f, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	{ 0x02000020, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	{ 0x02000021, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	{ 0x02000022, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	{ 0x02000023, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	{ 0x02000024, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	{ 0x02000025, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	{ 0x02000026, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	{ 0x02000027, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	{ 0x28b595b7, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	{ 0x2bb195b7, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	{ 0x28b195b7, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	{ 0x2a8595b7, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	{ 0x299595b7, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	{ 0x2aa595b7, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	{ 0x2b9395b7, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	{ 0x2a8515b7, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	{ 0x2aa115b7, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	{ 0x2ba595b7, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	{ 0x02200025, KEY_NUMERIC_STAR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	{ 0x28b515b7, KEY_NUMERIC_STAR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	{ 0x02200020, KEY_NUMERIC_POUND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	{ 0x29a115b7, KEY_NUMERIC_POUND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	{ 0x2b8515b7, KEY_VIDEO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	{ 0x299195b7, KEY_AUDIO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	{ 0x2ba115b7, KEY_IMAGES },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	{ 0x28a515b7, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	{ 0x29a395b7, KEY_DVD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	{ 0x29a295b7, KEY_DVD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	/* the Menu key between DVD and Subtitle on the RM-200... */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	{ 0x2ba385b7, KEY_MENU },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	{ 0x2ba395b7, KEY_MENU },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	{ 0x288515b7, KEY_BOOKMARKS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	{ 0x2ab715b7, KEY_CAMERA }, /* Thumbnail */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	{ 0x298595b7, KEY_SUBTITLE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	{ 0x2b8595b7, KEY_LANGUAGE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	{ 0x29a595b7, KEY_ZOOM },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	{ 0x2aa395b7, KEY_SCREEN }, /* FullScreen */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	{ 0x299115b7, KEY_KEYBOARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	{ 0x299135b7, KEY_KEYBOARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	{ 0x01010000, BTN_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	{ 0x01020000, BTN_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	{ 0x01010080, BTN_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	{ 0x01020080, BTN_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	{ 0x688301b7, BTN_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 	{ 0x688481b7, BTN_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 	{ 0x2a9395b7, KEY_CYCLEWINDOWS }, /* TaskSwitcher */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) 	{ 0x2b8395b7, KEY_TIME }, /* Timer */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	{ 0x289115b7, KEY_POWER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	{ 0x29b195b7, KEY_EJECTCD }, /* the one next to play */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	{ 0x299395b7, KEY_EJECTCLOSECD }, /* eject (by TaskSw) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	{ 0x02800000, KEY_CONTEXT_MENU }, /* Left Menu */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	{ 0x2b8195b7, KEY_CONTEXT_MENU }, /* Left Menu*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 	{ 0x02000065, KEY_COMPOSE }, /* RightMenu */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 	{ 0x28b715b7, KEY_COMPOSE }, /* RightMenu */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) 	{ 0x2ab195b7, KEY_MEDIA }, /* Go or MultiMon */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 	{ 0x29b715b7, KEY_DASHBOARD }, /* AppLauncher */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) static struct rc_map_list imon_pad_map = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 	.map = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) 		.scan     = imon_pad,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 		.size     = ARRAY_SIZE(imon_pad),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) 		.rc_proto = RC_PROTO_IMON,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 		.name     = RC_MAP_IMON_PAD,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) static int __init init_rc_map_imon_pad(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) 	return rc_map_register(&imon_pad_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) static void __exit exit_rc_map_imon_pad(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) 	rc_map_unregister(&imon_pad_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) module_init(init_rc_map_imon_pad)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) module_exit(exit_rc_map_imon_pad)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) MODULE_LICENSE("GPL");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) MODULE_AUTHOR("Jarod Wilson <jarod@redhat.com>");