1 /* $NetBSD: hpckbdkeymap.h,v 1.40 2006/03/07 23:39:39 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@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 , 219, UNK, 786 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK, 787 /* 70 */ UNK, 221, 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