Loading...
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, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22 */
23
24static unsigned short code_tab_102us[] = {
25 KEY_GRAVE, // 0x00
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 KEY_Q, // 0x10
42 KEY_W,
43 KEY_E,
44 KEY_R,
45 KEY_T,
46 KEY_Y,
47 KEY_U,
48 KEY_I,
49 KEY_O,
50 KEY_P,
51 KEY_LEFTBRACE,
52 KEY_RIGHTBRACE,
53 KEY_ENTER,
54 KEY_LEFTCTRL,
55 KEY_A,
56 KEY_S,
57 KEY_D, // 0x20
58 KEY_F,
59 KEY_G,
60 KEY_H,
61 KEY_J,
62 KEY_K,
63 KEY_L,
64 KEY_SEMICOLON,
65 KEY_APOSTROPHE,
66 KEY_GRAVE,
67 KEY_LEFTSHIFT,
68 KEY_BACKSLASH,
69 KEY_Z,
70 KEY_X,
71 KEY_C,
72 KEY_V,
73 KEY_B, // 0x30
74 KEY_N,
75 KEY_M,
76 KEY_COMMA,
77 KEY_DOT,
78 KEY_SLASH,
79 KEY_RIGHTSHIFT,
80 KEY_KPASTERISK,
81 KEY_LEFTALT,
82 KEY_SPACE,
83 KEY_CAPSLOCK,
84 KEY_F1,
85 KEY_F2,
86 KEY_F3,
87 KEY_F4,
88 KEY_F5,
89 KEY_F6, // 0x40
90 KEY_F7,
91 KEY_F8,
92 KEY_F9,
93 KEY_F10,
94 KEY_FN,
95 0, //VK_SCROLL
96 KEY_KP7,
97 KEY_KP8,
98 KEY_KP9,
99 KEY_KPMINUS,
100 KEY_KP4,
101 KEY_KP5,
102 KEY_KP6,
103 KEY_KPPLUS,
104 KEY_KP1,
105 KEY_KP2, // 0x50
106 KEY_KP3,
107 KEY_KP0,
108 KEY_KPDOT,
109 KEY_MENU, //VK_SNAPSHOT
110 KEY_POWER,
111 KEY_102ND, //VK_OEM_102 henry+ 0x2B (43) BACKSLASH have been used,change to use 0X56 (86)
112 KEY_F11, //VK_F11
113 KEY_F12, //VK_F12
114 0,
115 0,
116 0,
117 0,
118 0,
119 0,
120 0,
121 0, // 60
122 0,
123 0,
124 KEY_SEARCH, // add search key map
125 0,
126 0,
127 0,
128 0,
129 0,
130 0,
131 0,
132 0,
133 0,
134 0,
135 0,
136 0,
137 0, // 70
138 0,
139 0,
140 KEY_KP5, //73 for JP keyboard '\' key, report 0x4c
141 0,
142 0,
143 0,
144 0,
145 0,
146 0,
147 0,
148 0,
149 0,
150 KEY_KP9, //7d for JP keyboard '|' key, report 0x49
151};
152
153static unsigned short extcode_tab_us102[] = {
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 0,
169 0,
170 0, // 0xE0 0x10
171 0,
172 0,
173 0,
174 0,
175 0,
176 0,
177 0,
178 0,
179 0, //VK_MEDIA_NEXT_TRACK,
180 0,
181 0,
182 0, //VK_RETURN,
183 KEY_RIGHTCTRL, //VK_RCONTROL,
184 0,
185 0,
186 KEY_MUTE, // 0xE0 0x20
187 0, //VK_LAUNCH_APP1
188 0, //VK_MEDIA_PLAY_PAUSE
189 0,
190 0, //VK_MEDIA_STOP
191 0,
192 0,
193 0,
194 0,
195 0,
196 0,
197 0,
198 0,
199 0,
200 0,
201 0,
202 KEY_VOLUMEUP, // 0xE0 0x30
203 0,
204 0, //VK_BROWSER_HOME
205 0,
206 0,
207 KEY_KPSLASH, //VK_DIVIDE
208 0,
209 KEY_SYSRQ, //VK_SNAPSHOT
210 KEY_RIGHTALT, //VK_RMENU
211 0, //VK_OEM_NV_BACKLIGHT_UP
212 0, //VK_OEM_NV_BACKLIGHT_DN
213 0, //VK_OEM_NV_BACKLIGHT_AUTOTOGGLE
214 0, //VK_OEM_NV_POWER_INFO
215 0, //VK_OEM_NV_WIFI_TOGGLE
216 0, //VK_OEM_NV_DISPLAY_SELECT
217 0, //VK_OEM_NV_AIRPLANE_TOGGLE
218 0, //0xE0 0x40
219 KEY_LEFT, //VK_OEM_NV_RESERVED henry+ for JP keyboard
220 0, //VK_OEM_NV_RESERVED
221 0, //VK_OEM_NV_RESERVED
222 0, //VK_OEM_NV_RESERVED
223 0, //VK_OEM_NV_RESERVED
224 KEY_CANCEL,
225 KEY_HOME,
226 KEY_UP,
227 KEY_PAGEUP, //VK_PRIOR
228 0,
229 KEY_LEFT,
230 0,
231 KEY_RIGHT,
232 0,
233 KEY_END,
234 KEY_DOWN, // 0xE0 0x50
235 KEY_PAGEDOWN, //VK_NEXT
236 KEY_INSERT,
237 KEY_DELETE,
238 0,
239 0,
240 0,
241 0,
242 0,
243 0,
244 0,
245 KEY_LEFTMETA, //VK_LWIN
246 0, //VK_RWIN
247 KEY_ESC, //VK_APPS
248 KEY_KPMINUS, //for power button workaround
249 0,
250 0,
251 0,
252 0,
253 0,
254 0,
255 0, //VK_BROWSER_SEARCH
256 0, //VK_BROWSER_FAVORITES
257 0, //VK_BROWSER_REFRESH
258 0, //VK_BROWSER_STOP
259 0, //VK_BROWSER_FORWARD
260 0, //VK_BROWSER_BACK
261 0, //VK_LAUNCH_APP2
262 0, //VK_LAUNCH_MAIL
263 0, //VK_LAUNCH_MEDIA_SELECT
264};
265
266static unsigned short* code_tabs[] = {code_tab_102us, extcode_tab_us102 };
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 };