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
11static 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
151static 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
294static unsigned short *code_tabs[] = { code_tab_102us, extcode_tab_us102 };
295