1971bcfcaSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0+ */
232890b98SMarc Dietrich /*
332890b98SMarc Dietrich  * drivers/input/keyboard/tegra-nvec.c
432890b98SMarc Dietrich  *
532890b98SMarc Dietrich  * Keyboard class input driver for keyboards connected to an NvEc compliant
632890b98SMarc Dietrich  * embedded controller
732890b98SMarc Dietrich  *
832890b98SMarc Dietrich  * Copyright (c) 2009, NVIDIA Corporation.
932890b98SMarc Dietrich  */
1032890b98SMarc Dietrich 
1132890b98SMarc Dietrich static unsigned short code_tab_102us[] = {
12162c7d8cSMarc Dietrich 	/* 0x00 */
13162c7d8cSMarc Dietrich 	KEY_GRAVE,
1432890b98SMarc Dietrich 	KEY_ESC,
1532890b98SMarc Dietrich 	KEY_1,
1632890b98SMarc Dietrich 	KEY_2,
1732890b98SMarc Dietrich 	KEY_3,
1832890b98SMarc Dietrich 	KEY_4,
1932890b98SMarc Dietrich 	KEY_5,
2032890b98SMarc Dietrich 	KEY_6,
2132890b98SMarc Dietrich 	KEY_7,
2232890b98SMarc Dietrich 	KEY_8,
2332890b98SMarc Dietrich 	KEY_9,
2432890b98SMarc Dietrich 	KEY_0,
2532890b98SMarc Dietrich 	KEY_MINUS,
2632890b98SMarc Dietrich 	KEY_EQUAL,
2732890b98SMarc Dietrich 	KEY_BACKSPACE,
2832890b98SMarc Dietrich 	KEY_TAB,
29162c7d8cSMarc Dietrich 	/* 0x10 */
30162c7d8cSMarc Dietrich 	KEY_Q,
3132890b98SMarc Dietrich 	KEY_W,
3232890b98SMarc Dietrich 	KEY_E,
3332890b98SMarc Dietrich 	KEY_R,
3432890b98SMarc Dietrich 	KEY_T,
3532890b98SMarc Dietrich 	KEY_Y,
3632890b98SMarc Dietrich 	KEY_U,
3732890b98SMarc Dietrich 	KEY_I,
3832890b98SMarc Dietrich 	KEY_O,
3932890b98SMarc Dietrich 	KEY_P,
4032890b98SMarc Dietrich 	KEY_LEFTBRACE,
4132890b98SMarc Dietrich 	KEY_RIGHTBRACE,
4232890b98SMarc Dietrich 	KEY_ENTER,
4332890b98SMarc Dietrich 	KEY_LEFTCTRL,
4432890b98SMarc Dietrich 	KEY_A,
4532890b98SMarc Dietrich 	KEY_S,
46162c7d8cSMarc Dietrich 	/* 0x20 */
47162c7d8cSMarc Dietrich 	KEY_D,
4832890b98SMarc Dietrich 	KEY_F,
4932890b98SMarc Dietrich 	KEY_G,
5032890b98SMarc Dietrich 	KEY_H,
5132890b98SMarc Dietrich 	KEY_J,
5232890b98SMarc Dietrich 	KEY_K,
5332890b98SMarc Dietrich 	KEY_L,
5432890b98SMarc Dietrich 	KEY_SEMICOLON,
5532890b98SMarc Dietrich 	KEY_APOSTROPHE,
5632890b98SMarc Dietrich 	KEY_GRAVE,
5732890b98SMarc Dietrich 	KEY_LEFTSHIFT,
5832890b98SMarc Dietrich 	KEY_BACKSLASH,
5932890b98SMarc Dietrich 	KEY_Z,
6032890b98SMarc Dietrich 	KEY_X,
6132890b98SMarc Dietrich 	KEY_C,
6232890b98SMarc Dietrich 	KEY_V,
63162c7d8cSMarc Dietrich 	/* 0x30 */
64162c7d8cSMarc Dietrich 	KEY_B,
6532890b98SMarc Dietrich 	KEY_N,
6632890b98SMarc Dietrich 	KEY_M,
6732890b98SMarc Dietrich 	KEY_COMMA,
6832890b98SMarc Dietrich 	KEY_DOT,
6932890b98SMarc Dietrich 	KEY_SLASH,
7032890b98SMarc Dietrich 	KEY_RIGHTSHIFT,
7132890b98SMarc Dietrich 	KEY_KPASTERISK,
7232890b98SMarc Dietrich 	KEY_LEFTALT,
7332890b98SMarc Dietrich 	KEY_SPACE,
7432890b98SMarc Dietrich 	KEY_CAPSLOCK,
7532890b98SMarc Dietrich 	KEY_F1,
7632890b98SMarc Dietrich 	KEY_F2,
7732890b98SMarc Dietrich 	KEY_F3,
7832890b98SMarc Dietrich 	KEY_F4,
7932890b98SMarc Dietrich 	KEY_F5,
80162c7d8cSMarc Dietrich 	/* 0x40 */
81162c7d8cSMarc Dietrich 	KEY_F6,
8232890b98SMarc Dietrich 	KEY_F7,
8332890b98SMarc Dietrich 	KEY_F8,
8432890b98SMarc Dietrich 	KEY_F9,
8532890b98SMarc Dietrich 	KEY_F10,
8632890b98SMarc Dietrich 	KEY_FN,
87162c7d8cSMarc Dietrich 	/* VK_SCROLL */
88162c7d8cSMarc Dietrich 	0,
8932890b98SMarc Dietrich 	KEY_KP7,
9032890b98SMarc Dietrich 	KEY_KP8,
9132890b98SMarc Dietrich 	KEY_KP9,
9232890b98SMarc Dietrich 	KEY_KPMINUS,
9332890b98SMarc Dietrich 	KEY_KP4,
9432890b98SMarc Dietrich 	KEY_KP5,
9532890b98SMarc Dietrich 	KEY_KP6,
9632890b98SMarc Dietrich 	KEY_KPPLUS,
9732890b98SMarc Dietrich 	KEY_KP1,
98162c7d8cSMarc Dietrich 	/* 0x50 */
99162c7d8cSMarc Dietrich 	KEY_KP2,
10032890b98SMarc Dietrich 	KEY_KP3,
10132890b98SMarc Dietrich 	KEY_KP0,
10232890b98SMarc Dietrich 	KEY_KPDOT,
103162c7d8cSMarc Dietrich 	/* VK_SNAPSHOT */
104162c7d8cSMarc Dietrich 	KEY_MENU,
10532890b98SMarc Dietrich 	KEY_POWER,
106162c7d8cSMarc Dietrich 	/* VK_OEM_102 */
107162c7d8cSMarc Dietrich 	KEY_102ND,
108162c7d8cSMarc Dietrich 	KEY_F11,
109162c7d8cSMarc Dietrich 	KEY_F12,
11032890b98SMarc Dietrich 	0,
11132890b98SMarc Dietrich 	0,
11232890b98SMarc Dietrich 	0,
11332890b98SMarc Dietrich 	0,
11432890b98SMarc Dietrich 	0,
11532890b98SMarc Dietrich 	0,
11632890b98SMarc Dietrich 	0,
117162c7d8cSMarc Dietrich 	/* 0x60 */
11832890b98SMarc Dietrich 	0,
11932890b98SMarc Dietrich 	0,
120162c7d8cSMarc Dietrich 	0,
121162c7d8cSMarc Dietrich 	KEY_SEARCH,
12232890b98SMarc Dietrich 	0,
12332890b98SMarc Dietrich 	0,
12432890b98SMarc Dietrich 	0,
12532890b98SMarc Dietrich 	0,
12632890b98SMarc Dietrich 	0,
12732890b98SMarc Dietrich 	0,
12832890b98SMarc Dietrich 	0,
12932890b98SMarc Dietrich 	0,
13032890b98SMarc Dietrich 	0,
13132890b98SMarc Dietrich 	0,
13232890b98SMarc Dietrich 	0,
13332890b98SMarc Dietrich 	0,
134162c7d8cSMarc Dietrich 	/* 0x70 */
13532890b98SMarc Dietrich 	0,
13632890b98SMarc Dietrich 	0,
137162c7d8cSMarc Dietrich 	0,
138162c7d8cSMarc Dietrich 	KEY_KP5,
13932890b98SMarc Dietrich 	0,
14032890b98SMarc Dietrich 	0,
14132890b98SMarc Dietrich 	0,
14232890b98SMarc Dietrich 	0,
14332890b98SMarc Dietrich 	0,
14432890b98SMarc Dietrich 	0,
14532890b98SMarc Dietrich 	0,
14632890b98SMarc Dietrich 	0,
14732890b98SMarc Dietrich 	0,
148162c7d8cSMarc Dietrich 	KEY_KP9,
14932890b98SMarc Dietrich };
15032890b98SMarc Dietrich 
15132890b98SMarc Dietrich static unsigned short extcode_tab_us102[] = {
15232890b98SMarc Dietrich 	0,
15332890b98SMarc Dietrich 	0,
15432890b98SMarc Dietrich 	0,
15532890b98SMarc Dietrich 	0,
15632890b98SMarc Dietrich 	0,
15732890b98SMarc Dietrich 	0,
15832890b98SMarc Dietrich 	0,
15932890b98SMarc Dietrich 	0,
16032890b98SMarc Dietrich 	0,
16132890b98SMarc Dietrich 	0,
16232890b98SMarc Dietrich 	0,
16332890b98SMarc Dietrich 	0,
16432890b98SMarc Dietrich 	0,
16532890b98SMarc Dietrich 	0,
16632890b98SMarc Dietrich 	0,
16732890b98SMarc Dietrich 	0,
168162c7d8cSMarc Dietrich 	/* 0x10 */
16932890b98SMarc Dietrich 	0,
17032890b98SMarc Dietrich 	0,
17132890b98SMarc Dietrich 	0,
17232890b98SMarc Dietrich 	0,
17332890b98SMarc Dietrich 	0,
17432890b98SMarc Dietrich 	0,
17532890b98SMarc Dietrich 	0,
17632890b98SMarc Dietrich 	0,
177162c7d8cSMarc Dietrich 	0,
178162c7d8cSMarc Dietrich 	/* VK_MEDIA_NEXT_TRACK */
17932890b98SMarc Dietrich 	0,
18032890b98SMarc Dietrich 	0,
181162c7d8cSMarc Dietrich 	0,
182162c7d8cSMarc Dietrich 	/* VK_RETURN */
183162c7d8cSMarc Dietrich 	0,
184162c7d8cSMarc Dietrich 	KEY_RIGHTCTRL,
18532890b98SMarc Dietrich 	0,
18632890b98SMarc Dietrich 	0,
187162c7d8cSMarc Dietrich 	/* 0x20 */
188162c7d8cSMarc Dietrich 	KEY_MUTE,
189162c7d8cSMarc Dietrich 	/* VK_LAUNCH_APP1 */
19032890b98SMarc Dietrich 	0,
191162c7d8cSMarc Dietrich 	/* VK_MEDIA_PLAY_PAUSE */
192162c7d8cSMarc Dietrich 	0,
193162c7d8cSMarc Dietrich 	0,
194162c7d8cSMarc Dietrich 	/* VK_MEDIA_STOP */
19532890b98SMarc Dietrich 	0,
19632890b98SMarc Dietrich 	0,
19732890b98SMarc Dietrich 	0,
19832890b98SMarc Dietrich 	0,
19932890b98SMarc Dietrich 	0,
20032890b98SMarc Dietrich 	0,
20132890b98SMarc Dietrich 	0,
20232890b98SMarc Dietrich 	0,
20332890b98SMarc Dietrich 	0,
20432890b98SMarc Dietrich 	0,
20532890b98SMarc Dietrich 	0,
20632890b98SMarc Dietrich 	0,
207162c7d8cSMarc Dietrich 	/* 0x30 */
208162c7d8cSMarc Dietrich 	KEY_VOLUMEUP,
209162c7d8cSMarc Dietrich 	0,
210162c7d8cSMarc Dietrich 	/* VK_BROWSER_HOME */
21132890b98SMarc Dietrich 	0,
21232890b98SMarc Dietrich 	0,
21332890b98SMarc Dietrich 	0,
214162c7d8cSMarc Dietrich 	/* VK_DIVIDE */
215162c7d8cSMarc Dietrich 	KEY_KPSLASH,
216162c7d8cSMarc Dietrich 	0,
217162c7d8cSMarc Dietrich 	/* VK_SNAPSHOT */
218162c7d8cSMarc Dietrich 	KEY_SYSRQ,
219162c7d8cSMarc Dietrich 	/* VK_RMENU */
220162c7d8cSMarc Dietrich 	KEY_RIGHTALT,
221162c7d8cSMarc Dietrich 	/* VK_OEM_NV_BACKLIGHT_UP */
222162c7d8cSMarc Dietrich 	0,
223162c7d8cSMarc Dietrich 	/* VK_OEM_NV_BACKLIGHT_DN */
224162c7d8cSMarc Dietrich 	0,
225162c7d8cSMarc Dietrich 	/* VK_OEM_NV_BACKLIGHT_AUTOTOGGLE */
226162c7d8cSMarc Dietrich 	0,
227162c7d8cSMarc Dietrich 	/* VK_OEM_NV_POWER_INFO */
228162c7d8cSMarc Dietrich 	0,
229162c7d8cSMarc Dietrich 	/* VK_OEM_NV_WIFI_TOGGLE */
230162c7d8cSMarc Dietrich 	0,
231162c7d8cSMarc Dietrich 	/* VK_OEM_NV_DISPLAY_SELECT */
232162c7d8cSMarc Dietrich 	0,
233162c7d8cSMarc Dietrich 	/* VK_OEM_NV_AIRPLANE_TOGGLE */
234162c7d8cSMarc Dietrich 	0,
235162c7d8cSMarc Dietrich 	/* 0x40 */
236162c7d8cSMarc Dietrich 	0,
237162c7d8cSMarc Dietrich 	KEY_LEFT,
238162c7d8cSMarc Dietrich 	0,
239162c7d8cSMarc Dietrich 	0,
240162c7d8cSMarc Dietrich 	0,
241162c7d8cSMarc Dietrich 	0,
24232890b98SMarc Dietrich 	KEY_CANCEL,
24332890b98SMarc Dietrich 	KEY_HOME,
24432890b98SMarc Dietrich 	KEY_UP,
245162c7d8cSMarc Dietrich 	KEY_PAGEUP,
24632890b98SMarc Dietrich 	0,
24732890b98SMarc Dietrich 	KEY_LEFT,
24832890b98SMarc Dietrich 	0,
24932890b98SMarc Dietrich 	KEY_RIGHT,
25032890b98SMarc Dietrich 	0,
25132890b98SMarc Dietrich 	KEY_END,
252162c7d8cSMarc Dietrich 	/* 0x50 */
253162c7d8cSMarc Dietrich 	KEY_DOWN,
254162c7d8cSMarc Dietrich 	KEY_PAGEDOWN,
25532890b98SMarc Dietrich 	KEY_INSERT,
25632890b98SMarc Dietrich 	KEY_DELETE,
25732890b98SMarc Dietrich 	0,
25832890b98SMarc Dietrich 	0,
25932890b98SMarc Dietrich 	0,
26032890b98SMarc Dietrich 	0,
26132890b98SMarc Dietrich 	0,
26232890b98SMarc Dietrich 	0,
26332890b98SMarc Dietrich 	0,
264162c7d8cSMarc Dietrich 	KEY_LEFTMETA,
265162c7d8cSMarc Dietrich 	0,
266162c7d8cSMarc Dietrich 	KEY_ESC,
267162c7d8cSMarc Dietrich 	KEY_KPMINUS,
26832890b98SMarc Dietrich 	0,
26932890b98SMarc Dietrich 	0,
27032890b98SMarc Dietrich 	0,
27132890b98SMarc Dietrich 	0,
27232890b98SMarc Dietrich 	0,
27332890b98SMarc Dietrich 	0,
274162c7d8cSMarc Dietrich 	/* VK_BROWSER_SEARCH */
275162c7d8cSMarc Dietrich 	0,
276162c7d8cSMarc Dietrich 	/* VK_BROWSER_FAVORITES */
277162c7d8cSMarc Dietrich 	0,
278162c7d8cSMarc Dietrich 	/* VK_BROWSER_REFRESH */
279162c7d8cSMarc Dietrich 	0,
280162c7d8cSMarc Dietrich 	/* VK_BROWSER_STOP */
281162c7d8cSMarc Dietrich 	0,
282162c7d8cSMarc Dietrich 	/* VK_BROWSER_FORWARD */
283162c7d8cSMarc Dietrich 	0,
284162c7d8cSMarc Dietrich 	/* VK_BROWSER_BACK */
285162c7d8cSMarc Dietrich 	0,
286162c7d8cSMarc Dietrich 	/* VK_LAUNCH_APP2 */
287162c7d8cSMarc Dietrich 	0,
288162c7d8cSMarc Dietrich 	/* VK_LAUNCH_MAIL */
289162c7d8cSMarc Dietrich 	0,
290162c7d8cSMarc Dietrich 	/* VK_LAUNCH_MEDIA_SELECT */
291162c7d8cSMarc Dietrich 	0,
29232890b98SMarc Dietrich };
29332890b98SMarc Dietrich 
29432890b98SMarc Dietrich static unsigned short *code_tabs[] = { code_tab_102us, extcode_tab_us102 };
295