Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0+
0002 // Keytable for Xbox 360 Universal Media remote
0003 // Copyright (c) 2021 Bastien Nocera <hadess@hadess.net>
0004 
0005 #include <media/rc-map.h>
0006 #include <linux/module.h>
0007 
0008 /*
0009  * Manual for remote available at:
0010  * http://download.microsoft.com/download/b/c/e/bce76f3f-db51-4c98-b79d-b3d21e90ccc1/universalmediaremote_na_0609.pdf
0011  */
0012 static struct rc_map_table xbox_360[] = {
0013     {KEY_EJECTCD, 0x800f7428},
0014     {KEY_HOMEPAGE, 0x800f7464},
0015     {KEY_POWER, 0x800f740c},
0016     {KEY_STOP, 0x800f7419},
0017     {KEY_PAUSE, 0x800f7418},
0018     {KEY_REWIND, 0x800f7415},
0019     {KEY_FASTFORWARD, 0x800f7414},
0020     {KEY_PREVIOUS, 0x800f741b},
0021     {KEY_NEXT, 0x800f741a},
0022     {KEY_PLAY, 0x800f7416},
0023     {KEY_PROPS, 0x800f744f}, /* "Display" */
0024     {KEY_BACK, 0x800f7423},
0025     {KEY_MEDIA_TOP_MENU, 0x800f7424}, /* "DVD Menu" */
0026     {KEY_ROOT_MENU, 0x800f7451}, /* "Title" */
0027     {KEY_INFO, 0x800f740f},
0028     {KEY_UP, 0x800f741e},
0029     {KEY_LEFT, 0x800f7420},
0030     {KEY_RIGHT, 0x800f7421},
0031     {KEY_DOWN, 0x800f741f},
0032     {KEY_OK, 0x800f7422},
0033     {KEY_YELLOW, 0x800f7426},
0034     {KEY_BLUE, 0x800f7468},
0035     {KEY_GREEN, 0x800f7466},
0036     {KEY_RED, 0x800f7425},
0037     {KEY_VOLUMEUP, 0x800f7410},
0038     {KEY_VOLUMEDOWN, 0x800f7411},
0039     /* TV key doesn't light the IR LED */
0040     {KEY_MUTE, 0x800f740e},
0041     {KEY_CHANNELUP, 0x800f746c},
0042     {KEY_CHANNELDOWN, 0x800f746d},
0043     {KEY_LEFTMETA, 0x800f740d},
0044     {KEY_ENTER, 0x800f740b},
0045     {KEY_RECORD, 0x800f7417},
0046     {KEY_CLEAR, 0x800f740a},
0047     {KEY_NUMERIC_1, 0x800f7401},
0048     {KEY_NUMERIC_2, 0x800f7402},
0049     {KEY_NUMERIC_3, 0x800f7403},
0050     {KEY_NUMERIC_4, 0x800f7404},
0051     {KEY_NUMERIC_5, 0x800f7405},
0052     {KEY_NUMERIC_6, 0x800f7406},
0053     {KEY_NUMERIC_7, 0x800f7407},
0054     {KEY_NUMERIC_8, 0x800f7408},
0055     {KEY_NUMERIC_9, 0x800f7409},
0056     {KEY_NUMERIC_0, 0x800f7400},
0057     {KEY_102ND, 0x800f741d}, /* "100" */
0058     {KEY_CANCEL, 0x800f741c},
0059 };
0060 
0061 static struct rc_map_list xbox_360_map = {
0062     .map = {
0063         .scan     = xbox_360,
0064         .size     = ARRAY_SIZE(xbox_360),
0065         .rc_proto = RC_PROTO_RC6_MCE,
0066         .name     = RC_MAP_XBOX_360,
0067     }
0068 };
0069 
0070 static int __init init_rc_map(void)
0071 {
0072     return rc_map_register(&xbox_360_map);
0073 }
0074 
0075 static void __exit exit_rc_map(void)
0076 {
0077     rc_map_unregister(&xbox_360_map);
0078 }
0079 
0080 module_init(init_rc_map)
0081 module_exit(exit_rc_map)
0082 
0083 MODULE_LICENSE("GPL");