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