blob: 0877e348094134ba9e1061ae137ea6580ef03e2c [file] [log] [blame]
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -03001/* behold.h - Keytable for behold Remote Controller
2 *
3 * keymap imported from ir-keymaps.c
4 *
5 * Copyright (c) 2010 by Mauro Carvalho Chehab <mchehab@redhat.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#include <media/rc-map.h>
Paul Gortmaker7a707b82011-07-03 14:03:12 -040014#include <linux/module.h>
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030015
16/*
17 * Igor Kuznetsov <igk72@ya.ru>
18 * Andrey J. Melnikov <temnota@kmv.ru>
19 *
20 * Keytable is used by BeholdTV 60x series, M6 series at
21 * least, and probably other cards too.
22 * The "ascii-art picture" below (in comments, first row
23 * is the keycode in hex, and subsequent row(s) shows
24 * the button labels (several variants when appropriate)
25 * helps to descide which keycodes to assign to the buttons.
26 */
27
Mauro Carvalho Chehab2f4f58d2010-11-17 15:46:09 -030028static struct rc_map_table behold[] = {
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030029
30 /* 0x1c 0x12 *
31 * TV/FM POWER *
32 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030033 { 0x6b861c, KEY_TUNER }, /* XXX KEY_TV / KEY_RADIO */
34 { 0x6b8612, KEY_POWER },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030035
36 /* 0x01 0x02 0x03 *
37 * 1 2 3 *
38 * *
39 * 0x04 0x05 0x06 *
40 * 4 5 6 *
41 * *
42 * 0x07 0x08 0x09 *
43 * 7 8 9 *
44 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030045 { 0x6b8601, KEY_1 },
46 { 0x6b8602, KEY_2 },
47 { 0x6b8603, KEY_3 },
48 { 0x6b8604, KEY_4 },
49 { 0x6b8605, KEY_5 },
50 { 0x6b8606, KEY_6 },
51 { 0x6b8607, KEY_7 },
52 { 0x6b8608, KEY_8 },
53 { 0x6b8609, KEY_9 },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030054
55 /* 0x0a 0x00 0x17 *
56 * RECALL 0 MODE *
57 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030058 { 0x6b860a, KEY_AGAIN },
59 { 0x6b8600, KEY_0 },
60 { 0x6b8617, KEY_MODE },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030061
62 /* 0x14 0x10 *
63 * ASPECT FULLSCREEN *
64 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030065 { 0x6b8614, KEY_SCREEN },
66 { 0x6b8610, KEY_ZOOM },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030067
68 /* 0x0b *
69 * Up *
70 * *
71 * 0x18 0x16 0x0c *
72 * Left Ok Right *
73 * *
74 * 0x015 *
75 * Down *
76 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030077 { 0x6b860b, KEY_CHANNELUP },
78 { 0x6b8618, KEY_VOLUMEDOWN },
79 { 0x6b8616, KEY_OK }, /* XXX KEY_ENTER */
80 { 0x6b860c, KEY_VOLUMEUP },
81 { 0x6b8615, KEY_CHANNELDOWN },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030082
83 /* 0x11 0x0d *
84 * MUTE INFO *
85 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030086 { 0x6b8611, KEY_MUTE },
87 { 0x6b860d, KEY_INFO },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -030088
89 /* 0x0f 0x1b 0x1a *
90 * RECORD PLAY/PAUSE STOP *
91 * *
92 * 0x0e 0x1f 0x1e *
93 *TELETEXT AUDIO SOURCE *
94 * RED YELLOW *
95 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -030096 { 0x6b860f, KEY_RECORD },
97 { 0x6b861b, KEY_PLAYPAUSE },
98 { 0x6b861a, KEY_STOP },
99 { 0x6b860e, KEY_TEXT },
100 { 0x6b861f, KEY_RED }, /*XXX KEY_AUDIO */
Mauro Carvalho Chehab6f9e46b2011-01-24 12:18:37 -0300101 { 0x6b861e, KEY_VIDEO },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300102
103 /* 0x1d 0x13 0x19 *
104 * SLEEP PREVIEW DVB *
105 * GREEN BLUE *
106 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -0300107 { 0x6b861d, KEY_SLEEP },
108 { 0x6b8613, KEY_GREEN },
109 { 0x6b8619, KEY_BLUE }, /* XXX KEY_SAT */
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300110
111 /* 0x58 0x5c *
112 * FREEZE SNAPSHOT *
113 * */
David Härdemanb0ddb0f2010-11-19 20:42:46 -0300114 { 0x6b8658, KEY_SLOW },
115 { 0x6b865c, KEY_CAMERA },
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300116
117};
118
Mauro Carvalho Chehabd100e652010-11-17 15:56:53 -0300119static struct rc_map_list behold_map = {
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300120 .map = {
121 .scan = behold,
122 .size = ARRAY_SIZE(behold),
David Härdemanb0ddb0f2010-11-19 20:42:46 -0300123 .rc_type = RC_TYPE_NEC,
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300124 .name = RC_MAP_BEHOLD,
125 }
126};
127
128static int __init init_rc_map_behold(void)
129{
Mauro Carvalho Chehabd100e652010-11-17 15:56:53 -0300130 return rc_map_register(&behold_map);
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300131}
132
133static void __exit exit_rc_map_behold(void)
134{
Mauro Carvalho Chehabd100e652010-11-17 15:56:53 -0300135 rc_map_unregister(&behold_map);
Mauro Carvalho Chehab6686fa62010-04-02 03:05:46 -0300136}
137
138module_init(init_rc_map_behold)
139module_exit(exit_rc_map_behold)
140
141MODULE_LICENSE("GPL");
142MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>");