hpckbdkeymap.h revision 1.39 1 /* $NetBSD: hpckbdkeymap.h,v 1.39 2006/03/04 13:52:38 peter Exp $ */
2
3 /*-
4 * Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 * must display the following acknowledgement:
17 * This product includes software developed by the NetBSD
18 * Foundation, Inc. and its contributors.
19 * 4. Neither the name of The NetBSD Foundation nor the names of its
20 * contributors may be used to endorse or promote products derived
21 * from this software without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
24 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
25 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
26 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
27 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
34 */
35
36 #define UNK 255 /* unknown */
37 #define IGN 254 /* ignore */
38 #define SPL 253 /* special key */
39 #define KC(n) KS_KEYCODE(n)
40 #define CMDMAP(map) { map, (sizeof(map)/sizeof(keysym_t)) }
41 #define NULLCMDMAP { NULL, 0 }
42
43 #define KEY_SPECIAL_OFF 0
44 #define KEY_SPECIAL_LIGHT 1
45
46 const uint8_t default_keymap[] = {
47 /* 0 1 2 3 4 5 6 7 */
48 /* 0 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
49 /* 1 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
50 /* 2 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
51 /* 3 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
52 /* 4 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
53 /* 5 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
54 /* 6 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
55 /* 7 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
56 /* 8 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
57 /* 9 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
58 /*10 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
59 /*11 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
60 /*12 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
61 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
62 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
63 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
64 };
65
66 const int default_special_keymap[] = {
67 [KEY_SPECIAL_OFF] = -1,
68 [KEY_SPECIAL_LIGHT] = -1
69 };
70
71 #ifdef hpcmips
72 const uint8_t tc5165_mobilon_keymap[] = {
73 /* 0 1 2 3 4 5 6 7 */
74 /* 0 */ 37 , 45 , 44 , UNK, 9 , 51 , 23 , UNK,
75 /* 1 */ UNK, 56 , UNK, UNK, UNK, UNK, UNK, UNK,
76 /* 2 */ UNK, UNK, 29 , UNK, UNK, UNK, UNK, UNK,
77 /* 3 */ 24 , 203, UNK, 38 , 10 , 27 , 13 , UNK,
78 /* 4 */ 40 , UNK, UNK, 39 , 26 , 53 , 11 , 12 ,
79 /* 5 */ UNK, UNK, UNK, 53 , 25 , UNK, UNK, SPL, /* Light */
80 /* 6 */ 208, UNK, UNK, UNK, 52 , UNK, 43 , 14 ,
81 /* 7 */ 205, 200, UNK, UNK, SPL, UNK, UNK, 28 , /* Off key */
82 /* 8 */ UNK, 41 , 59 , 15 , 2 , UNK, UNK, UNK,
83 /* 9 */ 63 , 64 , 1 , UNK, 65 , 16 , 17 , UNK,
84 /*10 */ 60 , UNK, 61 , 62 , 3 , UNK, UNK, UNK,
85 /*11 */ UNK, UNK, UNK, 42 , 58 , UNK, UNK, UNK,
86 /*12 */ 47 , 33 , 46 , 5 , 4 , 18 , 19 , UNK,
87 /*13 */ 34 , 35 , 20 , 48 , 6 , 7 , 21 , 49 ,
88 /*14 */ 22 , 31 , 32 , 36 , 8 , 30 , 50 , 57 ,
89 /*15 */ UNK, IGN, UNK, UNK, UNK, UNK, UNK, UNK /* Windows key */
90 };
91
92 const int tc5165_mobilon_special_keymap[] = {
93 [KEY_SPECIAL_OFF] = 60,
94 [KEY_SPECIAL_LIGHT] = 47
95 };
96
97 const uint8_t tc5165_telios_jp_keymap[] = {
98 /* 0 1 2 3 4 5 6 7 */
99 /* 0 */ 58, 15, IGN, 1, IGN, IGN, IGN, IGN,
100 /* 1 */ IGN, IGN, IGN, IGN, 54, 42, IGN, IGN,
101 /* 2 */ 31, 18, 4, IGN, IGN, 32, 45, 59,
102 /* 3 */ 33, 19, 5, 61, IGN, 46, 123, 60,
103 /* 4 */ 35, 21, 8, 64, IGN, 48, 49, 63,
104 /* 5 */ 17, 16, 3, IGN, 2, 30, 44, 41,
105 /* 6 */ IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN,
106 /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, 56, IGN,
107 /* 8 */ 34, 20, 7, IGN, 6, 47, 57, 62,
108 /* 9 */ IGN, IGN, IGN, IGN, IGN, IGN, 29, IGN,
109 /*10 */ 27, 125, 13, 203, 208, 40, 115, 68,
110 /*11 */ 39, 26, 25, 112, 12, 52, 53, 67,
111 /*12 */ 37, 24, 11, 121, 10, 38, 51, 66,
112 /*13 */ 23, 22, 9, IGN, IGN, 36, 50, 65,
113 /*14 */ 28, 43, 14, 200, 205, IGN, IGN, 211,
114 /*15 */ IGN, IGN, IGN, IGN, IGN, IGN, 184, IGN
115 };
116
117 static const keysym_t tc5165_telios_jp_cmdmap[] = {
118 /* pos command normal shifted */
119 KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key,
120 KC(205), KS_Cmd_BrightnessUp, KS_Right,
121 KC(203), KS_Cmd_BrightnessDown, KS_Left,
122 KC(57), KS_Cmd_BacklightToggle,KS_space,
123 };
124
125 const uint8_t tc5165_compaq_c_jp_keymap[] = {
126 /* 0 1 2 3 4 5 6 7 */
127 /* 0 */ 38, 50, 49, 48, 47, 46, 45, 44,
128 /* 1 */ 56, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
129 /* 2 */ 13, IGN, 112, 121, 123, 41, 28, 57,
130 /* 3 */ 205, 203, 208, 200, 39, 53, 52, 51,
131 /* 4 */ 24, 25, 40, IGN, 43, 26, 115, 58,
132 /* 5 */ 54, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
133 /* 6 */ IGN, IGN, IGN, SPL, IGN, IGN, IGN, IGN, /* Light */
134 /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
135 /* 8 */ 42, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
136 /* 9 */ 29, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
137 /*10 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
138 /*11 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
139 /*12 */ 14, 27, 12, 11, 10, 15, 1, 125,
140 /*13 */ 9, 8, 7, 6, 5, 4, 3, 2,
141 /*14 */ 23, 22, 21, 20, 19, 18, 17, 16,
142 /*15 */ 37, 36, 35, 34, 33, 32, 31, 30
143 };
144
145 const int tc5165_compaq_c_jp_special_keymap[] = {
146 [KEY_SPECIAL_OFF] = -1, /* don't have off button */
147 [KEY_SPECIAL_LIGHT] = 51
148 };
149
150 const uint8_t m38813c_keymap[] = {
151 /* 0 1 2 3 4 5 6 7 */
152 /* 0 */ 0, 1, 2, 3, 4, 5, 6, 7,
153 /* 1 */ 8, 9, 10, 11, 12, 13, 14, 15,
154 /* 2 */ 16, 17, 18, 19, 20, 21, 22, 23,
155 /* 3 */ 24, 25, 26, 27, 28, 29, 30, 31,
156 /* 4 */ 32, 33, 34, 35, 36, 37, 38, 39,
157 /* 5 */ 40, 41, 42, 43, 44, 45, 46, 47,
158 /* 6 */ 48, 49, 50, 51, 52, 53, 54, 55,
159 /* 7 */ 56, 57, 58, 59, 60, 61, 62, 63,
160 /* 8 */ 64, 65, 66, 67, 68, 69, 70, 71,
161 /* 9 */ 200, 73, 74, 203, 76, 205, 78, 79,
162 /*10 */ 208, 81, 82, 83, 84, 85, 86, 87,
163 /*11 */ 88, 89, 90, 91, 92, 93, 94, 95,
164 /*12 */ 96, 97, 98, 99, 100, 101, 102, 103,
165 /*13 */ 104, 105, 106, 107, 108, 109, 110, 111,
166 /*14 */ 112, 113, 114, 115, 116, 117, 118, 119,
167 /*15 */ 120, 121, 122, 123, 124, 125, 126, 127
168 };
169
170 /* NEC MobileGearII MCR series (Japan) */
171 static uint8_t mcr_jp_keytrans[] = {
172 /*00 right ent p . y b z space */
173 /*08 down / o , t v a nfer */
174 /*10 left \ i m r c w menu */
175 /*18 ^ - u - e x q 1 */
176 /*20 pgdn h/z 0 l : g tab f1 */
177 /*28 xfer ; 9 n 5 f 2 k */
178 /*30 up [ 8 j 4 d 6 - */
179 /*38 - @ 7 h 3 ] s - */
180 /*40 caps - - - bs fnc f8 f3 */
181 /*48 - alt - - | k/h f7 f4 */
182 /*50 - - ctrl - f10 pgup f6 f2 */
183 /*58 - - - shift del f9 f5 esc */
184 /*----------------------------------------------------------------------*/
185 /*00*/ 205, 28, 25, 52, 21, 48, 44, 57,
186 /*08*/ 208, 53, 24, 51, 20, 47, 30, 123,
187 /*10*/ 203, 115, 23, 50, 19, 46, 17, 221,
188 /*18*/ 13, IGN, 22, IGN, 18, 45, 16, 2,
189 /*20*/ 81, 41, 11, 38, 40, 34, 15, 59,
190 /*28*/ 121, 39, 10, 49, 6, 33, 3, 37,
191 /*30*/ 200, 27, 9, 36, 5, 32, 7, IGN,
192 /*38*/ 12, 26, 8, 35, 4, 43, 31, IGN,
193 /*40*/ 58, IGN, IGN, IGN, 14, 184, 66, 61,
194 /*48*/ IGN, 56, IGN, IGN, 125, 112, 65, 62,
195 /*50*/ IGN, IGN, 29, IGN, 68, 73, 64, 60,
196 /*58*/ IGN, IGN, IGN, 42, 14, 67, 63, 1,
197 };
198
199 static const keysym_t mcr_jp_cmdmap[] = {
200 /* pos command normal shifted */
201 KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key,
202 KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9,
203 KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3,
204 KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
205 KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
206 KC(57), KS_Cmd_BacklightToggle,KS_space,
207 };
208
209 /* IBM WorkPad z50 */
210 static uint8_t z50_keytrans[] = {
211 /*00 f1 f3 f5 f7 f9 - - f11 */
212 /*08 f2 f4 f6 f8 f10 - - f12 */
213 /*10 ' [ - 0 p ; up / */
214 /*18 - - - 9 o l . - */
215 /*20 left ] = 8 i k , - */
216 /*28 h y 6 7 u j m n */
217 /*30 - bs num del - \ ent sp */
218 /*38 g t 5 4 r f v b */
219 /*40 - - - 3 e d c right */
220 /*48 - - - 2 w s x down */
221 /*50 esc tab ~ 1 q a z - */
222 /*58 menu Ls Lc Rc La Ra Rs - */
223 /*----------------------------------------------------------------------*/
224 /*00*/ 59, 61, 63, 65, 67, IGN, IGN, 87,
225 /*08*/ 60, 62, 64, 66, 68, IGN, IGN, 88,
226 /*10*/ 40, 26, 12, 11, 25, 39, 200, 53,
227 /*18*/ IGN, IGN, IGN, 10, 24, 38, 52, IGN,
228 /*20*/ 203, 27, 13, 9, 23, 37, 51, IGN,
229 /*28*/ 35, 21, 7, 8, 22, 36, 50, 49,
230 /*30*/ IGN, 14, 69, 14, IGN, 43, 28, 57,
231 /*38*/ 34, 20, 6, 5, 19, 33, 47, 48,
232 /*40*/ IGN, IGN, IGN, 4, 18, 32, 46, 205,
233 /*48*/ IGN, IGN, IGN, 3, 17, 31, 45, 208,
234 /*50*/ 1, 15, 41, 2, 16, 30, 44, IGN,
235 /*58*/ 221, 42, 29, 29, 56, 56, 54, IGN,
236 };
237
238 /* Sharp Tripad PV6000 and VADEM CLIO */
239 static uint8_t tripad_keytrans[] = {
240 /*00 lsh tab ` q esc 1 WIN - */
241 /*08 ctrl z x a s w e 2 */
242 /*10 lalt sp c v d f r 3 */
243 /*18 b n g h t y 4 5 */
244 /*20 m , j k u i 6 7 */
245 /*28 Fn caps l o p 8 9 0 */
246 /*30 [ ] la . / ; - = */
247 /*38 rsh ra ua da ' ent \ del */
248 /*40 - - - - - - - - */
249 /*48 - - - - - - - - */
250 /*50 - - - - - - - - */
251 /*58 - - - - - - - - */
252 /*----------------------------------------------------------------------*/
253 /*00*/ 42, 15, 41, 16, 1, 2, 104, 221,
254 /*08*/ 29, 44, 45, 30, 31, 17, 18, 3,
255 /*10*/ 56, 57, 46, 47, 32, 33, 19, 4,
256 /*18*/ 48, 49, 34, 35, 20, 21, 5, 6,
257 /*20*/ 50, 51, 36, 37, 22, 23, 7, 8,
258 /*28*/ 105, 58, 38, 24, 25, 9, 10, 11,
259 /*30*/ 26, 27, 203, 52, 53, 39, 12, 13,
260 /*38*/ 54, 205, 200, 208, 40, 28, 43, 14,
261 /*40*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
262 /*48*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
263 /*50*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
264 /*58*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
265 };
266
267 /* NEC Mobile Gear MCCS series */
268 static uint8_t mccs_keytrans[] = {
269 /*00 caps cr rar p . y b z */
270 /*08 alt [ dar o , t v a */
271 /*10 zen @ lar i m r c w */
272 /*18 lctrl ; uar u n e x q */
273 /*20 lshft bs \ 0 l 6 g tab */
274 /*28 nconv | / 9 k 5 f 2 */
275 /*30 conv = ] 8 j 4 d 1 */
276 /*38 hira - ' 7 h 3 s esc */
277 /*40 - sp - - - - - - */
278 /*48 - - - - - - - - */
279 /*50 - - - - - - - - */
280 /*58 - - - - - - - - */
281 /*----------------------------------------------------------------------*/
282 /*00*/ 58, 28, 205, 25, 52, 21, 48, 44,
283 /*08*/ 56, 27, 208, 24, 51, 20, 47, 30,
284 /*10*/ 41, 26, 203, 23, 50, 19, 46, 17,
285 /*18*/ 29, 39, 200, 22, 49, 18, 45, 16,
286 /*20*/ 42, 14, 115, 11, 38, 7, 34, 15,
287 /*28*/ 123, 125, 53, 10, 37, 6, 33, 3,
288 /*30*/ 121, 13, 43, 9, 36, 5, 32, 2,
289 /*38*/ 112, 12, 40, 8, 35, 4, 31, 1,
290 /*40*/ IGN, 57, IGN, IGN, IGN, IGN, IGN, IGN,
291 /*48*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
292 /*50*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
293 /*58*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
294 };
295
296 static const keysym_t mccs_cmdmap[] = {
297 /* pos command normal shifted */
298 KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
299 KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
300 KC(57), KS_Cmd_BacklightToggle,KS_space,
301 };
302
303 static uint8_t mobilepro_keytrans[] = {
304 /*00 space ] \ / left down enter l */
305 /*08 - [ ' ; right up . o */
306 /*10 - - - Windows v c x z */
307 /*18 - = \- ` f d s a */
308 /*20 8 7 6 5 r e w q */
309 /*28 , m n b - - 0 9 */
310 /*30 k j h g 4 3 2 1 */
311 /*38 i u y t - caps del esc */
312 /*40 alt_R - - - BS p TAB Fn */
313 /*48 - alt_L - - pgdn pgup f10 f9 */
314 /*50 - - ctrl - f8 f7 f6 f5 */
315 /*58 - - - shift f4 f3 f2 f1 */
316 /*----------------------------------------------------------------------*/
317 /*00*/ 57, 27, 43, 53, 203, 208, 28, 38,
318 /*08*/ IGN, 26, 40, 39, 205, 200, 52, 24,
319 /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44,
320 /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30,
321 /*20*/ 9, 8, 7, 6, 19, 18, 17, 16,
322 /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10,
323 /*30*/ 37, 36, 35, 34, 5, 4, 3, 2,
324 /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1,
325 /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, 219,
326 /*48*/ IGN, 56, IGN, IGN, 81, 73, 68, 67,
327 /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63,
328 /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59,
329 };
330
331 static const keysym_t mobilepro_cmdmap[] = {
332 /* pos command normal shifted */
333 KC(219), KS_Cmd, KS_Meta_L, KS_Multi_key,
334 KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9,
335 KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3,
336 KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
337 KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
338 KC(57), KS_Cmd_BacklightToggle,KS_space,
339 };
340
341 /* NEC MobilePro 750c by "Castor Fu" <castor (at) geocast.com> */
342 static uint8_t mobilepro750c_keytrans[] = {
343 /*00 right \ p . y b z space */
344 /*08 down / o , t v a - */
345 /*10 left enter i m r c w Win */
346 /*18 num ] u n e x q caps */
347 /*20 pgdn - 0 l : g tab esc */
348 /*28 - ; 9 k 5 f 2 ` */
349 /*30 up [ 8 j 4 d 1 ' */
350 /*38 - @ 7 h 3 s del - */
351 /*40 shift - - - bs f12 f8 f4 */
352 /*48 - alt - - | f11 f7 f3 */
353 /*50 - - ctrl - f10 f10 f6 f2 */
354 /*58 - - - shift del f9 f5 f1 */
355 /*----------------------------------------------------------------------*/
356 /*00*/ 205, 43, 25, 52, 21, 48, 44, 57,
357 /*08*/ 208, 53, 24, 51, 20, 47, 30, IGN,
358 /*10*/ 203, 28, 23, 50, 19, 46, 17, 221,
359 /*18*/ 69, 27, 22, 49, 18, 45, 16, 58,
360 /*20*/ 81, IGN, 11, 38, 7, 34, 15, 1,
361 /*28*/ IGN, 39, 10, 37, 6, 33, 3, 41,
362 /*30*/ 200, 26, 9, 36, 5, 32, 2, 40,
363 /*38*/ 12, 26, 8, 35, 4, 31, 83, IGN,
364 /*40*/ 42, IGN, IGN, IGN, 14, 88, 66, 62,
365 /*48*/ IGN, 56, IGN, IGN, 125, 87, 65, 61,
366 /*50*/ IGN, IGN, 29, IGN, 68, 68, 64, 60,
367 /*58*/ IGN, IGN, IGN, 42, 13, 67, 63, 59,
368 };
369
370 /* NEC MobilePro 780 */
371 static uint8_t mobilepro780_keytrans[] = {
372 /*00 space ] \ / left right enter l */
373 /*08 - [ ' ; up down . o */
374 /*10 - - - Windows v c x z */
375 /*18 - = \- ` f d s a */
376 /*20 8 7 6 5 r e w q */
377 /*28 , m n b - - 0 9 */
378 /*30 k j h g 4 3 2 1 */
379 /*38 i u y t - caps del esc */
380 /*40 alt_R - - - BS p TAB Fn */
381 /*48 - alt_L - - f12 f11 f10 f9 */
382 /*50 - - ctrl - f8 f7 f6 f5 */
383 /*58 - - - shift f4 f3 f2 f1 */
384 /*----------------------------------------------------------------------*/
385 /*00*/ 57, 27, 43, 53, 203, 205, 28, 38,
386 /*08*/ IGN, 26, 40, 39, 200, 208, 52, 24,
387 /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44,
388 /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30,
389 /*20*/ 9, 8, 7, 6, 19, 18, 17, 16,
390 /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10,
391 /*30*/ 37, 36, 35, 34, 5, 4, 3, 2,
392 /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1,
393 /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, IGN,
394 /*48*/ IGN, 56, IGN, IGN, 88, 87, 68, 67,
395 /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63,
396 /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59,
397 };
398
399 /* NEC MobilePro 8x0 */
400 static uint8_t mobilepro8x0_keytrans[] = {
401 /*00 space ] \ / left right enter l */
402 /*08 - [ ' ; up down . o */
403 /*10 - - - Windows v c x z */
404 /*18 - = \- ` f d s a */
405 /*20 8 7 6 5 r e w q */
406 /*28 , m n b - - 0 9 */
407 /*30 k j h g 4 3 2 1 */
408 /*38 i u y t - caps del esc */
409 /*40 alt_R - - - BS p TAB Fn */
410 /*48 - alt_L - - pgdn pgup f10 f9 */
411 /*50 - - ctrl - f8 f7 f6 f5 */
412 /*58 - - - shift f4 f3 f2 f1 */
413 /*----------------------------------------------------------------------*/
414 /*00*/ 57, 27, 43, 53, 203, 205, 28, 38,
415 /*08*/ IGN, 26, 40, 39, 200, 208, 52, 24,
416 /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44,
417 /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30,
418 /*20*/ 9, 8, 7, 6, 19, 18, 17, 16,
419 /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10,
420 /*30*/ 37, 36, 35, 34, 5, 4, 3, 2,
421 /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1,
422 /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, 219,
423 /*48*/ IGN, 56, IGN, IGN, 81, 73, 68, 67,
424 /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63,
425 /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59,
426 };
427
428 static const keysym_t mobilepro8x0_cmdmap[] = {
429 /* pos command normal shifted */
430 KC(219), KS_Cmd, KS_Meta_L, KS_Multi_key,
431 KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9,
432 KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3,
433 KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
434 KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
435 KC(57), KS_Cmd_BacklightToggle,KS_space,
436 };
437
438 /* FUJITSU INTERTOP CX300 */
439 static uint8_t intertop_keytrans[] = {
440 /*00 space a2 1 tab enter caps left zenkaku */
441 /*08 hiraga a1 2 q - a fnc esc */
442 /*10 ins w 3 s del ] down x */
443 /*18 z e 4 d a10 \ right c */
444 /*20 backsla r ; f a9 @ ^ v */
445 /*28 / t 5 g a8 p - b */
446 /*30 . y 6 h a7 l 0 n */
447 /*38 - u 7 j a5 o bs m */
448 /*40 - a3 8 a4 - i k , */
449 /*48 num : 9 [ a6 - up - */
450 /*50 - - - - shift_L - - shift_R */
451 /*58 ctrl win muhenka henkan alt - - - */
452 /*----------------------------------------------------------------------*/
453 /*00*/ 57, 60, 2, 15, 28, 58, 205, 41,
454 /*08*/ 112, 59, 3, 16, IGN, 30, 56, 1,
455 /*10*/ 210, 17, 4, 31, 83, 43, 208, 45,
456 /*18*/ 44, 18, 5, 32, 68, 125, 203, 46,
457 /*20*/ 115, 19, 39, 33, 67, 26, 13, 47,
458 /*28*/ 53, 20, 6, 34, 66, 25, 12, 48,
459 /*30*/ 52, 21, 7, 35, 65, 38, 11, 49,
460 /*38*/ IGN, 22, 8, 36, 63, 24, 14, 50,
461 /*40*/ IGN, 61, 9, 62, IGN, 23, 37, 51,
462 /*48*/ 69, 40, 10, 27, 64, IGN, 200, IGN,
463 /*50*/ IGN, IGN, IGN, IGN, 42, IGN, IGN, 54,
464 /*58*/ 29, 221, 123, 121, 184, IGN, IGN, IGN,
465 };
466
467 /* DoCoMo sigmarion (Japan) */
468 static uint8_t sigmarion_jp_keytrans[] = {
469 /*00 right ent p . y b z space */
470 /*08 down / o , t v a nfer */
471 /*10 left \ i m r c w menu */
472 /*18 | - u - e x q 1 */
473 /*20 pgdn h/z 0 l : g tab f1 */
474 /*28 xfer ; 9 n 5 f 2 k */
475 /*30 up [ 8 j 4 d 6 - */
476 /*38 - @ 7 h 3 ] s - */
477 /*40 caps - - - bs fnc f8 f3 */
478 /*48 - alt - - ^ k/h f7 f4 */
479 /*50 - - ctrl - f10 pgup f6 f2 */
480 /*58 - - - shift del f9 f5 esc */
481 /*----------------------------------------------------------------------*/
482 /*00*/ 205, 28, 25, 52, 21, 48, 44, 57,
483 /*08*/ 208, 53, 24, 51, 20, 47, 30, 123,
484 /*10*/ 203, 115, 23, 50, 19, 46, 17, 221,
485 /*18*/ 125, IGN, 22, IGN, 18, 45, 16, 2,
486 /*20*/ 81, 41, 11, 38, 40, 34, 15, IGN,
487 /*28*/ 121, 39, 10, 49, 6, 33, 3, 37,
488 /*30*/ 200, 27, 9, 36, 5, 32, 7, IGN,
489 /*38*/ 12, 26, 8, 35, 4, 43, 31, IGN,
490 /*40*/ 58, IGN, IGN, IGN, 14, 184, 66, IGN,
491 /*48*/ IGN, 56, IGN, IGN, 13, 112, 65, IGN,
492 /*50*/ IGN, IGN, 29, IGN, 68, 73, 64, IGN,
493 /*58*/ IGN, IGN, IGN, 42, 14, 67, IGN, 1,
494 };
495
496 static const keysym_t sigmarion_cmdmap[] = {
497 /* pos command normal shifted */
498 KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key,
499 KC(64), KS_Cmd_Screen0, KS_f6, KS_f1,
500 KC(65), KS_Cmd_Screen1, KS_f7, KS_f2,
501 KC(66), KS_Cmd_Screen2, KS_f8, KS_f3,
502 KC(67), KS_Cmd_Screen3, KS_f9, KS_f4,
503 KC(68), KS_Cmd_Screen4, KS_f10, KS_f5,
504 KC(27), KS_Cmd_BrightnessUp, KS_bracketleft, KS_braceleft,
505 KC(43), KS_Cmd_BrightnessDown, KS_bracketright,KS_braceright,
506 KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less,
507 KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater,
508 KC(57), KS_Cmd_BacklightToggle,KS_space,
509 };
510
511 /* NTT DoCoMo Pocket PostPet (Japan) */
512 static uint8_t pocketpostpet_keytrans[] = {
513 /*00 esc 1 q a ctrl - down left */
514 /*08 tab 2 w s z - right up */
515 /*10 pgup 3 e d x shift - - */
516 /*18 pgdn 4 r f c alt - - */
517 /*20 f5 5 t g v nfer - - */
518 /*28 f6 6 y h b - - - */
519 /*30 f7 7 u j n space - - */
520 /*38 f8 8 i k m - - - */
521 /*40 f9 9 o l , xfer - - */
522 /*48 f10 0 p ; . - - - */
523 /*50 \| minus @ : / ent - - */
524 /*58 bs ^ [ ] \_ del - - */
525 /* MailCheck -> tab */
526 /* Prev -> pgup */
527 /* Next -> pgdn */
528 /* tab -> ctrl */
529 /* h/z -> menu */
530 /* k/h -> alt */
531 /* knj -> nfer */
532 /* eng -> xfer */
533 /*----------------------------------------------------------------------*/
534 /*00*/ 1, 2, 16, 30, 29, UNK, 208, 203,
535 /*08*/ 15, 3, 17, 31, 44, UNK, 205, 200,
536 /*10*/ 73, 4, 18, 32, 45, 42, UNK, UNK,
537 /*08*/ 81, 5, 19, 33, 46, 56, UNK, UNK,
538 /*20*/ 63, 6, 20, 34, 47, 123, UNK, UNK,
539 /*28*/ 64, 7, 21, 35, 48, UNK, UNK, UNK,
540 /*30*/ 65, 8, 22, 36, 49, 57, UNK, UNK,
541 /*38*/ 66, 9, 23, 37, 50, UNK, UNK, UNK,
542 /*40*/ 67, 10, 24, 38, 51, 121, UNK, UNK,
543 /*48*/ 68, 11, 25, 39, 52, UNK, UNK, UNK,
544 /*50*/ 125, 12, 26, 40, 53, 28, UNK, UNK,
545 /*58*/ 14, 13, 27, 43, 115, 14, UNK, UNK,
546 };
547 #endif /* hpcmips */
548
549 #ifdef hpcsh
550 /*
551 * HP Jornada 680/690
552 */
553 /* Japanese */
554 const uint8_t jornada6x0_jp_keytrans[] = {
555 /* 0 1 2 3 4 5 6 7 */
556 /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK, /* ctrl 29 */
557 /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK, /* shift L 42 */
558 /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK,
559 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203,
560 /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 115, UNK,
561 /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, 121, UNK,
562 /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 , /* alt 56 */
563 /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 123,
564 /* 8 */ IGN, 53 , 39 , 25 , 11 , 200, UNK, 208,
565 /* 9 */ 112, 40 , 27 , 26 , 12 , 125, UNK, 205,
566 /*10 */ 41 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /* shift R 54 */
567 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
568 /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 221, UNK,
569 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
570 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
571 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
572 };
573
574 /* US/UK - Fn to the left of the space bar and missing few keys */
575 const uint8_t jornada6x0_us_keytrans[] = {
576 /* 0 1 2 3 4 5 6 7 */
577 /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK,
578 /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK,
579 /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK,
580 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
581 /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 53 , UNK,
582 /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, UNK, UNK,
583 /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 ,
584 /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 184,
585 /* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208,
586 /* 9 */ 68 , 40 , UNK, 43 , 12 , UNK, UNK, 205,
587 /*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK,
588 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
589 /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 219, UNK,
590 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
591 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
592 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
593 };
594
595 /* International - AltGr to the right and extra keys in three middle rows */
596 const uint8_t jornada6x0_intl_keytrans[] = {
597 /* 0 1 2 3 4 5 6 7 */
598 /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK,
599 /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK,
600 /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK,
601 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
602 /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 184, UNK,
603 /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, UNK, UNK,
604 /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 ,
605 /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 41 ,
606 /* 8 */ 67 , 53 , 39 , 25 , 11 , 200, UNK, 208,
607 /* 9 */ 68 , 40 , 27 , 26 , 12 , UNK, UNK, 205,
608 /*10 */ 87 , 28 , 43 , 14 , 13 , 54 , UNK, UNK,
609 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
610 /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 219, UNK,
611 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
612 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
613 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
614 };
615
616 const int jornada6x0_special_keymap[] = {
617 [KEY_SPECIAL_OFF] = -1,
618 [KEY_SPECIAL_LIGHT] = -1
619 };
620
621
622 /*
623 * HP 620LX
624 */
625 /* Japanese */
626 const uint8_t hp620lx_jp_keytrans[] = {
627 /* 0 1 2 3 4 5 6 7 */
628 /* 0 */ 2 , 16 , 112, UNK, IGN, UNK, 42 , 30 , /* REC button */
629 /* 1 */ 3 , 17 , 58 , 44 , UNK, 45 , 15 , 31 ,
630 /* 2 */ 4 , 18 , UNK, 56 , 59 , 46 , 1 , 32 ,
631 /* 3 */ 5 , 19 , UNK, UNK, 60 , 123, UNK, 33 ,
632 /* 4 */ 6 , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
633 /* 5 */ 7 , 21 , UNK, 121, 62 , 49 , UNK, 35 ,
634 /* 6 */ 8 , 22 , UNK, 125, 63 , 50 , UNK, 36 ,
635 /* 7 */ 9 , 23 , 52 , 115, 64 , 51 , UNK, 37 ,
636 /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
637 /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
638 /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 41 , 43 ,
639 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
640 /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
641 /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
642 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
643 /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN /* LED button */
644 };
645
646 /* Other models */
647 const uint8_t hp620lx_intl_keytrans[] = {
648 /* 0 1 2 3 4 5 6 7 */
649 /* 0 */ 2 , 16 , 219, UNK, IGN, UNK, 42 , 30 , /* REC button */
650 /* 1 */ 3 , 17 , 15 , 44 , UNK, 45 , 41 , 31 ,
651 /* 2 */ 4 , 18 , UNK, 69 , 59 , 46 , 1 , 32 ,
652 /* 3 */ 5 , 19 , UNK, UNK, 60 , 56 , UNK, 33 ,
653 /* 4 */ 6 , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
654 /* 5 */ 7 , 21 , UNK, UNK, 62 , 49 , UNK, 35 ,
655 /* 6 */ 8 , 22 , UNK, 184, 63 , 50 , UNK, 36 ,
656 /* 7 */ 9 , 23 , 52 , 211, 64 , 51 , UNK, 37 ,
657 /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
658 /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
659 /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 54 , 43 ,
660 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
661 /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
662 /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
663 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
664 /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN /* LED button */
665 };
666
667 const int hp620lx_special_keymap[] = {
668 [KEY_SPECIAL_OFF] = 88,
669 [KEY_SPECIAL_LIGHT] = 120
670 };
671
672
673 /*
674 * HITACHI PERSONA HPW50PAD
675 */
676 /* Japanese */
677 const uint8_t persona_hpw50pad_jp_keytrans[] = {
678 /* 0 1 2 3 4 5 6 7 */
679 /* 0 */ 59 , 61 , 63 , 65 , 67 , SPL, UNK, UNK, /* ON button */
680 /* 1 */ 29 , UNK, 47 , 48 , 121, UNK, UNK, UNK,
681 /* 2 */ 1 , UNK, 34 , 51 , 112, UNK, UNK, UNK,
682 /* 3 */ 41 , 221, 35 , 37 , 52 , UNK, UNK, UNK,
683 /* 4 */ 45 , 58 , 22 , 38 , 40 , 42 , UNK, UNK,
684 /* 5 */ 30 , 16 , 21 , 24 , 28 , 54 , UNK, UNK,
685 /* 6 */ 17 , 4 , UNK, 10 , 12 , 205, UNK, UNK,
686 /* 7 */ 31 , 18 , 7 , 25 , 13 , 83 , UNK, UNK,
687 /* 8 */ 60 , 62 , 64 , 66 , 68 , UNK, UNK, UNK,
688 /* 9 */ UNK, 123, 49 , 53 , 203, UNK, UNK, UNK,
689 /*10 */ 56 , 46 , 50 , 57 , 208, UNK, UNK, UNK,
690 /*11 */ 15 , 33 , 36 , 39 , 43 , UNK, UNK, UNK,
691 /*12 */ 44 , 20 , 23 , 26 , 27 , UNK, UNK, UNK,
692 /*13 */ 2 , 6 , 9 , 115, 200, UNK, UNK, UNK,
693 /*14 */ 3 , 5 , UNK, UNK, 125, UNK, UNK, UNK,
694 /*15 */ 32 , 19 , 8 , 11 , 14 , UNK, UNK, UNK,
695 };
696
697 const int persona_hpw50pad_special_keymap[] = {
698 [KEY_SPECIAL_OFF] = 5,
699 [KEY_SPECIAL_LIGHT] = -1
700 };
701
702 static const keysym_t persona_hpw50pad_jp_keydesc[] = {
703 /* pos command normal shifted */
704 KC(63), KS_Cmd_ContrastDown, KS_f5,
705 KC(64), KS_Cmd_ContrastUp, KS_f6,
706 KC(65), KS_Cmd_BrightnessDown, KS_f7,
707 KC(66), KS_Cmd_BrightnessUp, KS_f8,
708
709 KC(200),KS_Cmd_ScrollFastUp, KS_Up,
710 KC(208),KS_Cmd_ScrollFastDown, KS_Down,
711 KC(203),KS_KP_Home, KS_Left,
712 KC(205),KS_KP_End, KS_Right,
713 };
714
715 /*
716 * HITACHI PERSONA HPW200EC
717 */
718 /* US */
719 const uint8_t persona_hpw200ec_keytrans[] = {
720 /* 0 1 2 3 4 5 6 7 */
721 /* 0 */ 3 , 2 , 71 , 69 , 67 , SPL, UNK, UNK,
722 /* 1 */ 11 , UNK, 79 , 77 , 75 , UNK, UNK, UNK,
723 /* 2 */ 19 , UNK, UNK, 85 , 83 , UNK, UNK, UNK,
724 /* 3 */ 27 , 26 , 95 , 93 , 91 , UNK, UNK, UNK,
725 /* 4 */ 35 , 34 , 103, 101, 99 , 32 , UNK, UNK,
726 /* 5 */ 43 , 42 , 111, 109, 107, 40 , UNK, UNK,
727 /* 6 */ 51 , 50 , 119, 117, 115, 48 , UNK, UNK,
728 /* 7 */ 59 , 58 , UNK, UNK, 123, 56 , UNK, UNK,
729 /* 8 */ 5 , 6 , 70 , 68 , 66 , UNK, UNK, UNK,
730 /* 9 */ UNK, UNK, 78 , 76 , 74 , UNK, UNK, UNK,
731 /*10 */ 21 , UNK, UNK, 84 , 82 , UNK, UNK, UNK,
732 /*11 */ 29 , 30 , 94 , 92 , 90 , UNK, UNK, UNK,
733 /*12 */ UNK, 26 , 102, 100, 98 , UNK, UNK, UNK,
734 /*13 */ UNK, 46 , 110, 108, 106, 104, UNK, UNK,
735 /*14 */ 53 , 54 , 118, 124, 114, UNK, UNK, UNK,
736 /*15 */ 61 , 62 , 126, UNK, 122, UNK, UNK, UNK,
737 };
738
739 const int persona_hpw200ec_special_keymap[] = {
740 [KEY_SPECIAL_OFF] = 5,
741 [KEY_SPECIAL_LIGHT] = -1
742 };
743
744 #endif /* hpcsh */
745
746 #ifdef hpcarm
747 /*
748 * HP Jornada 710/720/728
749 */
750
751 /* Japanese */
752 const uint8_t jornada7xx_jp_keytrans[] = {
753 /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 ,
754 /* 08 */ 65 , 66 , 67 , 112, 41 , UNK, UNK, UNK,
755 /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
756 /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
757 /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
758 /* 28 */ 23, 24 , 25 , 26 , UNK, UNK, UNK, UNK,
759 /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
760 /* 38 */ 37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
761 /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
762 /* 48 */ 51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
763 /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
764 /* 58 */ UNK, UNK, 200, 125, 54 , UNK, UNK, UNK,
765 /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 123, UNK,
766 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
767 /* 70 */ UNK, 219, 29 , UNK, 57 , UNK, UNK, 121,
768 /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
769 };
770
771 /* US/UK - Fn to the left of the space bar and missing few keys */
772 const uint8_t jornada7xx_us_keytrans[] = {
773 /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 ,
774 /* 08 */ 65 , 66 , 67 , 68 , 87 , UNK, UNK, UNK,
775 /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
776 /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
777 /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
778 /* 28 */ 23, 24 , 25 , 43 , 14 , UNK, UNK, UNK,
779 /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
780 /* 38 */ 37, 38 , 39 , 40 , UNK, UNK, UNK, UNK,
781 /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
782 /* 48 */ 51, 52 , UNK, 40 , 28 , UNK, UNK, UNK,
783 /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
784 /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
785 /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 184, UNK,
786 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
787 /* 70 */ UNK, 219, 29 , UNK, 57 , UNK, UNK, UNK,
788 /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
789 };
790
791 /* International - AltGr to the right and extra keys in three middle rows */
792 const uint8_t jornada7xx_intl_keytrans[] = {
793 /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 ,
794 /* 08 */ 65 , 66 , 67 , 68 , 87 , UNK, UNK, UNK,
795 /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
796 /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
797 /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
798 /* 28 */ 23, 24 , 25 , 26 , 14 , UNK, UNK, UNK,
799 /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
800 /* 38 */ 37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
801 /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
802 /* 48 */ 51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
803 /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
804 /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
805 /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 41 , UNK,
806 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
807 /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
808 /* 78 */ 219, 211, UNK, UNK, UNK, UNK, UNK, SPL,
809 };
810
811 const int jornada7xx_special_keymap[] = {
812 [KEY_SPECIAL_OFF] = -1,
813 [KEY_SPECIAL_LIGHT] = 127
814 };
815 #endif /* hpcarm */
816
817 #if defined(hpcarm) || defined(hpcsh)
818 /*
819 * Shared keymaps between the Jornada series (6xx, 7xx).
820 */
821
822 /* US (ABA), UK (ABU) */
823 static const keysym_t jornada_us_keydesc[] = {
824 /* pos normal shifted altgr */
825 KC(2), KS_1, KS_exclam, KS_asciitilde,
826 KC(3), KS_2, KS_at, KS_grave,
827 KC(4), KS_3, KS_numbersign, KS_sterling,
828 #ifdef KS_euro
829 KC(5), KS_4, KS_dollar, KS_euro,
830 #endif
831 KC(25), KS_p, KS_P, KS_braceleft,
832 KC(39), KS_semicolon, KS_colon, KS_bracketleft,
833 KC(40), KS_apostrophe, KS_quotedbl, KS_bracketright,
834 KC(43), KS_backslash, KS_bar, KS_braceright,
835 KC(184), KS_Mode_switch, KS_Multi_key,
836
837 KC(200), KS_Cmd_BrightnessUp, KS_Up,
838 KC(203), KS_Cmd_ContrastDown, KS_Left,
839 KC(205), KS_Cmd_ContrastUp, KS_Right,
840 KC(208), KS_Cmd_BrightnessDown, KS_Down,
841 };
842
843 /*
844 * XXX: Add AltGr layer for #ABB here? OTOH, all the keys necessary
845 * for basic actions in DDB or shell are on the primary layer, so it
846 * makes sense to support AltGr via wsconsctl(8) instead, as the same
847 * primary layer is used e.g. in Russian models. But it does make
848 * sense to define the <AltGr> key itself here, as we base this layout
849 * on KB_US that defines it as the right <Alt>.
850 */
851 /* European English (ABB) */
852 static const keysym_t jornada_intl_keydesc[] = {
853 /* pos normal shifted altgr */
854 KC(42), KS_Shift_L, KS_Shift_L, KS_Caps_Lock,
855 KC(184), KS_Mode_switch, KS_Multi_key,
856
857 KC(200), KS_Cmd_BrightnessUp, KS_Up,
858 KC(203), KS_Cmd_ContrastDown, KS_Left,
859 KC(205), KS_Cmd_ContrastUp, KS_Right,
860 KC(208), KS_Cmd_BrightnessDown, KS_Down,
861 };
862
863 /* German (ABD) */
864 static const keysym_t jornada_de_keydesc[] = {
865 /* pos normal shifted altgr */
866 KC(2), KS_1, KS_exclam, KS_brokenbar,
867 KC(5), KS_4, KS_dollar, KS_ccedilla,
868 KC(6), KS_5, KS_percent, KS_sterling,
869 KC(7), KS_6, KS_ampersand, KS_notsign,
870 #ifdef KS_euro
871 KC(18), KS_e, KS_E, KS_euro,
872 #endif
873 KC(27), KS_plus, KS_asterisk, KS_asciitilde, /* NB: not dead */
874 KC(30), KS_a, KS_A, KS_bar,
875 KC(41), KS_asciicircum, KS_degree, /* NB: not dead */
876 KC(43), KS_numbersign, KS_apostrophe, KS_dead_diaeresis,
877 KC(44), KS_y, KS_Y, KS_less,
878 KC(45), KS_x, KS_X, KS_greater,
879 KC(46), KS_c, KS_C, KS_cent,
880
881 KC(200), KS_Cmd_BrightnessUp, KS_Up,
882 KC(203), KS_Cmd_ContrastDown, KS_Left,
883 KC(205), KS_Cmd_ContrastUp, KS_Right,
884 KC(208), KS_Cmd_BrightnessDown, KS_Down,
885 };
886
887 /* French (ABF) */
888 static const keysym_t jornada_fr_keydesc[] = {
889 /* pos normal shifted altgr */
890 KC(2), KS_ampersand, KS_1, KS_plusminus,
891 #ifdef KS_euro
892 KC(18), KS_e, KS_E, KS_euro,
893 #endif
894 KC(19), KS_r, KS_R, KS_onequarter,
895 KC(20), KS_t, KS_T, KS_onehalf,
896 KC(21), KS_y, KS_Y, KS_threequarters,
897 KC(25), KS_p, KS_P, KS_paragraph,
898 KC(30), KS_q, KS_Q, KS_brokenbar,
899 KC(31), KS_s, KS_S, KS_guillemotleft,
900 KC(32), KS_d, KS_D, KS_guillemotright,
901 KC(40), KS_ugrave, KS_percent, KS_dead_acute,
902 KC(41), KS_twosuperior, KS_voidSymbol, KS_threesuperior,
903 KC(43), KS_asterisk, KS_mu, KS_notsign,
904 KC(44), KS_w, KS_W, KS_less,
905 KC(45), KS_x, KS_X, KS_greater,
906 KC(46), KS_c, KS_C, KS_cent,
907 KC(50), KS_comma, KS_question, KS_mu,
908 KC(53), KS_exclam, KS_section, KS_Eacute,
909 KC(184), KS_Mode_switch, KS_Multi_key,
910
911 KC(200), KS_Cmd_BrightnessUp, KS_Up,
912 KC(203), KS_Cmd_ContrastDown, KS_Left,
913 KC(205), KS_Cmd_ContrastUp, KS_Right,
914 KC(208), KS_Cmd_BrightnessDown, KS_Down,
915 };
916
917 /* Scandinavian */
918 static const keysym_t jornada_scnv_keydesc[] = {
919 /* pos normal shifted altgr */
920 KC(2), KS_1, KS_exclam, KS_asciitilde,
921 KC(3), KS_2, KS_quotedbl, KS_at,
922 KC(4), KS_3, KS_numbersign, KS_sterling,
923 KC(5), KS_4, KS_currency, KS_dollar,
924 KC(7), KS_6, KS_ampersand,
925 KC(8), KS_7, KS_slash, KS_braceleft,
926 KC(9), KS_8, KS_parenleft, KS_bracketleft,
927 KC(10), KS_9, KS_parenright, KS_bracketright,
928 KC(11), KS_0, KS_equal, KS_braceright,
929 KC(12), KS_plus, KS_question, KS_backslash,
930 KC(13), KS_apostrophe, KS_grave,
931 KC(25), KS_p, KS_P, KS_braceleft,
932 KC(26), KS_aring,
933 /*
934 * XXX: KC(39) and KC(40) has odiaeresis/adiaeresis *and*
935 * oslash/ae on them. Apparently localized WinCE uses the former
936 * for Swedish and Finnish and the latter for Danish and
937 * Norwegian. But as the keyboard doesn't seem to have
938 * semicolon/colon and minus/underscore nowhere on the primary and
939 * altgr layers, I put them here (semicolon/colon is inherited).
940 */
941 KC(40), KS_minus, KS_underscore, /* XXX */
942 KC(41), KS_paragraph, KS_onehalf, KS_bar,
943 KC(184), KS_Mode_switch, KS_Multi_key,
944
945 KC(200), KS_Cmd_BrightnessUp, KS_Up,
946 KC(203), KS_Cmd_ContrastDown, KS_Left,
947 KC(205), KS_Cmd_ContrastUp, KS_Right,
948 KC(208), KS_Cmd_BrightnessDown, KS_Down,
949 };
950
951 /* Spanish (ABE) */
952 static const keysym_t jornada_es_keydesc[] = {
953 /* pos normal shifted altgr */
954 KC(2), KS_1, KS_exclam, KS_ordfeminine,
955 KC(3), KS_2, KS_quotedbl, KS_masculine,
956 KC(4), KS_3, KS_numbersign,
957 KC(12), KS_apostrophe, KS_question, KS_backslash,
958 KC(13), KS_questiondown,KS_exclamdown,
959 KC(16), KS_q, KS_Q, KS_at,
960 #ifdef KS_euro
961 KC(18), KS_e, KS_E, KS_euro,
962 #endif
963 KC(26), KS_dead_acute, KS_dead_diaeresis,
964 KC(27), KS_plus, KS_asterisk, KS_dead_tilde,
965 KC(40), KS_braceleft, KS_bracketleft,KS_dead_circumflex,
966 KC(41), KS_bar, KS_degree, KS_notsign,
967 KC(43), KS_braceright, KS_bracketright,KS_dead_grave,
968 KC(44), KS_z, KS_Z, KS_less,
969 KC(45), KS_x, KS_X, KS_greater,
970 KC(46), KS_c, KS_C, KS_Ccedilla,
971
972 KC(200), KS_Cmd_BrightnessUp, KS_Up,
973 KC(203), KS_Cmd_ContrastDown, KS_Left,
974 KC(205), KS_Cmd_ContrastUp, KS_Right,
975 KC(208), KS_Cmd_BrightnessDown, KS_Down,
976 };
977 #endif /* hpcarm || hpcsh */
978
979 /*
980 * REMINDER:
981 * When adding new entry to this array, make sure that pckbd_keydesctab[]
982 * in sys/dev/pckbport/wskbdmap_mfii.c has a placeholder KB_MACHDEP entry
983 * for the base ht_layout that you refer.
984 */
985 const struct hpckbd_keymap_table {
986 platid_t *ht_platform;
987 const uint8_t *ht_keymap;
988 const int *ht_special;
989 struct {
990 const keysym_t *map;
991 int size;
992 } ht_cmdmap;
993 kbd_t ht_layout;
994 } hpckbd_keymap_table[] = {
995 #ifdef hpcmips
996 { &platid_mask_MACH_COMPAQ_C,
997 tc5165_compaq_c_jp_keymap,
998 tc5165_compaq_c_jp_special_keymap,
999 NULLCMDMAP,
1000 KB_JP },
1001 { &platid_mask_MACH_VICTOR_INTERLINK,
1002 m38813c_keymap,
1003 default_special_keymap,
1004 NULLCMDMAP,
1005 KB_JP },
1006 { &platid_mask_MACH_SHARP_TELIOS,
1007 tc5165_telios_jp_keymap,
1008 default_special_keymap,
1009 CMDMAP(tc5165_telios_jp_cmdmap),
1010 KB_JP },
1011 { &platid_mask_MACH_SHARP_MOBILON,
1012 tc5165_mobilon_keymap,
1013 tc5165_mobilon_special_keymap,
1014 NULLCMDMAP,
1015 KB_US },
1016 { &platid_mask_MACH_NEC_MCR_500A,
1017 mobilepro750c_keytrans,
1018 NULL,
1019 NULLCMDMAP,
1020 KB_US },
1021 { &platid_mask_MACH_NEC_MCR_520A,
1022 mobilepro_keytrans,
1023 NULL,
1024 CMDMAP(mobilepro_cmdmap),
1025 KB_US },
1026 { &platid_mask_MACH_NEC_MCR_530A,
1027 mobilepro780_keytrans,
1028 NULL,
1029 NULLCMDMAP,
1030 KB_US },
1031 { &platid_mask_MACH_NEC_MCR_700A,
1032 mobilepro8x0_keytrans,
1033 NULL,
1034 CMDMAP(mobilepro8x0_cmdmap),
1035 KB_US },
1036 { &platid_mask_MACH_NEC_MCR_730A,
1037 mobilepro8x0_keytrans,
1038 NULL,
1039 CMDMAP(mobilepro8x0_cmdmap),
1040 KB_US },
1041 { &platid_mask_MACH_NEC_MCR_MPRO700,
1042 mobilepro_keytrans,
1043 NULL,
1044 NULLCMDMAP,
1045 KB_US },
1046 { &platid_mask_MACH_NEC_MCR_SIGMARION,
1047 sigmarion_jp_keytrans,
1048 NULL,
1049 CMDMAP(sigmarion_cmdmap),
1050 KB_JP },
1051 { &platid_mask_MACH_NEC_MCR_SIGMARION2,
1052 sigmarion_jp_keytrans,
1053 NULL,
1054 CMDMAP(sigmarion_cmdmap),
1055 KB_JP },
1056 { &platid_mask_MACH_NEC_MCR,
1057 mcr_jp_keytrans,
1058 NULL,
1059 CMDMAP(mcr_jp_cmdmap),
1060 KB_JP },
1061 { &platid_mask_MACH_IBM_WORKPAD_Z50,
1062 z50_keytrans,
1063 NULL,
1064 NULLCMDMAP,
1065 KB_US },
1066 { &platid_mask_MACH_SHARP_TRIPAD,
1067 tripad_keytrans,
1068 NULL,
1069 NULLCMDMAP,
1070 KB_US },
1071 { &platid_mask_MACH_VADEM_CLIO_C,
1072 tripad_keytrans,
1073 NULL,
1074 NULLCMDMAP,
1075 KB_US },
1076 { &platid_mask_MACH_NEC_MCCS,
1077 mccs_keytrans,
1078 NULL,
1079 CMDMAP(mccs_cmdmap),
1080 KB_JP },
1081 { &platid_mask_MACH_FUJITSU_INTERTOP,
1082 intertop_keytrans,
1083 NULL,
1084 NULLCMDMAP,
1085 KB_JP },
1086 { &platid_mask_MACH_CASIO_POCKETPOSTPET,
1087 pocketpostpet_keytrans,
1088 NULL,
1089 NULLCMDMAP,
1090 KB_JP },
1091 #endif /* hpcmips */
1092 #ifdef hpcsh
1093 /*
1094 * HP Jornada 680/690
1095 */
1096 /* Japanese */
1097 { &platid_mask_MACH_HP_JORNADA_680JP,
1098 jornada6x0_jp_keytrans,
1099 jornada6x0_special_keymap,
1100 NULLCMDMAP,
1101 KB_JP },
1102 { &platid_mask_MACH_HP_JORNADA_690JP,
1103 jornada6x0_jp_keytrans,
1104 jornada6x0_special_keymap,
1105 NULLCMDMAP,
1106 KB_JP },
1107 /* US (ABA), UK (ABU) */
1108 { &platid_mask_MACH_HP_JORNADA_680,
1109 jornada6x0_us_keytrans,
1110 jornada6x0_special_keymap,
1111 CMDMAP(jornada_us_keydesc),
1112 KB_US },
1113 { &platid_mask_MACH_HP_JORNADA_690,
1114 jornada6x0_us_keytrans,
1115 jornada6x0_special_keymap,
1116 CMDMAP(jornada_us_keydesc),
1117 KB_US },
1118 /* European English (ABB) */
1119 { &platid_mask_MACH_HP_JORNADA_680EU,
1120 jornada6x0_intl_keytrans,
1121 jornada6x0_special_keymap,
1122 CMDMAP(jornada_intl_keydesc),
1123 KB_US },
1124 { &platid_mask_MACH_HP_JORNADA_690EU,
1125 jornada6x0_intl_keytrans,
1126 jornada6x0_special_keymap,
1127 CMDMAP(jornada_intl_keydesc),
1128 KB_US },
1129 /* German (ABD) */
1130 { &platid_mask_MACH_HP_JORNADA_680DE,
1131 jornada6x0_intl_keytrans,
1132 jornada6x0_special_keymap,
1133 CMDMAP(jornada_de_keydesc),
1134 KB_DE },
1135 { &platid_mask_MACH_HP_JORNADA_690DE,
1136 jornada6x0_intl_keytrans,
1137 jornada6x0_special_keymap,
1138 CMDMAP(jornada_de_keydesc),
1139 KB_DE },
1140 /* French (ABF) */
1141 { &platid_mask_MACH_HP_JORNADA_680FR,
1142 jornada6x0_intl_keytrans,
1143 jornada6x0_special_keymap,
1144 CMDMAP(jornada_fr_keydesc),
1145 KB_FR },
1146 { &platid_mask_MACH_HP_JORNADA_690FR,
1147 jornada6x0_intl_keytrans,
1148 jornada6x0_special_keymap,
1149 CMDMAP(jornada_fr_keydesc),
1150 KB_FR },
1151 /* Scandinavian */
1152 { &platid_mask_MACH_HP_JORNADA_680SV,
1153 jornada6x0_intl_keytrans,
1154 jornada6x0_special_keymap,
1155 CMDMAP(jornada_scnv_keydesc),
1156 KB_US },
1157 { &platid_mask_MACH_HP_JORNADA_690SV,
1158 jornada6x0_intl_keytrans,
1159 jornada6x0_special_keymap,
1160 CMDMAP(jornada_scnv_keydesc),
1161 KB_US },
1162 /* Spanish (ABE) */
1163 { &platid_mask_MACH_HP_JORNADA_680ES,
1164 jornada6x0_intl_keytrans,
1165 jornada6x0_special_keymap,
1166 CMDMAP(jornada_es_keydesc),
1167 KB_ES },
1168 { &platid_mask_MACH_HP_JORNADA_690ES,
1169 jornada6x0_intl_keytrans,
1170 jornada6x0_special_keymap,
1171 CMDMAP(jornada_es_keydesc),
1172 KB_ES },
1173 /*
1174 * HP 620LX
1175 */
1176 /* Japanese */
1177 { &platid_mask_MACH_HP_LX_620JP,
1178 hp620lx_jp_keytrans,
1179 hp620lx_special_keymap,
1180 NULLCMDMAP,
1181 KB_JP },
1182 /* Other models */
1183 { &platid_mask_MACH_HP_LX_620,
1184 hp620lx_intl_keytrans,
1185 hp620lx_special_keymap,
1186 NULLCMDMAP,
1187 KB_US },
1188
1189 /*
1190 * PERSONA HPW50PAD
1191 */
1192 /* Japanese */
1193 { &platid_mask_MACH_HITACHI_PERSONA_HPW50PAD,
1194 persona_hpw50pad_jp_keytrans,
1195 persona_hpw50pad_special_keymap,
1196 CMDMAP(persona_hpw50pad_jp_keydesc),
1197 KB_JP },
1198
1199 /*
1200 * PERSONA HPW200EC
1201 */
1202 /* US */
1203 { &platid_mask_MACH_HITACHI_PERSONA_HPW200EC,
1204 persona_hpw200ec_keytrans,
1205 persona_hpw200ec_special_keymap,
1206 NULLCMDMAP,
1207 KB_US },
1208
1209 #endif /* hpcsh */
1210 #ifdef hpcarm
1211 /* US (ABA), UK (ABU) */
1212 { &platid_mask_MACH_HP_JORNADA_720,
1213 jornada7xx_us_keytrans,
1214 jornada7xx_special_keymap,
1215 CMDMAP(jornada_us_keydesc),
1216 KB_US },
1217 /* Japanese */
1218 { &platid_mask_MACH_HP_JORNADA_720JP,
1219 jornada7xx_jp_keytrans,
1220 jornada7xx_special_keymap,
1221 NULLCMDMAP,
1222 KB_JP },
1223 /* European English (ABB) */
1224 { &platid_mask_MACH_HP_JORNADA_720EU,
1225 jornada7xx_intl_keytrans,
1226 jornada7xx_special_keymap,
1227 CMDMAP(jornada_intl_keydesc),
1228 KB_US },
1229 /* German (ABD) */
1230 { &platid_mask_MACH_HP_JORNADA_720DE,
1231 jornada7xx_intl_keytrans,
1232 jornada7xx_special_keymap,
1233 CMDMAP(jornada_de_keydesc),
1234 KB_DE },
1235 /* French (ABF) */
1236 { &platid_mask_MACH_HP_JORNADA_720FR,
1237 jornada7xx_intl_keytrans,
1238 jornada7xx_special_keymap,
1239 CMDMAP(jornada_fr_keydesc),
1240 KB_FR },
1241 /* Scandinavian */
1242 { &platid_mask_MACH_HP_JORNADA_720SV,
1243 jornada7xx_intl_keytrans,
1244 jornada7xx_special_keymap,
1245 CMDMAP(jornada_scnv_keydesc),
1246 KB_US },
1247 /* Spanish (ABE) */
1248 { &platid_mask_MACH_HP_JORNADA_720ES,
1249 jornada7xx_intl_keytrans,
1250 jornada7xx_special_keymap,
1251 CMDMAP(jornada_es_keydesc),
1252 KB_ES },
1253 #endif /* hpcarm */
1254 { NULL } /* end mark */
1255 };
1256