/* $NetBSD: hpckbdkeymap.h,v 1.51 2011/08/06 03:53:40 kiyohara Exp $ */ /*- * Copyright (c) 1999-2002 The NetBSD Foundation, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #define UNK 255 /* unknown */ #define IGN 254 /* ignore */ #define SPL 253 /* special key */ #define KC(n) KS_KEYCODE(n) #define CMDMAP(map) { map, (sizeof(map)/sizeof(keysym_t)) } #define NULLCMDMAP { NULL, 0 } #define KEY_SPECIAL_OFF 0 #define KEY_SPECIAL_LIGHT 1 const uint8_t default_keymap[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 1 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 2 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 3 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 4 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 5 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 6 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 7 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 8 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /* 9 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*10 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*11 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*12 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK }; const int default_special_keymap[] = { [KEY_SPECIAL_OFF] = -1, [KEY_SPECIAL_LIGHT] = -1 }; #ifdef hpcmips const uint8_t tc5165_mobilon_keymap[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 37 , 45 , 44 , UNK, 9 , 51 , 23 , UNK, /* 1 */ UNK, 56 , UNK, UNK, UNK, UNK, UNK, UNK, /* 2 */ UNK, UNK, 29 , UNK, UNK, UNK, UNK, UNK, /* 3 */ 24 , 203, UNK, 38 , 10 , 27 , 13 , UNK, /* 4 */ 40 , UNK, UNK, 39 , 26 , 53 , 11 , 12 , /* 5 */ UNK, UNK, UNK, 53 , 25 , UNK, UNK, SPL, /* Light */ /* 6 */ 208, UNK, UNK, UNK, 52 , UNK, 43 , 14 , /* 7 */ 205, 200, UNK, UNK, SPL, UNK, UNK, 28 , /* Off key */ /* 8 */ UNK, 41 , 59 , 15 , 2 , UNK, UNK, UNK, /* 9 */ 63 , 64 , 1 , UNK, 65 , 16 , 17 , UNK, /*10 */ 60 , UNK, 61 , 62 , 3 , UNK, UNK, UNK, /*11 */ UNK, UNK, UNK, 42 , 58 , UNK, UNK, UNK, /*12 */ 47 , 33 , 46 , 5 , 4 , 18 , 19 , UNK, /*13 */ 34 , 35 , 20 , 48 , 6 , 7 , 21 , 49 , /*14 */ 22 , 31 , 32 , 36 , 8 , 30 , 50 , 57 , /*15 */ UNK, IGN, UNK, UNK, UNK, UNK, UNK, UNK /* Windows key */ }; const int tc5165_mobilon_special_keymap[] = { [KEY_SPECIAL_OFF] = -1, /* 60 */ [KEY_SPECIAL_LIGHT] = 47 }; const uint8_t tc5165_telios_jp_keymap[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 58, 15, IGN, 1, IGN, IGN, IGN, IGN, /* 1 */ IGN, IGN, IGN, IGN, 54, 42, IGN, IGN, /* 2 */ 31, 18, 4, IGN, IGN, 32, 45, 59, /* 3 */ 33, 19, 5, 61, IGN, 46, 123, 60, /* 4 */ 35, 21, 8, 64, IGN, 48, 49, 63, /* 5 */ 17, 16, 3, IGN, 2, 30, 44, 41, /* 6 */ IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN, /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, 56, IGN, /* 8 */ 34, 20, 7, IGN, 6, 47, 57, 62, /* 9 */ IGN, IGN, IGN, IGN, IGN, IGN, 29, IGN, /*10 */ 27, 125, 13, 203, 208, 40, 115, 68, /*11 */ 39, 26, 25, 112, 12, 52, 53, 67, /*12 */ 37, 24, 11, 121, 10, 38, 51, 66, /*13 */ 23, 22, 9, IGN, IGN, 36, 50, 65, /*14 */ 28, 43, 14, 200, 205, IGN, IGN, 211, /*15 */ IGN, IGN, IGN, IGN, IGN, IGN, 184, IGN }; static const keysym_t tc5165_telios_jp_cmdmap[] = { /* pos command normal shifted */ KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key, KC(205), KS_Cmd_BrightnessUp, KS_Right, KC(203), KS_Cmd_BrightnessDown, KS_Left, KC(57), KS_Cmd_BacklightToggle,KS_space, }; const uint8_t tc5165_compaq_c_jp_keymap[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 38, 50, 49, 48, 47, 46, 45, 44, /* 1 */ 56, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* 2 */ 13, IGN, 112, 121, 123, 41, 28, 57, /* 3 */ 205, 203, 208, 200, 39, 53, 52, 51, /* 4 */ 24, 25, 40, IGN, 43, 26, 115, 58, /* 5 */ 54, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* 6 */ IGN, IGN, IGN, SPL, IGN, IGN, IGN, IGN, /* Light */ /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* 8 */ 42, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* 9 */ 29, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*10 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*11 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*12 */ 14, 27, 12, 11, 10, 15, 1, 125, /*13 */ 9, 8, 7, 6, 5, 4, 3, 2, /*14 */ 23, 22, 21, 20, 19, 18, 17, 16, /*15 */ 37, 36, 35, 34, 33, 32, 31, 30 }; const int tc5165_compaq_c_jp_special_keymap[] = { [KEY_SPECIAL_OFF] = -1, /* don't have off button */ [KEY_SPECIAL_LIGHT] = 51 }; const uint8_t m38813c_keymap[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 0, 1, 2, 3, 4, 5, 6, 7, /* 1 */ 8, 9, 10, 11, 12, 13, 14, 15, /* 2 */ 16, 17, 18, 19, 20, 21, 22, 23, /* 3 */ 24, 25, 26, 27, 28, 29, 30, 31, /* 4 */ 32, 33, 34, 35, 36, 37, 38, 39, /* 5 */ 40, 41, 42, 43, 44, 45, 46, 47, /* 6 */ 48, 49, 50, 51, 52, 53, 54, 55, /* 7 */ 56, 57, 58, 59, 60, 61, 62, 63, /* 8 */ 64, 65, 66, 67, 68, 69, 70, 71, /* 9 */ 200, 73, 74, 203, 76, 205, 78, 79, /*10 */ 208, 81, 82, 83, 84, 85, 86, 87, /*11 */ 88, 89, 90, 91, 92, 93, 94, 95, /*12 */ 96, 97, 98, 99, 100, 101, 102, 103, /*13 */ 104, 105, 106, 107, 108, 109, 110, 111, /*14 */ 112, 113, 114, 115, 116, 117, 118, 119, /*15 */ 120, 121, 122, 123, 124, 125, 126, 127 }; /* NEC MobileGearII MCR series (Japan) */ static uint8_t mcr_jp_keytrans[] = { /*00 right ent p . y b z space */ /*08 down / o , t v a nfer */ /*10 left \ i m r c w menu */ /*18 ^ - u - e x q 1 */ /*20 pgdn h/z 0 l : g tab f1 */ /*28 xfer ; 9 n 5 f 2 k */ /*30 up [ 8 j 4 d 6 - */ /*38 - @ 7 h 3 ] s - */ /*40 caps - - - bs fnc f8 f3 */ /*48 - alt - - | k/h f7 f4 */ /*50 - - ctrl - f10 pgup f6 f2 */ /*58 - - - shift del f9 f5 esc */ /*----------------------------------------------------------------------*/ /*00*/ 205, 28, 25, 52, 21, 48, 44, 57, /*08*/ 208, 53, 24, 51, 20, 47, 30, 123, /*10*/ 203, 115, 23, 50, 19, 46, 17, 221, /*18*/ 13, IGN, 22, IGN, 18, 45, 16, 2, /*20*/ 81, 41, 11, 38, 40, 34, 15, 59, /*28*/ 121, 39, 10, 49, 6, 33, 3, 37, /*30*/ 200, 27, 9, 36, 5, 32, 7, IGN, /*38*/ 12, 26, 8, 35, 4, 43, 31, IGN, /*40*/ 58, IGN, IGN, IGN, 14, 184, 66, 61, /*48*/ IGN, 56, IGN, IGN, 125, 112, 65, 62, /*50*/ IGN, IGN, 29, IGN, 68, 73, 64, 60, /*58*/ IGN, IGN, IGN, 42, 14, 67, 63, 1, }; static const keysym_t mcr_jp_cmdmap[] = { /* pos command normal shifted */ KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key, KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9, KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3, KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less, KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater, KC(57), KS_Cmd_BacklightToggle,KS_space, }; /* IBM WorkPad z50 */ static uint8_t z50_keytrans[] = { /*00 f1 f3 f5 f7 f9 - - f11 */ /*08 f2 f4 f6 f8 f10 - - f12 */ /*10 ' [ - 0 p ; up / */ /*18 - - - 9 o l . - */ /*20 left ] = 8 i k , - */ /*28 h y 6 7 u j m n */ /*30 - bs num del - \ ent sp */ /*38 g t 5 4 r f v b */ /*40 - - - 3 e d c right */ /*48 - - - 2 w s x down */ /*50 esc tab ~ 1 q a z - */ /*58 menu Ls Lc Rc La Ra Rs - */ /*----------------------------------------------------------------------*/ /*00*/ 59, 61, 63, 65, 67, IGN, IGN, 87, /*08*/ 60, 62, 64, 66, 68, IGN, IGN, 88, /*10*/ 40, 26, 12, 11, 25, 39, 200, 53, /*18*/ IGN, IGN, IGN, 10, 24, 38, 52, IGN, /*20*/ 203, 27, 13, 9, 23, 37, 51, IGN, /*28*/ 35, 21, 7, 8, 22, 36, 50, 49, /*30*/ IGN, 14, 69, 14, IGN, 43, 28, 57, /*38*/ 34, 20, 6, 5, 19, 33, 47, 48, /*40*/ IGN, IGN, IGN, 4, 18, 32, 46, 205, /*48*/ IGN, IGN, IGN, 3, 17, 31, 45, 208, /*50*/ 1, 15, 41, 2, 16, 30, 44, IGN, /*58*/ 221, 42, 29, 29, 56, 56, 54, IGN, }; /* Sharp Tripad PV6000 and VADEM CLIO */ static uint8_t tripad_keytrans[] = { /*00 lsh tab ` q esc 1 WIN - */ /*08 ctrl z x a s w e 2 */ /*10 lalt sp c v d f r 3 */ /*18 b n g h t y 4 5 */ /*20 m , j k u i 6 7 */ /*28 Fn caps l o p 8 9 0 */ /*30 [ ] la . / ; - = */ /*38 rsh ra ua da ' ent \ del */ /*40 - - - - - - - - */ /*48 - - - - - - - - */ /*50 - - - - - - - - */ /*58 - - - - - - - - */ /*----------------------------------------------------------------------*/ /*00*/ 42, 15, 41, 16, 1, 2, 104, 221, /*08*/ 29, 44, 45, 30, 31, 17, 18, 3, /*10*/ 56, 57, 46, 47, 32, 33, 19, 4, /*18*/ 48, 49, 34, 35, 20, 21, 5, 6, /*20*/ 50, 51, 36, 37, 22, 23, 7, 8, /*28*/ 184, 58, 38, 24, 25, 9, 10, 11, /*30*/ 26, 27, 203, 52, 53, 39, 12, 13, /*38*/ 54, 205, 200, 208, 40, 28, 43, 14, /*40*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*48*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*50*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*58*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, }; static const keysym_t tripad_cmdmap[] = { /* pos command normal shifted fn */ KC(2), KS_Cmd_Screen0, KS_1, KS_exclam, KS_f1, KC(3), KS_Cmd_Screen1, KS_2, KS_at, KS_f2, KC(4), KS_Cmd_Screen2, KS_3, KS_numbersign, KS_f3, KC(5), KS_Cmd_Screen3, KS_4, KS_dollar, KS_f4, KC(6), KS_Cmd_Screen4, KS_5, KS_percent, KS_f5, KC(7), KS_Cmd_Screen5, KS_6, KS_asciicircum, KS_f6, KC(8), KS_Cmd_Screen6, KS_7, KS_ampersand, KS_f7, KC(9), KS_Cmd_Screen7, KS_8, KS_asterisk, KS_f8, KC(10), KS_Cmd_Screen8, KS_9, KS_parenleft, KS_f9, KC(11), KS_Cmd_Screen9, KS_0, KS_parenright, KS_f10, KC(12), KS_Cmd_BrightnessDown, KS_minus, KS_underscore, KS_f11, KC(13), KS_Cmd_BrightnessUp, KS_equal, KS_plus, KS_f12, KC(20), KS_Cmd_BacklightToggle, KS_t, KC(33), KS_Cmd_BacklightOff, KS_f, KC(49), KS_Cmd_BacklightOn, KS_n, KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less, KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Cmd_ScrollSlowUp, KS_Up, KS_Up, KS_Prior, KC(203), KS_Cmd_ScrollFastUp, KS_Left, KS_Left, KS_Home, KC(205), KS_Cmd_ScrollFastDown, KS_Right, KS_Right, KS_End, KC(208), KS_Cmd_ScrollSlowDown, KS_Down, KS_Down, KS_Next, }; /* NEC Mobile Gear MCCS series */ static uint8_t mccs_keytrans[] = { /*00 caps cr rar p . y b z */ /*08 alt [ dar o , t v a */ /*10 zen @ lar i m r c w */ /*18 lctrl ; uar u n e x q */ /*20 lshft bs \ 0 l 6 g tab */ /*28 nconv | / 9 k 5 f 2 */ /*30 conv = ] 8 j 4 d 1 */ /*38 hira - ' 7 h 3 s esc */ /*40 - sp - - - - - - */ /*48 - - - - - - - - */ /*50 - - - - - - - - */ /*58 - - - - - - - - */ /*----------------------------------------------------------------------*/ /*00*/ 58, 28, 205, 25, 52, 21, 48, 44, /*08*/ 56, 27, 208, 24, 51, 20, 47, 30, /*10*/ 41, 26, 203, 23, 50, 19, 46, 17, /*18*/ 29, 39, 200, 22, 49, 18, 45, 16, /*20*/ 42, 14, 115, 11, 38, 7, 34, 15, /*28*/ 123, 125, 53, 10, 37, 6, 33, 3, /*30*/ 121, 13, 43, 9, 36, 5, 32, 2, /*38*/ 112, 12, 40, 8, 35, 4, 31, 1, /*40*/ IGN, 57, IGN, IGN, IGN, IGN, IGN, IGN, /*48*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*50*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*58*/ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN, }; static const keysym_t mccs_cmdmap[] = { /* pos command normal shifted */ KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less, KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater, KC(57), KS_Cmd_BacklightToggle,KS_space, }; static uint8_t mobilepro_keytrans[] = { /*00 space ] \ / left down enter l */ /*08 - [ ' ; right up . o */ /*10 - - - Windows v c x z */ /*18 - = \- ` f d s a */ /*20 8 7 6 5 r e w q */ /*28 , m n b - - 0 9 */ /*30 k j h g 4 3 2 1 */ /*38 i u y t - caps del esc */ /*40 alt_R - - - BS p TAB Fn */ /*48 - alt_L - - pgdn pgup f10 f9 */ /*50 - - ctrl - f8 f7 f6 f5 */ /*58 - - - shift f4 f3 f2 f1 */ /*----------------------------------------------------------------------*/ /*00*/ 57, 27, 43, 53, 203, 208, 28, 38, /*08*/ IGN, 26, 40, 39, 205, 200, 52, 24, /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44, /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30, /*20*/ 9, 8, 7, 6, 19, 18, 17, 16, /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10, /*30*/ 37, 36, 35, 34, 5, 4, 3, 2, /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1, /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, 219, /*48*/ IGN, 56, IGN, IGN, 81, 73, 68, 67, /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63, /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59, }; static const keysym_t mobilepro_cmdmap[] = { /* pos command normal shifted */ KC(219), KS_Cmd, KS_Meta_L, KS_Multi_key, KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9, KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3, KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less, KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater, KC(57), KS_Cmd_BacklightToggle,KS_space, }; /* NEC MobilePro 750c by "Castor Fu" */ static uint8_t mobilepro750c_keytrans[] = { /*00 right \ p . y b z space */ /*08 down / o , t v a - */ /*10 left enter i m r c w Win */ /*18 num ] u n e x q caps */ /*20 pgdn - 0 l : g tab esc */ /*28 - ; 9 k 5 f 2 ` */ /*30 up [ 8 j 4 d 1 ' */ /*38 - @ 7 h 3 s del - */ /*40 shift - - - bs f12 f8 f4 */ /*48 - alt - - | f11 f7 f3 */ /*50 - - ctrl - f10 f10 f6 f2 */ /*58 - - - shift del f9 f5 f1 */ /*----------------------------------------------------------------------*/ /*00*/ 205, 43, 25, 52, 21, 48, 44, 57, /*08*/ 208, 53, 24, 51, 20, 47, 30, IGN, /*10*/ 203, 28, 23, 50, 19, 46, 17, 221, /*18*/ 69, 27, 22, 49, 18, 45, 16, 58, /*20*/ 81, IGN, 11, 38, 7, 34, 15, 1, /*28*/ IGN, 39, 10, 37, 6, 33, 3, 41, /*30*/ 200, 26, 9, 36, 5, 32, 2, 40, /*38*/ 12, 26, 8, 35, 4, 31, 83, IGN, /*40*/ 42, IGN, IGN, IGN, 14, 88, 66, 62, /*48*/ IGN, 56, IGN, IGN, 125, 87, 65, 61, /*50*/ IGN, IGN, 29, IGN, 68, 68, 64, 60, /*58*/ IGN, IGN, IGN, 42, 13, 67, 63, 59, }; /* NEC MobilePro 780 */ static uint8_t mobilepro780_keytrans[] = { /*00 space ] \ / left right enter l */ /*08 - [ ' ; up down . o */ /*10 - - - Windows v c x z */ /*18 - = \- ` f d s a */ /*20 8 7 6 5 r e w q */ /*28 , m n b - - 0 9 */ /*30 k j h g 4 3 2 1 */ /*38 i u y t - caps del esc */ /*40 alt_R - - - BS p TAB Fn */ /*48 - alt_L - - f12 f11 f10 f9 */ /*50 - - ctrl - f8 f7 f6 f5 */ /*58 - - - shift f4 f3 f2 f1 */ /*----------------------------------------------------------------------*/ /*00*/ 57, 27, 43, 53, 203, 205, 28, 38, /*08*/ IGN, 26, 40, 39, 200, 208, 52, 24, /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44, /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30, /*20*/ 9, 8, 7, 6, 19, 18, 17, 16, /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10, /*30*/ 37, 36, 35, 34, 5, 4, 3, 2, /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1, /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, IGN, /*48*/ IGN, 56, IGN, IGN, 88, 87, 68, 67, /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63, /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59, }; /* NEC MobilePro 8x0 */ static uint8_t mobilepro8x0_keytrans[] = { /*00 space ] \ / left right enter l */ /*08 - [ ' ; up down . o */ /*10 - - - Windows v c x z */ /*18 - = \- ` f d s a */ /*20 8 7 6 5 r e w q */ /*28 , m n b - - 0 9 */ /*30 k j h g 4 3 2 1 */ /*38 i u y t - caps del esc */ /*40 alt_R - - - BS p TAB Fn */ /*48 - alt_L - - pgdn pgup f10 f9 */ /*50 - - ctrl - f8 f7 f6 f5 */ /*58 - - - shift f4 f3 f2 f1 */ /*----------------------------------------------------------------------*/ /*00*/ 57, 27, 43, 53, 203, 205, 28, 38, /*08*/ IGN, 26, 40, 39, 200, 208, 52, 24, /*10*/ IGN, IGN, IGN, 221, 47, 46, 45, 44, /*18*/ IGN, 13, 12, 41, 33, 32, 31, 30, /*20*/ 9, 8, 7, 6, 19, 18, 17, 16, /*28*/ 51, 50, 49, 48, IGN, IGN, 11, 10, /*30*/ 37, 36, 35, 34, 5, 4, 3, 2, /*38*/ 23, 22, 21, 20, IGN, 58, 14, 1, /*40*/ 184, IGN, IGN, IGN, 14, 25, 15, 219, /*48*/ IGN, 56, IGN, IGN, 81, 73, 68, 67, /*50*/ IGN, IGN, 29, IGN, 66, 65, 64, 63, /*58*/ IGN, IGN, IGN, 42, 62, 61, 60, 59, }; static const keysym_t mobilepro8x0_cmdmap[] = { /* pos command normal shifted */ KC(219), KS_Cmd, KS_Meta_L, KS_Multi_key, KC(73), KS_Cmd_BrightnessUp, KS_KP_Prior, KS_KP_9, KC(81), KS_Cmd_BrightnessDown, KS_KP_Next, KS_KP_3, KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less, KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater, KC(57), KS_Cmd_BacklightToggle,KS_space, }; /* FUJITSU INTERTOP CX300 */ static uint8_t intertop_keytrans[] = { /*00 space a2 1 tab enter caps left zenkaku */ /*08 hiraga a1 2 q - a fnc esc */ /*10 ins w 3 s del ] down x */ /*18 z e 4 d a10 \ right c */ /*20 backsla r ; f a9 @ ^ v */ /*28 / t 5 g a8 p - b */ /*30 . y 6 h a7 l 0 n */ /*38 - u 7 j a5 o bs m */ /*40 - a3 8 a4 - i k , */ /*48 num : 9 [ a6 - up - */ /*50 - - - - shift_L - - shift_R */ /*58 ctrl win muhenka henkan alt - - - */ /*----------------------------------------------------------------------*/ /*00*/ 57, 60, 2, 15, 28, 58, 205, 41, /*08*/ 112, 59, 3, 16, IGN, 30, 56, 1, /*10*/ 210, 17, 4, 31, 83, 43, 208, 45, /*18*/ 44, 18, 5, 32, 68, 125, 203, 46, /*20*/ 115, 19, 39, 33, 67, 26, 13, 47, /*28*/ 53, 20, 6, 34, 66, 25, 12, 48, /*30*/ 52, 21, 7, 35, 65, 38, 11, 49, /*38*/ IGN, 22, 8, 36, 63, 24, 14, 50, /*40*/ IGN, 61, 9, 62, IGN, 23, 37, 51, /*48*/ 69, 40, 10, 27, 64, IGN, 200, IGN, /*50*/ IGN, IGN, IGN, IGN, 42, IGN, IGN, 54, /*58*/ 29, 221, 123, 121, 184, IGN, IGN, IGN, }; /* DoCoMo sigmarion (Japan) */ static uint8_t sigmarion_jp_keytrans[] = { /*00 right ent p . y b z space */ /*08 down / o , t v a nfer */ /*10 left \ i m r c w menu */ /*18 | - u - e x q 1 */ /*20 pgdn h/z 0 l : g tab f1 */ /*28 xfer ; 9 n 5 f 2 k */ /*30 up [ 8 j 4 d 6 - */ /*38 - @ 7 h 3 ] s - */ /*40 caps - - - bs fnc f8 f3 */ /*48 - alt - - ^ k/h f7 f4 */ /*50 - - ctrl - f10 pgup f6 f2 */ /*58 - - - shift del f9 f5 esc */ /*----------------------------------------------------------------------*/ /*00*/ 205, 28, 25, 52, 21, 48, 44, 57, /*08*/ 208, 53, 24, 51, 20, 47, 30, 123, /*10*/ 203, 115, 23, 50, 19, 46, 17, 221, /*18*/ 125, IGN, 22, IGN, 18, 45, 16, 2, /*20*/ 81, 41, 11, 38, 40, 34, 15, IGN, /*28*/ 121, 39, 10, 49, 6, 33, 3, 37, /*30*/ 200, 27, 9, 36, 5, 32, 7, IGN, /*38*/ 12, 26, 8, 35, 4, 43, 31, IGN, /*40*/ 58, IGN, IGN, IGN, 14, 184, 66, IGN, /*48*/ IGN, 56, IGN, IGN, 13, 112, 65, IGN, /*50*/ IGN, IGN, 29, IGN, 68, 73, 64, IGN, /*58*/ IGN, IGN, IGN, 42, 14, 67, IGN, 1, }; static const keysym_t sigmarion_cmdmap[] = { /* pos command normal shifted */ KC(184), KS_Cmd, KS_Alt_R, KS_Multi_key, KC(64), KS_Cmd_Screen0, KS_f6, KS_f1, KC(65), KS_Cmd_Screen1, KS_f7, KS_f2, KC(66), KS_Cmd_Screen2, KS_f8, KS_f3, KC(67), KS_Cmd_Screen3, KS_f9, KS_f4, KC(68), KS_Cmd_Screen4, KS_f10, KS_f5, KC(27), KS_Cmd_BrightnessUp, KS_bracketleft, KS_braceleft, KC(43), KS_Cmd_BrightnessDown, KS_bracketright,KS_braceright, KC(51), KS_Cmd_ContrastDown, KS_comma, KS_less, KC(52), KS_Cmd_ContrastUp, KS_period, KS_greater, KC(57), KS_Cmd_BacklightToggle,KS_space, }; /* NTT DoCoMo Pocket PostPet (Japan) */ static uint8_t pocketpostpet_keytrans[] = { /*00 esc 1 q a ctrl - down left */ /*08 tab 2 w s z - right up */ /*10 pgup 3 e d x shift - - */ /*18 pgdn 4 r f c alt - - */ /*20 f5 5 t g v nfer - - */ /*28 f6 6 y h b - - - */ /*30 f7 7 u j n space - - */ /*38 f8 8 i k m - - - */ /*40 f9 9 o l , xfer - - */ /*48 f10 0 p ; . - - - */ /*50 \| minus @ : / ent - - */ /*58 bs ^ [ ] \_ del - - */ /* MailCheck -> tab */ /* Prev -> pgup */ /* Next -> pgdn */ /* tab -> ctrl */ /* h/z -> menu */ /* k/h -> alt */ /* knj -> nfer */ /* eng -> xfer */ /*----------------------------------------------------------------------*/ /*00*/ 1, 2, 16, 30, 29, UNK, 208, 203, /*08*/ 15, 3, 17, 31, 44, UNK, 205, 200, /*10*/ 73, 4, 18, 32, 45, 42, UNK, UNK, /*08*/ 81, 5, 19, 33, 46, 56, UNK, UNK, /*20*/ 63, 6, 20, 34, 47, 123, UNK, UNK, /*28*/ 64, 7, 21, 35, 48, UNK, UNK, UNK, /*30*/ 65, 8, 22, 36, 49, 57, UNK, UNK, /*38*/ 66, 9, 23, 37, 50, UNK, UNK, UNK, /*40*/ 67, 10, 24, 38, 51, 121, UNK, UNK, /*48*/ 68, 11, 25, 39, 52, UNK, UNK, UNK, /*50*/ 125, 12, 26, 40, 53, 28, UNK, UNK, /*58*/ 14, 13, 27, 43, 115, 14, UNK, UNK, }; #endif /* hpcmips */ #ifdef hpcsh /* * HP Jornada 680/690 */ /* Japanese */ const uint8_t jornada6x0_jp_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK, /* ctrl 29 */ /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK, /* shift L 42 */ /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK, /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203, /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 115, UNK, /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, 121, UNK, /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 , /* alt 56 */ /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 123, /* 8 */ IGN, 53 , 39 , 25 , 11 , 200, UNK, 208, /* 9 */ 112, 40 , 27 , 26 , 12 , 125, UNK, 205, /*10 */ 41 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /* shift R 54 */ /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 221, UNK, /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, }; /* US/UK - Fn to the left of the space bar and missing few keys */ const uint8_t jornada6x0_us_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK, /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK, /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK, /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203, /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 53 , UNK, /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, UNK, UNK, /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 , /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 184, /* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208, /* 9 */ 68 , 40 , UNK, 43 , 12 , UNK, UNK, 205, /*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK, /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 219, UNK, /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, }; /* International - AltGr to the right and extra keys in three middle rows */ const uint8_t jornada6x0_intl_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 59 , 45 , 31 , 17 , 3 , UNK, 29 , UNK, /* 1 */ 60 , 46 , 32 , 18 , 4 , 42 , UNK, UNK, /* 2 */ 61 , 47 , 33 , 19 , 5 , UNK, 57 , UNK, /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203, /* 4 */ 65 , 51 , 37 , 23 , 9 , UNK, 184, UNK, /* 5 */ 64 , 50 , 36 , 22 , 8 , UNK, UNK, UNK, /* 6 */ 62 , 48 , 34 , 20 , 6 , UNK, UNK, 56 , /* 7 */ 63 , 49 , 35 , 21 , 7 , UNK, UNK, 41 , /* 8 */ 67 , 53 , 39 , 25 , 11 , 200, UNK, 208, /* 9 */ 68 , 40 , 27 , 26 , 12 , UNK, UNK, 205, /*10 */ 87 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*12 */ 1 , 44 , 30 , 16 , 2 , 15 , 219, UNK, /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, }; const int jornada6x0_special_keymap[] = { [KEY_SPECIAL_OFF] = -1, [KEY_SPECIAL_LIGHT] = -1 }; /* * HP 620LX */ /* Japanese */ const uint8_t hp620lx_jp_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 2 , 16 , 112, UNK, IGN, UNK, 42 , 30 , /* REC button */ /* 1 */ 3 , 17 , 58 , 44 , UNK, 45 , 15 , 31 , /* 2 */ 4 , 18 , UNK, 56 , 59 , 46 , 1 , 32 , /* 3 */ 5 , 19 , UNK, UNK, 60 , 123, UNK, 33 , /* 4 */ 6 , 20 , 47 , 57 , 61 , 48 , UNK, 34 , /* 5 */ 7 , 21 , UNK, 121, 62 , 49 , UNK, 35 , /* 6 */ 8 , 22 , UNK, 125, 63 , 50 , UNK, 36 , /* 7 */ 9 , 23 , 52 , 115, 64 , 51 , UNK, 37 , /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 , /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 , /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 41 , 43 , /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */ /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN /* LED button */ }; /* Other models */ const uint8_t hp620lx_intl_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 2 , 16 , 219, UNK, IGN, UNK, 42 , 30 , /* REC button */ /* 1 */ 3 , 17 , 15 , 44 , UNK, 45 , 41 , 31 , /* 2 */ 4 , 18 , UNK, 69 , 59 , 46 , 1 , 32 , /* 3 */ 5 , 19 , UNK, UNK, 60 , 56 , UNK, 33 , /* 4 */ 6 , 20 , 47 , 57 , 61 , 48 , UNK, 34 , /* 5 */ 7 , 21 , UNK, UNK, 62 , 49 , UNK, 35 , /* 6 */ 8 , 22 , UNK, 184, 63 , 50 , UNK, 36 , /* 7 */ 9 , 23 , 52 , 211, 64 , 51 , UNK, 37 , /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 , /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 , /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 54 , 43 , /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */ /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN, /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN /* LED button */ }; const int hp620lx_special_keymap[] = { [KEY_SPECIAL_OFF] = -1, /* 88 */ [KEY_SPECIAL_LIGHT] = 120 }; /* * HITACHI PERSONA HPW50PAD */ /* Japanese */ const uint8_t persona_hpw50pad_jp_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 59 , 61 , 63 , 65 , 67 , SPL, UNK, UNK, /* ON button */ /* 1 */ 29 , UNK, 47 , 48 , 121, UNK, UNK, UNK, /* 2 */ 1 , UNK, 34 , 51 , 112, UNK, UNK, UNK, /* 3 */ 41 , 221, 35 , 37 , 52 , UNK, UNK, UNK, /* 4 */ 45 , 58 , 22 , 38 , 40 , 42 , UNK, UNK, /* 5 */ 30 , 16 , 21 , 24 , 28 , 54 , UNK, UNK, /* 6 */ 17 , 4 , UNK, 10 , 12 , 205, UNK, UNK, /* 7 */ 31 , 18 , 7 , 25 , 13 , 83 , UNK, UNK, /* 8 */ 60 , 62 , 64 , 66 , 68 , UNK, UNK, UNK, /* 9 */ UNK, 123, 49 , 53 , 203, UNK, UNK, UNK, /*10 */ 56 , 46 , 50 , 57 , 208, UNK, UNK, UNK, /*11 */ 15 , 33 , 36 , 39 , 43 , UNK, UNK, UNK, /*12 */ 44 , 20 , 23 , 26 , 27 , UNK, UNK, UNK, /*13 */ 2 , 6 , 9 , 115, 200, UNK, UNK, UNK, /*14 */ 3 , 5 , UNK, UNK, 125, UNK, UNK, UNK, /*15 */ 32 , 19 , 8 , 11 , 14 , UNK, UNK, UNK, }; const int persona_hpw50pad_special_keymap[] = { [KEY_SPECIAL_OFF] = 5, [KEY_SPECIAL_LIGHT] = -1 }; static const keysym_t persona_hpw50pad_jp_keydesc[] = { /* pos command normal shifted */ KC(63), KS_Cmd_ContrastDown, KS_f5, KC(64), KS_Cmd_ContrastUp, KS_f6, KC(65), KS_Cmd_BrightnessDown, KS_f7, KC(66), KS_Cmd_BrightnessUp, KS_f8, KC(200),KS_Cmd_ScrollFastUp, KS_Up, KC(208),KS_Cmd_ScrollFastDown, KS_Down, KC(203),KS_KP_Home, KS_Left, KC(205),KS_KP_End, KS_Right, }; /* * HITACHI PERSONA HPW200EC */ /* US */ const uint8_t persona_hpw200ec_keytrans[] = { /* 0 1 2 3 4 5 6 7 */ /* 0 */ 3 , 2 , 71 , 69 , 67 , SPL, UNK, UNK, /* 1 */ 11 , UNK, 79 , 77 , 75 , UNK, UNK, UNK, /* 2 */ 19 , UNK, UNK, 85 , 83 , UNK, UNK, UNK, /* 3 */ 27 , 26 , 95 , 93 , 91 , UNK, UNK, UNK, /* 4 */ 35 , 34 , 103, 101, 99 , 32 , UNK, UNK, /* 5 */ 43 , 42 , 111, 109, 107, 40 , UNK, UNK, /* 6 */ 51 , 50 , 119, 117, 115, 48 , UNK, UNK, /* 7 */ 59 , 58 , UNK, UNK, 123, 56 , UNK, UNK, /* 8 */ 5 , 6 , 70 , 68 , 66 , UNK, UNK, UNK, /* 9 */ UNK, UNK, 78 , 76 , 74 , UNK, UNK, UNK, /*10 */ 21 , UNK, UNK, 84 , 82 , UNK, UNK, UNK, /*11 */ 29 , 30 , 94 , 92 , 90 , UNK, UNK, UNK, /*12 */ UNK, 26 , 102, 100, 98 , UNK, UNK, UNK, /*13 */ UNK, 46 , 110, 108, 106, 104, UNK, UNK, /*14 */ 53 , 54 , 118, 124, 114, UNK, UNK, UNK, /*15 */ 61 , 62 , 126, UNK, 122, UNK, UNK, UNK, }; const int persona_hpw200ec_special_keymap[] = { [KEY_SPECIAL_OFF] = 5, [KEY_SPECIAL_LIGHT] = -1 }; #endif /* hpcsh */ #ifdef hpcarm /* * HP Jornada 710/720/728 */ /* Japanese */ const uint8_t jornada7xx_jp_keytrans[] = { /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 , /* 08 */ 65 , 66 , 67 , 112, 41 , IGN, IGN, IGN, /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 , /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK, /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 , /* 28 */ 23, 24 , 25 , 26 , UNK, UNK, UNK, UNK, /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 , /* 38 */ 37, 38 , 39 , 27 , 43 , UNK, UNK, UNK, /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 , /* 48 */ 51, 52 , 53 , 40 , 28 , UNK, UNK, UNK, /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK, /* 58 */ UNK, UNK, 200, 125, 54 , UNK, UNK, UNK, /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 123, UNK, /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK, /* 70 */ UNK, 184, 29 , UNK, 57 , UNK, UNK, 121, /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL, }; /* US/UK - Fn to the left of the space bar and missing few keys */ const uint8_t jornada7xx_us_keytrans[] = { /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 , /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN, /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 , /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK, /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 , /* 28 */ 23, 24 , 25 , 43 , 14 , UNK, UNK, UNK, /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 , /* 38 */ 37, 38 , 39 , 40 , UNK, UNK, UNK, UNK, /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 , /* 48 */ 51, 52 , UNK, 40 , 28 , UNK, UNK, UNK, /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK, /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK, /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 184, UNK, /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK, /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK, /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL, }; /* International - AltGr to the right and extra keys in three middle rows */ const uint8_t jornada7xx_intl_keytrans[] = { /* 00 */ UNK, 1 , 59 , 60 , 61 , 62 , 63 , 64 , /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN, /* 10 */ UNK, 2 , 3 , 4 , 5 , 6 , 7 , 8 , /* 18 */ 9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK, /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 , /* 28 */ 23, 24 , 25 , 26 , 14 , UNK, UNK, UNK, /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 , /* 38 */ 37, 38 , 39 , 27 , 43 , UNK, UNK, UNK, /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 , /* 48 */ 51, 52 , 53 , 40 , 28 , UNK, UNK, UNK, /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK, /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK, /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 41 , UNK, /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK, /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK, /* 78 */ 184, 211, UNK, UNK, UNK, UNK, UNK, SPL, }; const int jornada7xx_special_keymap[] = { [KEY_SPECIAL_OFF] = 127, [KEY_SPECIAL_LIGHT] = -1 }; /* * Sharp W-ZERO3 series */ /* * WS003SH/WS004SH/WS007SH keyscan map CTRL (none) TAB (none) CALL MAIL IE 1 2 q w a z MOJI 3 4 e s d x (none) 5 r t f c - OK 6 y g v b SPACE ACTION 7 8 u h n / , 9 i j m . (none) LEFT 0 o k l (none) UP DOWN BS p (none) (none) ENTER (none) RIGHT (none) (none) (none) (none) (none) (none) (none) ROTATE VOL- (none) SHIFT WIN LSOFT RSOFT CAMERA VOL+ (none) (none) (none) FN (none) */ /* Japanese */ const uint8_t ws003sh_jp_keytrans[] = { /* row#0, row#1, row#2, row#3, row#4, row#5, row#6, */ /*00*/ 29, UNK, 15, UNK, IGN, IGN, IGN, /*01*/ 2, 3, 16, 17, 30, 44, 1, /*02*/ 4, 5, 18, 31, 32, 45, UNK, /*03*/ 6, 19, 20, 33, 46, 12, 28, /*04*/ 7, 21, 34, 47, 48, 57, 28, /*05*/ 8, 9, 22, 35, 49, 53, 51, /*06*/ 10, 23, 36, 50, 52, UNK, 203, /*07*/ 11, 24, 37, 38, UNK, 200, 208, /*08*/ 14, 25, UNK, UNK, 28, UNK, 205, /*09*/ UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*10*/ IGN, 174, UNK, 42, IGN, IGN, IGN, /*11*/ IGN, 176, UNK, UNK, UNK, 184, SPL, }; const int ws003sh_special_keymap[] = { [KEY_SPECIAL_OFF] = 83, [KEY_SPECIAL_LIGHT] = -1 }; static const keysym_t ws003sh_jp_keydesc[] = { /* pos normal shifted altgr */ KC(4), KS_3, KS_numbersign, KS_Cmd_BrightnessDown, KC(5), KS_4, KS_dollar, KS_Cmd_BrightnessUp, KC(8), KS_7, KS_apostrophe, KS_grave, KC(9), KS_8, KS_parenleft, KS_braceleft, KC(10), KS_9, KS_parenright, KS_braceright, KC(12), KS_minus, KS_equal, KS_backslash, KC(14), KS_Delete, KS_Delete, KS_BackSpace, KC(15), KS_Tab, KS_Tab, KS_Escape, KC(17), KS_w, KS_W, KS_asciicircum, KC(18), KS_e, KS_E, KS_asciitilde, KC(19), KS_r, KS_R, KS_bar, KC(22), KS_u, KS_U, KS_bracketleft, KC(23), KS_i, KS_I, KS_bracketright, KC(24), KS_o, KS_O, KS_underscore, KC(25), KS_p, KS_P, KS_at, KC(37), KS_k, KS_K, KS_plus, KC(38), KS_l, KS_L, KS_asterisk, KC(42), KS_Shift_L, KS_Shift_L, KS_Shift_Lock, KC(51), KS_comma, KS_semicolon, KS_less, KC(52), KS_period, KS_colon, KS_greater, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Up, KS_Up, KS_Prior, KC(203), KS_Left, KS_Left, KS_Home, KC(205), KS_Right, KS_Right, KS_End, KC(208), KS_Down, KS_Down, KS_Next, }; /* * WS011SH keyscan map Ctrl (none) Tab (none) (none) (none) (none) (none) (none) Q W A Z MOJI (none) (none) E S D X HAN/ZEN (none) R T F C - OK (none) Y G V B Space (none) (none) (none) U H N / , (none) I J M . (none) LEFT (none) O K L (none) UP DOWN Del P (none) (none) Enter (none) RIGHT (none) (none) (none) (none) (none) (none) (none) ROTATE (none) (none) SHIFT (none) (none) (none) (none) (none) (none) (none) (none) FN (none) */ /* Japanese */ const uint8_t ws011sh_jp_keytrans[] = { /* row#0, row#1, row#2, row#3, row#4, row#5, row#6, */ /*00*/ 29, UNK, 15, UNK, UNK, UNK, UNK, /*01*/ UNK, UNK, 16, 17, 30, 44, 1, /*02*/ UNK, UNK, 18, 31, 32, 45, 41, /*03*/ UNK, 19, 20, 33, 46, 12, 3, /*04*/ UNK, 21, 34, 47, 48, 57, UNK, /*05*/ UNK, UNK, 22, 35, 49, 53, 51, /*06*/ UNK, 23, 36, 50, 52, UNK, 203, /*07*/ UNK, 24, 37, 38, UNK, 200, 208, /*08*/ 14, 25, UNK, UNK, 28, UNK, 205, /*09*/ UNK, UNK, UNK, UNK, UNK, UNK, UNK, /*10*/ IGN, UNK, UNK, 42, UNK, UNK, UNK, /*11*/ UNK, UNK, UNK, UNK, UNK, 184, SPL, }; const int ws011sh_special_keymap[] = { [KEY_SPECIAL_OFF] = 83, [KEY_SPECIAL_LIGHT] = -1 }; static const keysym_t ws011sh_jp_keydesc[] = { /* pos normal shifted altgr */ KC(3), KS_grave, KS_braceleft, KS_braceright, KC(12), KS_minus, KS_equal, KS_backslash, KC(14), KS_Delete, KS_Delete, KS_BackSpace, KC(15), KS_Tab, KS_Tab, KS_Escape, KC(16), KS_q, KS_Q, KS_quotedbl, KC(17), KS_w, KS_W, KS_numbersign, KC(18), KS_e, KS_E, KS_dollar, KC(19), KS_r, KS_R, KS_percent, KC(20), KS_t, KS_T, KS_ampersand, KC(21), KS_y, KS_Y, KS_1, KC(22), KS_u, KS_U, KS_2, KC(23), KS_i, KS_I, KS_3, KC(24), KS_o, KS_O, KS_underscore, KC(25), KS_p, KS_P, KS_at, KC(30), KS_a, KS_A, KS_bracketleft, KC(31), KS_s, KS_S, KS_apostrophe, KC(32), KS_d, KS_D, KS_parenleft, KC(33), KS_f, KS_F, KS_parenright, KC(34), KS_g, KS_G, KS_asterisk, KC(35), KS_h, KS_H, KS_4, KC(36), KS_j, KS_J, KS_5, KC(37), KS_k, KS_K, KS_6, KC(38), KS_l, KS_L, KS_plus, KC(41), KS_Zenkaku_Hankaku, KS_Zenkaku_Hankaku, KS_exclam, KC(42), KS_Shift_L, KS_Shift_L, KS_Shift_Lock, KC(44), KS_z, KS_Z, KS_bracketright, KC(45), KS_x, KS_X, KS_asciicircum, KC(46), KS_c, KS_C, KS_asciitilde, KC(47), KS_v, KS_V, KS_bar, KC(48), KS_b, KS_B, KS_7, KC(49), KS_n, KS_N, KS_8, KC(50), KS_m, KS_M, KS_9, KC(51), KS_comma, KS_less, KS_semicolon, KC(52), KS_period, KS_greater, KS_colon, KC(53), KS_slash, KS_question, KS_0, KC(57), KS_space, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Up, KS_Up, KS_Prior, KC(203), KS_Left, KS_Left, KS_Home, KC(205), KS_Right, KS_Right, KS_End, KC(208), KS_Down, KS_Down, KS_Next, }; /* * WS020SH keyscan map Ctrl (none) Tab (none) (none) (none) (none) (none) (none) Q W A Z MOJI (none) (none) E S D X HAN/ZEN (none) R T F C - OK (none) Y G V B Space (none) (none) (none) U H N / , (none) I J M . (none) LEFT (none) O K L (none) UP (none) Del P (none) (none) Enter (none) RIGHT (none) (none) (none) (none) (none) DOWN (none) ROTATE MEDIA (none) LSHIFT RSHIFT (none) (none) (none) (none) (none) (none) (none) FN (none) */ /* Japanese */ const uint8_t ws020sh_jp_keytrans[] = { /* row#0, row#1, row#2, row#3, row#4, row#5, row#6, */ /*00*/ 29, UNK, 15, UNK, UNK, UNK, UNK, /*01*/ UNK, UNK, 16, 17, 30, 44, 1, /*02*/ UNK, UNK, 18, 31, 32, 45, 41, /*03*/ UNK, 19, 20, 33, 46, 12, 3, /*04*/ UNK, 21, 34, 47, 48, 57, UNK, /*05*/ UNK, UNK, 22, 35, 49, 53, 51, /*06*/ UNK, 23, 36, 50, 52, UNK, 203, /*07*/ UNK, 24, 37, 38, UNK, 200, UNK, /*08*/ 14, 25, UNK, UNK, 28, UNK, 205, /*09*/ UNK, UNK, UNK, UNK, UNK, 208, UNK, /*10*/ IGN, IGN, UNK, 42, 54, UNK, UNK, /*11*/ UNK, UNK, UNK, UNK, UNK, 184, SPL, }; const int ws020sh_special_keymap[] = { [KEY_SPECIAL_OFF] = 83, [KEY_SPECIAL_LIGHT] = -1 }; static const keysym_t ws020sh_jp_keydesc[] = { /* pos normal shifted altgr */ KC(3), KS_grave, KS_braceleft, KS_braceright, KC(12), KS_minus, KS_equal, KS_backslash, KC(14), KS_Delete, KS_Delete, KS_BackSpace, KC(15), KS_Tab, KS_Tab, KS_Escape, KC(16), KS_q, KS_Q, KS_quotedbl, KC(17), KS_w, KS_W, KS_numbersign, KC(18), KS_e, KS_E, KS_dollar, KC(19), KS_r, KS_R, KS_percent, KC(20), KS_t, KS_T, KS_ampersand, KC(21), KS_y, KS_Y, KS_underscore, KC(22), KS_u, KS_U, KS_1, KC(23), KS_i, KS_I, KS_2, KC(24), KS_o, KS_O, KS_3, KC(25), KS_p, KS_P, KS_at, KC(30), KS_a, KS_A, KS_bracketleft, KC(31), KS_s, KS_S, KS_apostrophe, KC(32), KS_d, KS_D, KS_parenleft, KC(33), KS_f, KS_F, KS_parenright, KC(34), KS_g, KS_G, KS_asterisk, KC(35), KS_h, KS_H, KS_4, KC(36), KS_j, KS_J, KS_5, KC(37), KS_k, KS_K, KS_6, KC(38), KS_l, KS_L, KS_plus, KC(41), KS_Zenkaku_Hankaku, KS_Zenkaku_Hankaku, KS_exclam, KC(42), KS_Shift_L, KS_Shift_L, KS_Shift_Lock, KC(44), KS_z, KS_Z, KS_bracketright, KC(45), KS_x, KS_X, KS_asciicircum, KC(46), KS_c, KS_C, KS_asciitilde, KC(47), KS_v, KS_V, KS_bar, KC(48), KS_b, KS_B, KS_7, KC(49), KS_n, KS_N, KS_8, KC(50), KS_m, KS_M, KS_9, KC(51), KS_comma, KS_less, KS_semicolon, KC(52), KS_period, KS_greater, KS_colon, KC(53), KS_slash, KS_question, KS_0, KC(54), KS_Shift_R, KS_Shift_R, KS_Shift_Lock, KC(57), KS_space, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Up, KS_Up, KS_Prior, KC(203), KS_Left, KS_Left, KS_Home, KC(205), KS_Right, KS_Right, KS_End, KC(208), KS_Down, KS_Down, KS_Next, }; const uint8_t netbookpro_keytrans[] = { /* row#0, row#1, row#2, row#3, row#4, row#5, row#6, row#7 */ /*00*/ 28, 205, 15, 21, 203, 208, 49, 42, UNK, UNK, UNK, UNK, UNK, 14, UNK, 12, /*10*/ 13, 11, 25, 39, UNK, 54, UNK, UNK, UNK, UNK, UNK, 37, 23, 9, 10, 24, /*20*/ 38, UNK, UNK, 29, UNK, UNK, UNK, UNK, 51, 40, 50, 36, 22, 8, UNK, UNK, /*30*/ UNK, 184, UNK, UNK, 57, 19, 5, 6, 20, 34, 48, UNK, UNK, UNK, UNK, 43, /*40*/ UNK, 56, 33, 47, 46, 32, 18, 4, UNK, UNK, UNK, UNK, UNK, 53, UNK, 16, /*50*/ 30, 44, 31, 17, 45, UNK, UNK, UNK, UNK, UNK, UNK, 1, 2, 3, 7, 52, /*60*/ UNK, 35, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK, }; static const keysym_t netbookpro_keydesc[] = { /* pos command normal shifted fn */ KC(2), KS_Cmd_Screen0, KS_1, KS_exclam, KS_f1, KC(3), KS_Cmd_Screen1, KS_2, KS_at, KS_f2, KC(4), KS_Cmd_Screen2, KS_3, KS_numbersign, KS_f3, KC(5), KS_Cmd_Screen3, KS_4, KS_dollar, KS_f4, KC(6), KS_5, KS_percent, KS_grave, KC(7), KS_6, KS_asciicircum, KS_apostrophe, KC(8), KS_7, KS_ampersand, KS_braceleft, KC(9), KS_8, KS_asterisk, KS_braceright, KC(10), KS_9, KS_parenleft, KS_bracketleft, KC(11), KS_0, KS_parenright, KS_bracketright, KC(12), KS_minus, KS_underscore, KS_numbersign, KC(15), KS_Tab, KS_BackSpace, KS_Caps_Lock, KC(40), KS_apostrophe, KS_quotedbl, KS_at, KC(43), KS_backslash, KS_asciitilde, KS_bar, KC(51), KS_comma, KS_less, KS_minus, KC(52), KS_period, KS_greater, KS_plus, KC(53), KS_slash, KS_question, KS_Help, KC(184), KS_Mode_switch, KS_Multi_key, KC(203), KS_Left, KS_Left, KS_Home, KC(205), KS_Right, KS_Right, KS_End, }; #endif /* hpcarm */ #if defined(hpcarm) || defined(hpcsh) /* * Shared keymaps between the Jornada series (6xx, 7xx). */ /* US (ABA), UK (ABU) */ static const keysym_t jornada_us_keydesc[] = { /* pos normal shifted altgr */ KC(2), KS_1, KS_exclam, KS_asciitilde, KC(3), KS_2, KS_at, KS_grave, KC(4), KS_3, KS_numbersign, KS_sterling, #ifdef KS_euro KC(5), KS_4, KS_dollar, KS_euro, #endif KC(25), KS_p, KS_P, KS_braceleft, KC(39), KS_semicolon, KS_colon, KS_bracketleft, KC(40), KS_apostrophe, KS_quotedbl, KS_bracketright, KC(43), KS_backslash, KS_bar, KS_braceright, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Cmd_BrightnessUp, KS_Up, KC(203), KS_Cmd_ContrastDown, KS_Left, KC(205), KS_Cmd_ContrastUp, KS_Right, KC(208), KS_Cmd_BrightnessDown, KS_Down, }; /* * XXX: Add AltGr layer for #ABB here? OTOH, all the keys necessary * for basic actions in DDB or shell are on the primary layer, so it * makes sense to support AltGr via wsconsctl(8) instead, as the same * primary layer is used e.g. in Russian models. But it does make * sense to define the key itself here, as we base this layout * on KB_US that defines it as the right . */ /* European English (ABB) */ static const keysym_t jornada_intl_keydesc[] = { /* pos normal shifted altgr */ KC(42), KS_Shift_L, KS_Shift_L, KS_Caps_Lock, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Cmd_BrightnessUp, KS_Up, KC(203), KS_Cmd_ContrastDown, KS_Left, KC(205), KS_Cmd_ContrastUp, KS_Right, KC(208), KS_Cmd_BrightnessDown, KS_Down, }; /* German (ABD) */ static const keysym_t jornada_de_keydesc[] = { /* pos normal shifted altgr */ KC(2), KS_1, KS_exclam, KS_brokenbar, KC(5), KS_4, KS_dollar, KS_ccedilla, KC(6), KS_5, KS_percent, KS_sterling, KC(7), KS_6, KS_ampersand, KS_notsign, #ifdef KS_euro KC(18), KS_e, KS_E, KS_euro, #endif KC(27), KS_plus, KS_asterisk, KS_asciitilde, /* NB: not dead */ KC(30), KS_a, KS_A, KS_bar, KC(41), KS_asciicircum, KS_degree, /* NB: not dead */ KC(43), KS_numbersign, KS_apostrophe, KS_dead_diaeresis, KC(44), KS_y, KS_Y, KS_less, KC(45), KS_x, KS_X, KS_greater, KC(46), KS_c, KS_C, KS_cent, KC(200), KS_Cmd_BrightnessUp, KS_Up, KC(203), KS_Cmd_ContrastDown, KS_Left, KC(205), KS_Cmd_ContrastUp, KS_Right, KC(208), KS_Cmd_BrightnessDown, KS_Down, }; /* French (ABF) */ static const keysym_t jornada_fr_keydesc[] = { /* pos normal shifted altgr */ KC(2), KS_ampersand, KS_1, KS_plusminus, #ifdef KS_euro KC(18), KS_e, KS_E, KS_euro, #endif KC(19), KS_r, KS_R, KS_onequarter, KC(20), KS_t, KS_T, KS_onehalf, KC(21), KS_y, KS_Y, KS_threequarters, KC(25), KS_p, KS_P, KS_paragraph, KC(30), KS_q, KS_Q, KS_brokenbar, KC(31), KS_s, KS_S, KS_guillemotleft, KC(32), KS_d, KS_D, KS_guillemotright, KC(40), KS_ugrave, KS_percent, KS_dead_acute, KC(41), KS_twosuperior, KS_voidSymbol, KS_threesuperior, KC(43), KS_asterisk, KS_mu, KS_notsign, KC(44), KS_w, KS_W, KS_less, KC(45), KS_x, KS_X, KS_greater, KC(46), KS_c, KS_C, KS_cent, KC(50), KS_comma, KS_question, KS_mu, KC(53), KS_exclam, KS_section, KS_Eacute, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Cmd_BrightnessUp, KS_Up, KC(203), KS_Cmd_ContrastDown, KS_Left, KC(205), KS_Cmd_ContrastUp, KS_Right, KC(208), KS_Cmd_BrightnessDown, KS_Down, }; /* Scandinavian */ static const keysym_t jornada_scnv_keydesc[] = { /* pos normal shifted altgr */ KC(2), KS_1, KS_exclam, KS_asciitilde, KC(3), KS_2, KS_quotedbl, KS_at, KC(4), KS_3, KS_numbersign, KS_sterling, KC(5), KS_4, KS_currency, KS_dollar, KC(7), KS_6, KS_ampersand, KC(8), KS_7, KS_slash, KS_braceleft, KC(9), KS_8, KS_parenleft, KS_bracketleft, KC(10), KS_9, KS_parenright, KS_bracketright, KC(11), KS_0, KS_equal, KS_braceright, KC(12), KS_plus, KS_question, KS_backslash, KC(13), KS_apostrophe, KS_grave, KC(25), KS_p, KS_P, KS_braceleft, KC(26), KS_aring, /* * XXX: KC(39) and KC(40) has odiaeresis/adiaeresis *and* * oslash/ae on them. Apparently localized WinCE uses the former * for Swedish and Finnish and the latter for Danish and * Norwegian. But as the keyboard doesn't seem to have * semicolon/colon and minus/underscore nowhere on the primary and * altgr layers, I put them here (semicolon/colon is inherited). */ KC(40), KS_minus, KS_underscore, /* XXX */ KC(41), KS_paragraph, KS_onehalf, KS_bar, KC(184), KS_Mode_switch, KS_Multi_key, KC(200), KS_Cmd_BrightnessUp, KS_Up, KC(203), KS_Cmd_ContrastDown, KS_Left, KC(205), KS_Cmd_ContrastUp, KS_Right, KC(208), KS_Cmd_BrightnessDown, KS_Down, }; /* Spanish (ABE) */ static const keysym_t jornada_es_keydesc[] = { /* pos normal shifted altgr */ KC(2), KS_1, KS_exclam, KS_ordfeminine, KC(3), KS_2, KS_quotedbl, KS_masculine, KC(4), KS_3, KS_numbersign, KC(12), KS_apostrophe, KS_question, KS_backslash, KC(13), KS_questiondown,KS_exclamdown, KC(16), KS_q, KS_Q, KS_at, #ifdef KS_euro KC(18), KS_e, KS_E, KS_euro, #endif KC(26), KS_dead_acute, KS_dead_diaeresis, KC(27), KS_plus, KS_asterisk, KS_dead_tilde, KC(40), KS_braceleft, KS_bracketleft,KS_dead_circumflex, KC(41), KS_bar, KS_degree, KS_notsign, KC(43), KS_braceright, KS_bracketright,KS_dead_grave, KC(44), KS_z, KS_Z, KS_less, KC(45), KS_x, KS_X, KS_greater, KC(46), KS_c, KS_C, KS_Ccedilla, KC(200), KS_Cmd_BrightnessUp, KS_Up, KC(203), KS_Cmd_ContrastDown, KS_Left, KC(205), KS_Cmd_ContrastUp, KS_Right, KC(208), KS_Cmd_BrightnessDown, KS_Down, }; #endif /* hpcarm || hpcsh */ /* * REMINDER: * When adding new entry to this array, make sure that pckbd_keydesctab[] * in sys/dev/pckbport/wskbdmap_mfii.c has a placeholder KB_MACHDEP entry * for the base ht_layout that you refer. */ const struct hpckbd_keymap_table { platid_t *ht_platform; const uint8_t *ht_keymap; const int *ht_special; struct { const keysym_t *map; int size; } ht_cmdmap; kbd_t ht_layout; } hpckbd_keymap_table[] = { #ifdef hpcmips { &platid_mask_MACH_COMPAQ_C, tc5165_compaq_c_jp_keymap, tc5165_compaq_c_jp_special_keymap, NULLCMDMAP, KB_JP }, { &platid_mask_MACH_VICTOR_INTERLINK, m38813c_keymap, default_special_keymap, NULLCMDMAP, KB_JP }, { &platid_mask_MACH_SHARP_TELIOS, tc5165_telios_jp_keymap, default_special_keymap, CMDMAP(tc5165_telios_jp_cmdmap), KB_JP }, { &platid_mask_MACH_SHARP_MOBILON, tc5165_mobilon_keymap, tc5165_mobilon_special_keymap, NULLCMDMAP, KB_US }, { &platid_mask_MACH_NEC_MCR_500A, mobilepro750c_keytrans, NULL, NULLCMDMAP, KB_US }, { &platid_mask_MACH_NEC_MCR_520A, mobilepro_keytrans, NULL, CMDMAP(mobilepro_cmdmap), KB_US }, { &platid_mask_MACH_NEC_MCR_530A, mobilepro780_keytrans, NULL, NULLCMDMAP, KB_US }, { &platid_mask_MACH_NEC_MCR_700A, mobilepro8x0_keytrans, NULL, CMDMAP(mobilepro8x0_cmdmap), KB_US }, { &platid_mask_MACH_NEC_MCR_730A, mobilepro8x0_keytrans, NULL, CMDMAP(mobilepro8x0_cmdmap), KB_US }, { &platid_mask_MACH_NEC_MCR_MPRO700, mobilepro_keytrans, NULL, NULLCMDMAP, KB_US }, { &platid_mask_MACH_NEC_MCR_SIGMARION, sigmarion_jp_keytrans, NULL, CMDMAP(sigmarion_cmdmap), KB_JP }, { &platid_mask_MACH_NEC_MCR_SIGMARION2, sigmarion_jp_keytrans, NULL, CMDMAP(sigmarion_cmdmap), KB_JP }, { &platid_mask_MACH_NEC_MCR, mcr_jp_keytrans, NULL, CMDMAP(mcr_jp_cmdmap), KB_JP }, { &platid_mask_MACH_IBM_WORKPAD_Z50, z50_keytrans, NULL, NULLCMDMAP, KB_US }, { &platid_mask_MACH_SHARP_TRIPAD, tripad_keytrans, NULL, CMDMAP(tripad_cmdmap), KB_US }, { &platid_mask_MACH_VADEM_CLIO_C, tripad_keytrans, NULL, CMDMAP(tripad_cmdmap), KB_US }, { &platid_mask_MACH_NEC_MCCS, mccs_keytrans, NULL, CMDMAP(mccs_cmdmap), KB_JP }, { &platid_mask_MACH_FUJITSU_INTERTOP, intertop_keytrans, NULL, NULLCMDMAP, KB_JP }, { &platid_mask_MACH_CASIO_POCKETPOSTPET, pocketpostpet_keytrans, NULL, NULLCMDMAP, KB_JP }, #endif /* hpcmips */ #ifdef hpcsh /* * HP Jornada 680/690 */ /* Japanese */ { &platid_mask_MACH_HP_JORNADA_680JP, jornada6x0_jp_keytrans, jornada6x0_special_keymap, NULLCMDMAP, KB_JP }, { &platid_mask_MACH_HP_JORNADA_690JP, jornada6x0_jp_keytrans, jornada6x0_special_keymap, NULLCMDMAP, KB_JP }, /* US (ABA), UK (ABU) */ { &platid_mask_MACH_HP_JORNADA_680, jornada6x0_us_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_us_keydesc), KB_US }, { &platid_mask_MACH_HP_JORNADA_690, jornada6x0_us_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_us_keydesc), KB_US }, /* European English (ABB) */ { &platid_mask_MACH_HP_JORNADA_680EU, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_intl_keydesc), KB_US }, { &platid_mask_MACH_HP_JORNADA_690EU, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_intl_keydesc), KB_US }, /* German (ABD) */ { &platid_mask_MACH_HP_JORNADA_680DE, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_de_keydesc), KB_DE }, { &platid_mask_MACH_HP_JORNADA_690DE, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_de_keydesc), KB_DE }, /* French (ABF) */ { &platid_mask_MACH_HP_JORNADA_680FR, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_fr_keydesc), KB_FR }, { &platid_mask_MACH_HP_JORNADA_690FR, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_fr_keydesc), KB_FR }, /* Scandinavian */ { &platid_mask_MACH_HP_JORNADA_680SV, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_scnv_keydesc), KB_US }, { &platid_mask_MACH_HP_JORNADA_690SV, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_scnv_keydesc), KB_US }, /* Spanish (ABE) */ { &platid_mask_MACH_HP_JORNADA_680ES, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_es_keydesc), KB_ES }, { &platid_mask_MACH_HP_JORNADA_690ES, jornada6x0_intl_keytrans, jornada6x0_special_keymap, CMDMAP(jornada_es_keydesc), KB_ES }, /* * HP 620LX */ /* Japanese */ { &platid_mask_MACH_HP_LX_620JP, hp620lx_jp_keytrans, hp620lx_special_keymap, NULLCMDMAP, KB_JP }, /* Other models */ { &platid_mask_MACH_HP_LX_620, hp620lx_intl_keytrans, hp620lx_special_keymap, NULLCMDMAP, KB_US }, /* * PERSONA HPW50PAD */ /* Japanese */ { &platid_mask_MACH_HITACHI_PERSONA_HPW50PAD, persona_hpw50pad_jp_keytrans, persona_hpw50pad_special_keymap, CMDMAP(persona_hpw50pad_jp_keydesc), KB_JP }, /* * PERSONA HPW200EC */ /* US */ { &platid_mask_MACH_HITACHI_PERSONA_HPW200EC, persona_hpw200ec_keytrans, persona_hpw200ec_special_keymap, NULLCMDMAP, KB_US }, #endif /* hpcsh */ #ifdef hpcarm /* * HP Jornada 710/720/728 */ /* US (ABA), UK (ABU) */ { &platid_mask_MACH_HP_JORNADA_720, jornada7xx_us_keytrans, jornada7xx_special_keymap, CMDMAP(jornada_us_keydesc), KB_US }, /* Japanese */ { &platid_mask_MACH_HP_JORNADA_720JP, jornada7xx_jp_keytrans, jornada7xx_special_keymap, NULLCMDMAP, KB_JP }, /* European English (ABB) */ { &platid_mask_MACH_HP_JORNADA_720EU, jornada7xx_intl_keytrans, jornada7xx_special_keymap, CMDMAP(jornada_intl_keydesc), KB_US }, /* German (ABD) */ { &platid_mask_MACH_HP_JORNADA_720DE, jornada7xx_intl_keytrans, jornada7xx_special_keymap, CMDMAP(jornada_de_keydesc), KB_DE }, /* French (ABF) */ { &platid_mask_MACH_HP_JORNADA_720FR, jornada7xx_intl_keytrans, jornada7xx_special_keymap, CMDMAP(jornada_fr_keydesc), KB_FR }, /* Scandinavian */ { &platid_mask_MACH_HP_JORNADA_720SV, jornada7xx_intl_keytrans, jornada7xx_special_keymap, CMDMAP(jornada_scnv_keydesc), KB_US }, /* Spanish (ABE) */ { &platid_mask_MACH_HP_JORNADA_720ES, jornada7xx_intl_keytrans, jornada7xx_special_keymap, CMDMAP(jornada_es_keydesc), KB_ES }, /* * Sharp W-ZERO3 */ /* WS003SH */ { &platid_mask_MACH_SHARP_WZERO3_WS003SH, ws003sh_jp_keytrans, ws003sh_special_keymap, CMDMAP(ws003sh_jp_keydesc), KB_JP }, /* WS004SH */ { &platid_mask_MACH_SHARP_WZERO3_WS004SH, ws003sh_jp_keytrans, ws003sh_special_keymap, CMDMAP(ws003sh_jp_keydesc), KB_JP }, /* WS007SH */ { &platid_mask_MACH_SHARP_WZERO3_WS007SH, ws003sh_jp_keytrans, ws003sh_special_keymap, CMDMAP(ws003sh_jp_keydesc), KB_JP }, /* WS011SH */ { &platid_mask_MACH_SHARP_WZERO3_WS011SH, ws011sh_jp_keytrans, ws011sh_special_keymap, CMDMAP(ws011sh_jp_keydesc), KB_JP }, /* WS020SH */ { &platid_mask_MACH_SHARP_WZERO3_WS020SH, ws020sh_jp_keytrans, ws020sh_special_keymap, CMDMAP(ws020sh_jp_keydesc), KB_JP }, /* NETBOOK PRO */ { &platid_mask_MACH_PSIONTEKLOGIX_NETBOOK_PRO, netbookpro_keytrans, NULL, CMDMAP(netbookpro_keydesc), KB_US }, #endif /* hpcarm */ { .ht_platform = NULL } /* end mark */ };