• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * drivers/input/keyboard/tegra-nvec.c
3  *
4  * Keyboard class input driver for keyboards connected to an NvEc compliant
5  * embedded controller
6  *
7  * Copyright (c) 2009, NVIDIA Corporation.
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful, but WITHOUT
15  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
17  * more details.
18  *
19  * You should have received a copy of the GNU General Public License along
20  * with this program; if not, see http://www.gnu.org/licenses
21  */
22 
23 static unsigned short code_tab_102us[] = {
24 	/* 0x00 */
25 	KEY_GRAVE,
26 	KEY_ESC,
27 	KEY_1,
28 	KEY_2,
29 	KEY_3,
30 	KEY_4,
31 	KEY_5,
32 	KEY_6,
33 	KEY_7,
34 	KEY_8,
35 	KEY_9,
36 	KEY_0,
37 	KEY_MINUS,
38 	KEY_EQUAL,
39 	KEY_BACKSPACE,
40 	KEY_TAB,
41 	/* 0x10 */
42 	KEY_Q,
43 	KEY_W,
44 	KEY_E,
45 	KEY_R,
46 	KEY_T,
47 	KEY_Y,
48 	KEY_U,
49 	KEY_I,
50 	KEY_O,
51 	KEY_P,
52 	KEY_LEFTBRACE,
53 	KEY_RIGHTBRACE,
54 	KEY_ENTER,
55 	KEY_LEFTCTRL,
56 	KEY_A,
57 	KEY_S,
58 	/* 0x20 */
59 	KEY_D,
60 	KEY_F,
61 	KEY_G,
62 	KEY_H,
63 	KEY_J,
64 	KEY_K,
65 	KEY_L,
66 	KEY_SEMICOLON,
67 	KEY_APOSTROPHE,
68 	KEY_GRAVE,
69 	KEY_LEFTSHIFT,
70 	KEY_BACKSLASH,
71 	KEY_Z,
72 	KEY_X,
73 	KEY_C,
74 	KEY_V,
75 	/* 0x30 */
76 	KEY_B,
77 	KEY_N,
78 	KEY_M,
79 	KEY_COMMA,
80 	KEY_DOT,
81 	KEY_SLASH,
82 	KEY_RIGHTSHIFT,
83 	KEY_KPASTERISK,
84 	KEY_LEFTALT,
85 	KEY_SPACE,
86 	KEY_CAPSLOCK,
87 	KEY_F1,
88 	KEY_F2,
89 	KEY_F3,
90 	KEY_F4,
91 	KEY_F5,
92 	/* 0x40 */
93 	KEY_F6,
94 	KEY_F7,
95 	KEY_F8,
96 	KEY_F9,
97 	KEY_F10,
98 	KEY_FN,
99 	/* VK_SCROLL */
100 	0,
101 	KEY_KP7,
102 	KEY_KP8,
103 	KEY_KP9,
104 	KEY_KPMINUS,
105 	KEY_KP4,
106 	KEY_KP5,
107 	KEY_KP6,
108 	KEY_KPPLUS,
109 	KEY_KP1,
110 	/* 0x50 */
111 	KEY_KP2,
112 	KEY_KP3,
113 	KEY_KP0,
114 	KEY_KPDOT,
115 	/* VK_SNAPSHOT */
116 	KEY_MENU,
117 	KEY_POWER,
118 	/* VK_OEM_102 */
119 	KEY_102ND,
120 	KEY_F11,
121 	KEY_F12,
122 	0,
123 	0,
124 	0,
125 	0,
126 	0,
127 	0,
128 	0,
129 	/* 0x60 */
130 	0,
131 	0,
132 	0,
133 	KEY_SEARCH,
134 	0,
135 	0,
136 	0,
137 	0,
138 	0,
139 	0,
140 	0,
141 	0,
142 	0,
143 	0,
144 	0,
145 	0,
146 	/* 0x70 */
147 	0,
148 	0,
149 	0,
150 	KEY_KP5,
151 	0,
152 	0,
153 	0,
154 	0,
155 	0,
156 	0,
157 	0,
158 	0,
159 	0,
160 	KEY_KP9,
161 };
162 
163 static unsigned short extcode_tab_us102[] = {
164 	0,
165 	0,
166 	0,
167 	0,
168 	0,
169 	0,
170 	0,
171 	0,
172 	0,
173 	0,
174 	0,
175 	0,
176 	0,
177 	0,
178 	0,
179 	0,
180 	/* 0x10 */
181 	0,
182 	0,
183 	0,
184 	0,
185 	0,
186 	0,
187 	0,
188 	0,
189 	0,
190 	/* VK_MEDIA_NEXT_TRACK */
191 	0,
192 	0,
193 	0,
194 	/* VK_RETURN */
195 	0,
196 	KEY_RIGHTCTRL,
197 	0,
198 	0,
199 	/* 0x20 */
200 	KEY_MUTE,
201 	/* VK_LAUNCH_APP1 */
202 	0,
203 	/* VK_MEDIA_PLAY_PAUSE */
204 	0,
205 	0,
206 	/* VK_MEDIA_STOP */
207 	0,
208 	0,
209 	0,
210 	0,
211 	0,
212 	0,
213 	0,
214 	0,
215 	0,
216 	0,
217 	0,
218 	0,
219 	/* 0x30 */
220 	KEY_VOLUMEUP,
221 	0,
222 	/* VK_BROWSER_HOME */
223 	0,
224 	0,
225 	0,
226 	/* VK_DIVIDE */
227 	KEY_KPSLASH,
228 	0,
229 	/* VK_SNAPSHOT */
230 	KEY_SYSRQ,
231 	/* VK_RMENU */
232 	KEY_RIGHTALT,
233 	/* VK_OEM_NV_BACKLIGHT_UP */
234 	0,
235 	/* VK_OEM_NV_BACKLIGHT_DN */
236 	0,
237 	/* VK_OEM_NV_BACKLIGHT_AUTOTOGGLE */
238 	0,
239 	/* VK_OEM_NV_POWER_INFO */
240 	0,
241 	/* VK_OEM_NV_WIFI_TOGGLE */
242 	0,
243 	/* VK_OEM_NV_DISPLAY_SELECT */
244 	0,
245 	/* VK_OEM_NV_AIRPLANE_TOGGLE */
246 	0,
247 	/* 0x40 */
248 	0,
249 	KEY_LEFT,
250 	0,
251 	0,
252 	0,
253 	0,
254 	KEY_CANCEL,
255 	KEY_HOME,
256 	KEY_UP,
257 	KEY_PAGEUP,
258 	0,
259 	KEY_LEFT,
260 	0,
261 	KEY_RIGHT,
262 	0,
263 	KEY_END,
264 	/* 0x50 */
265 	KEY_DOWN,
266 	KEY_PAGEDOWN,
267 	KEY_INSERT,
268 	KEY_DELETE,
269 	0,
270 	0,
271 	0,
272 	0,
273 	0,
274 	0,
275 	0,
276 	KEY_LEFTMETA,
277 	0,
278 	KEY_ESC,
279 	KEY_KPMINUS,
280 	0,
281 	0,
282 	0,
283 	0,
284 	0,
285 	0,
286 	/* VK_BROWSER_SEARCH */
287 	0,
288 	/* VK_BROWSER_FAVORITES */
289 	0,
290 	/* VK_BROWSER_REFRESH */
291 	0,
292 	/* VK_BROWSER_STOP */
293 	0,
294 	/* VK_BROWSER_FORWARD */
295 	0,
296 	/* VK_BROWSER_BACK */
297 	0,
298 	/* VK_LAUNCH_APP2 */
299 	0,
300 	/* VK_LAUNCH_MAIL */
301 	0,
302 	/* VK_LAUNCH_MEDIA_SELECT */
303 	0,
304 };
305 
306 static unsigned short *code_tabs[] = { code_tab_102us, extcode_tab_us102 };
307