1
0
Fork 0
alistair23-linux/drivers/media/rc/keymaps/rc-ati-x10.c

126 lines
3.6 KiB
C
Raw Normal View History

treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option [no]_[pad]_[ctrl] any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 176 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Jilayne Lovejoy <opensource@jilayne.com> Reviewed-by: Steve Winslow <swinslow@gmail.com> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154040.652910950@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-19 07:51:31 -06:00
// SPDX-License-Identifier: GPL-2.0-or-later
/*
* ATI X10 RF remote keytable
*
* Copyright (C) 2011 Anssi Hannula <anssi.hannula@?ki.fi>
*
* This file is based on the static generic keytable previously found in
* ati_remote.c, which is
* Copyright (c) 2004 Torrey Hoffman <thoffman@arnor.net>
* Copyright (c) 2002 Vladimir Dergachev
*/
#include <linux/module.h>
#include <media/rc-map.h>
/*
* Intended usage comments below are from vendor-supplied
* Source: ATI REMOTE WONDER Installation Guide
* http://www2.ati.com/manuals/remctrl.pdf
*
* Scancodes were in strict left-right, top-bottom order on the
* original ATI Remote Wonder, but were moved on later models.
*
* Keys A-F are intended to be user-programmable.
*/
static struct rc_map_table ati_x10[] = {
/* keyboard - Above the cursor pad */
{ 0x00, KEY_A },
{ 0x01, KEY_B },
{ 0x02, KEY_POWER }, /* Power */
{ 0x03, KEY_TV }, /* TV */
{ 0x04, KEY_DVD }, /* DVD */
{ 0x05, KEY_WWW }, /* WEB */
{ 0x06, KEY_BOOKMARKS }, /* "book": Open Media Library */
{ 0x07, KEY_EDIT }, /* "hand": Toggle left mouse button (grab) */
/* Mouse emulation pad goes here, handled by driver separately */
{ 0x09, KEY_VOLUMEDOWN }, /* VOL + */
{ 0x08, KEY_VOLUMEUP }, /* VOL - */
{ 0x0a, KEY_MUTE }, /* MUTE */
{ 0x0b, KEY_CHANNELUP }, /* CH + */
{ 0x0c, KEY_CHANNELDOWN },/* CH - */
/*
* We could use KEY_NUMERIC_x for these, but the X11 protocol
* has problems with keycodes greater than 255, so avoid those high
* keycodes in default maps.
*/
{ 0x0d, KEY_1 },
{ 0x0e, KEY_2 },
{ 0x0f, KEY_3 },
{ 0x10, KEY_4 },
{ 0x11, KEY_5 },
{ 0x12, KEY_6 },
{ 0x13, KEY_7 },
{ 0x14, KEY_8 },
{ 0x15, KEY_9 },
{ 0x16, KEY_MENU }, /* "menu": DVD root menu */
/* KEY_NUMERIC_STAR? */
{ 0x17, KEY_0 },
{ 0x18, KEY_SETUP }, /* "check": DVD setup menu */
/* KEY_NUMERIC_POUND? */
/* DVD navigation buttons */
{ 0x19, KEY_C },
{ 0x1a, KEY_UP }, /* up */
{ 0x1b, KEY_D },
{ 0x1c, KEY_PROPS }, /* "timer" Should be Data On Screen */
/* Symbol is "circle nailed to box" */
{ 0x1d, KEY_LEFT }, /* left */
{ 0x1e, KEY_OK }, /* "OK" */
{ 0x1f, KEY_RIGHT }, /* right */
{ 0x20, KEY_SCREEN }, /* "max" (X11 warning: 0x177) */
/* Should be AC View Toggle, but
that's not in <input/input.h>.
KEY_ZOOM (0x174)? */
{ 0x21, KEY_E },
{ 0x22, KEY_DOWN }, /* down */
{ 0x23, KEY_F },
/* Play/stop/pause buttons */
{ 0x24, KEY_REWIND }, /* (<<) Rewind */
{ 0x25, KEY_PLAY }, /* ( >) Play (KEY_PLAYCD?) */
{ 0x26, KEY_FASTFORWARD }, /* (>>) Fast forward */
{ 0x27, KEY_RECORD }, /* ( o) red */
{ 0x28, KEY_STOPCD }, /* ([]) Stop (KEY_STOP is something else!) */
{ 0x29, KEY_PAUSE }, /* ('') Pause (KEY_PAUSECD?) */
/* Extra keys, not on the original ATI remote */
{ 0x2a, KEY_NEXT }, /* (>+) */
{ 0x2b, KEY_PREVIOUS }, /* (<-) */
{ 0x2d, KEY_INFO }, /* PLAYING (X11 warning: 0x166) */
{ 0x2e, KEY_HOME }, /* TOP */
{ 0x2f, KEY_END }, /* END */
{ 0x30, KEY_SELECT }, /* SELECT (X11 warning: 0x161) */
};
static struct rc_map_list ati_x10_map = {
.map = {
.scan = ati_x10,
.size = ARRAY_SIZE(ati_x10),
.rc_proto = RC_PROTO_OTHER,
.name = RC_MAP_ATI_X10,
}
};
static int __init init_rc_map_ati_x10(void)
{
return rc_map_register(&ati_x10_map);
}
static void __exit exit_rc_map_ati_x10(void)
{
rc_map_unregister(&ati_x10_map);
}
module_init(init_rc_map_ati_x10)
module_exit(exit_rc_map_ati_x10)
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Anssi Hannula <anssi.hannula@iki.fi>");