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-mce.c - Keytable for Windows Media Center RC-6 remotes for use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3)  * with the SoundGraph iMON/Antec Veris hardware IR decoder
^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) /* mce-mode imon mce remote key table */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) static struct rc_map_table imon_mce[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) 	/* keys sorted mostly by frequency of use to optimize lookups */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 	{ 0x800ff415, KEY_REWIND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 	{ 0x800ff414, KEY_FASTFORWARD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	{ 0x800ff41b, KEY_PREVIOUS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	{ 0x800ff41a, KEY_NEXT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	{ 0x800ff416, KEY_PLAY },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	{ 0x800ff418, KEY_PAUSE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	{ 0x800ff419, KEY_STOP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	{ 0x800ff417, KEY_RECORD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	{ 0x02000052, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	{ 0x02000051, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	{ 0x02000050, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	{ 0x0200004f, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	{ 0x800ff41e, KEY_UP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	{ 0x800ff41f, KEY_DOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	{ 0x800ff420, KEY_LEFT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	{ 0x800ff421, KEY_RIGHT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 	/* 0x800ff40b also KEY_NUMERIC_POUND on some receivers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	{ 0x800ff40b, KEY_ENTER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	{ 0x02000028, KEY_ENTER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) /* the OK and Enter buttons decode to the same value on some remotes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	{ 0x02000028, KEY_OK }, */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	{ 0x800ff422, KEY_OK },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	{ 0x0200002a, KEY_EXIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	{ 0x800ff423, KEY_EXIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	{ 0x02000029, KEY_DELETE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	/* 0x800ff40a also KEY_NUMERIC_STAR on some receivers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	{ 0x800ff40a, KEY_DELETE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	{ 0x800ff40e, KEY_MUTE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	{ 0x800ff410, KEY_VOLUMEUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	{ 0x800ff411, KEY_VOLUMEDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	{ 0x800ff412, KEY_CHANNELUP },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	{ 0x800ff413, KEY_CHANNELDOWN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	{ 0x0200001e, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	{ 0x0200001f, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	{ 0x02000020, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	{ 0x02000021, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	{ 0x02000022, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	{ 0x02000023, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	{ 0x02000024, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	{ 0x02000025, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	{ 0x02000026, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	{ 0x02000027, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	{ 0x800ff401, KEY_NUMERIC_1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	{ 0x800ff402, KEY_NUMERIC_2 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	{ 0x800ff403, KEY_NUMERIC_3 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	{ 0x800ff404, KEY_NUMERIC_4 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	{ 0x800ff405, KEY_NUMERIC_5 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	{ 0x800ff406, KEY_NUMERIC_6 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	{ 0x800ff407, KEY_NUMERIC_7 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	{ 0x800ff408, KEY_NUMERIC_8 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	{ 0x800ff409, KEY_NUMERIC_9 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	{ 0x800ff400, KEY_NUMERIC_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	{ 0x02200025, KEY_NUMERIC_STAR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	{ 0x02200020, KEY_NUMERIC_POUND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 	/* 0x800ff41d also KEY_BLUE on some receivers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	{ 0x800ff41d, KEY_NUMERIC_STAR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	/* 0x800ff41c also KEY_PREVIOUS on some receivers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	{ 0x800ff41c, KEY_NUMERIC_POUND },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	{ 0x800ff446, KEY_TV },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	{ 0x800ff447, KEY_AUDIO }, /* My Music */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	{ 0x800ff448, KEY_PVR }, /* RecordedTV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	{ 0x800ff449, KEY_CAMERA },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	{ 0x800ff44a, KEY_VIDEO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	/* 0x800ff424 also KEY_MENU on some receivers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	{ 0x800ff424, KEY_DVD },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	/* 0x800ff425 also KEY_GREEN on some receivers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	{ 0x800ff425, KEY_TUNER }, /* LiveTV */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	{ 0x800ff450, KEY_RADIO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	{ 0x800ff44c, KEY_LANGUAGE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	{ 0x800ff427, KEY_ZOOM }, /* Aspect */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	{ 0x800ff45b, KEY_RED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	{ 0x800ff45c, KEY_GREEN },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	{ 0x800ff45d, KEY_YELLOW },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	{ 0x800ff45e, KEY_BLUE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	{ 0x800ff466, KEY_RED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	/* { 0x800ff425, KEY_GREEN }, */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	{ 0x800ff468, KEY_YELLOW },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 	/* { 0x800ff41d, KEY_BLUE }, */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	{ 0x800ff40f, KEY_INFO },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 	{ 0x800ff426, KEY_EPG }, /* Guide */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	{ 0x800ff45a, KEY_SUBTITLE }, /* Caption/Teletext */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	{ 0x800ff44d, KEY_TITLE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	{ 0x800ff40c, KEY_POWER },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	{ 0x800ff40d, KEY_MEDIA }, /* Windows MCE button */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) static struct rc_map_list imon_mce_map = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	.map = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 		.scan     = imon_mce,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 		.size     = ARRAY_SIZE(imon_mce),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 		/* its RC6, but w/a hardware decoder */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 		.rc_proto = RC_PROTO_RC6_MCE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 		.name     = RC_MAP_IMON_MCE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) static int __init init_rc_map_imon_mce(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 	return rc_map_register(&imon_mce_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) static void __exit exit_rc_map_imon_mce(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) 	rc_map_unregister(&imon_mce_map);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) module_init(init_rc_map_imon_mce)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) module_exit(exit_rc_map_imon_mce)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) MODULE_LICENSE("GPL");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) MODULE_AUTHOR("Jarod Wilson <jarod@redhat.com>");