xref: /netbsd-src/sys/dev/hpc/hpckbdkeymap.h (revision 587ef94054f54d4e5c9e0e007335f9327db832eb)
1*587ef940Skiyohara /*	$NetBSD: hpckbdkeymap.h,v 1.51 2011/08/06 03:53:40 kiyohara Exp $	*/
2659f65e0Such 
3659f65e0Such /*-
4eb330e61Such  * Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
5659f65e0Such  * All rights reserved.
6659f65e0Such  *
7659f65e0Such  * Redistribution and use in source and binary forms, with or without
8659f65e0Such  * modification, are permitted provided that the following conditions
9659f65e0Such  * are met:
10659f65e0Such  * 1. Redistributions of source code must retain the above copyright
11659f65e0Such  *    notice, this list of conditions and the following disclaimer.
12659f65e0Such  * 2. Redistributions in binary form must reproduce the above copyright
13659f65e0Such  *    notice, this list of conditions and the following disclaimer in the
14659f65e0Such  *    documentation and/or other materials provided with the distribution.
15659f65e0Such  *
16659f65e0Such  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17659f65e0Such  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18659f65e0Such  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19659f65e0Such  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20659f65e0Such  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21659f65e0Such  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22659f65e0Such  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23659f65e0Such  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24659f65e0Such  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25659f65e0Such  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26659f65e0Such  * POSSIBILITY OF SUCH DAMAGE.
27659f65e0Such  */
28659f65e0Such 
29659f65e0Such #define UNK		255	/* unknown */
30659f65e0Such #define IGN		254	/* ignore */
31659f65e0Such #define SPL		253	/* special key */
32659f65e0Such #define KC(n)		KS_KEYCODE(n)
33659f65e0Such #define CMDMAP(map)	{ map, (sizeof(map)/sizeof(keysym_t)) }
34659f65e0Such #define NULLCMDMAP	{ NULL, 0 }
35659f65e0Such 
36659f65e0Such #define KEY_SPECIAL_OFF		0
37659f65e0Such #define KEY_SPECIAL_LIGHT	1
38659f65e0Such 
3980e190d1Suwe const uint8_t default_keymap[] = {
40659f65e0Such /*      0    1    2    3    4    5    6    7 */
41659f65e0Such /* 0 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
42659f65e0Such /* 1 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
43659f65e0Such /* 2 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
44659f65e0Such /* 3 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
45659f65e0Such /* 4 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
46659f65e0Such /* 5 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
47659f65e0Such /* 6 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
48659f65e0Such /* 7 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
49659f65e0Such /* 8 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
50659f65e0Such /* 9 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
51659f65e0Such /*10 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
52659f65e0Such /*11 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
53659f65e0Such /*12 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
54659f65e0Such /*13 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
55659f65e0Such /*14 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
56659f65e0Such /*15 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
57659f65e0Such };
58659f65e0Such 
59659f65e0Such const int default_special_keymap[] = {
60659f65e0Such 	[KEY_SPECIAL_OFF]	= -1,
61659f65e0Such 	[KEY_SPECIAL_LIGHT]	= -1
62659f65e0Such };
63659f65e0Such 
64659f65e0Such #ifdef hpcmips
6580e190d1Suwe const uint8_t tc5165_mobilon_keymap[] = {
66659f65e0Such /*      0    1    2    3    4    5    6    7 */
67659f65e0Such /* 0 */	37 , 45 , 44 , UNK, 9  , 51 , 23 , UNK,
68659f65e0Such /* 1 */	UNK, 56 , UNK, UNK, UNK, UNK, UNK, UNK,
69659f65e0Such /* 2 */	UNK, UNK, 29 , UNK, UNK, UNK, UNK, UNK,
70659f65e0Such /* 3 */	24 , 203, UNK, 38 , 10 , 27 , 13 , UNK,
71659f65e0Such /* 4 */	40 , UNK, UNK, 39 , 26 , 53 , 11 , 12 ,
72659f65e0Such /* 5 */	UNK, UNK, UNK, 53 , 25 , UNK, UNK, SPL, /* Light */
73659f65e0Such /* 6 */	208, UNK, UNK, UNK, 52 , UNK, 43 , 14 ,
74659f65e0Such /* 7 */	205, 200, UNK, UNK, SPL, UNK, UNK, 28 , /* Off key */
75659f65e0Such /* 8 */	UNK, 41 , 59 , 15 , 2  , UNK, UNK, UNK,
76659f65e0Such /* 9 */	63 , 64 , 1  , UNK, 65 , 16 , 17 , UNK,
77659f65e0Such /*10 */	60 , UNK, 61 , 62 , 3  , UNK, UNK, UNK,
78659f65e0Such /*11 */	UNK, UNK, UNK, 42 , 58 , UNK, UNK, UNK,
79659f65e0Such /*12 */	47 , 33 , 46 , 5  , 4  , 18 , 19 , UNK,
80659f65e0Such /*13 */	34 , 35 , 20 , 48 , 6  , 7  , 21 , 49 ,
81659f65e0Such /*14 */	22 , 31 , 32 , 36 , 8  , 30 , 50 , 57 ,
82659f65e0Such /*15 */	UNK, IGN, UNK, UNK, UNK, UNK, UNK, UNK /* Windows key */
83659f65e0Such };
84659f65e0Such 
85659f65e0Such const int tc5165_mobilon_special_keymap[] = {
86d04123caSpeter 	[KEY_SPECIAL_OFF]	= -1,	/* 60 */
87659f65e0Such 	[KEY_SPECIAL_LIGHT]	= 47
88659f65e0Such };
89659f65e0Such 
9080e190d1Suwe const uint8_t tc5165_telios_jp_keymap[] = {
91659f65e0Such /*      0    1    2    3    4    5    6    7 */
92659f65e0Such /* 0 */	58,  15,  IGN, 1,   IGN, IGN, IGN, IGN,
93659f65e0Such /* 1 */	IGN, IGN, IGN, IGN, 54,  42,  IGN, IGN,
94659f65e0Such /* 2 */	31,  18,  4,   IGN, IGN, 32,  45,  59,
95659f65e0Such /* 3 */	33,  19,  5,   61,  IGN, 46,  123, 60,
96659f65e0Such /* 4 */	35,  21,  8,   64,  IGN, 48,  49,  63,
97659f65e0Such /* 5 */	17,  16,  3,   IGN, 2,   30,  44,  41,
988ff59f4fSnakayama /* 6 */	IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN,
99659f65e0Such /* 7 */	IGN, IGN, IGN, IGN, IGN, IGN, 56,  IGN,
100659f65e0Such /* 8 */	34,  20,  7,   IGN, 6,   47,  57,  62,
101659f65e0Such /* 9 */	IGN, IGN, IGN, IGN, IGN, IGN, 29,  IGN,
102817d2a2cStakemura /*10 */	27,  125, 13,  203, 208, 40,  115, 68,
1038ff59f4fSnakayama /*11 */	39,  26,  25,  112, 12,  52,  53,  67,
1048ff59f4fSnakayama /*12 */	37,  24,  11,  121, 10,  38,  51,  66,
105659f65e0Such /*13 */	23,  22,  9,   IGN, IGN, 36,  50,  65,
106817d2a2cStakemura /*14 */	28,  43,  14,  200, 205, IGN, IGN, 211,
1078ff59f4fSnakayama /*15 */	IGN, IGN, IGN, IGN, IGN, IGN, 184, IGN
1088ff59f4fSnakayama };
1098ff59f4fSnakayama 
1108ff59f4fSnakayama static const keysym_t tc5165_telios_jp_cmdmap[] = {
1118ff59f4fSnakayama /*	pos      command		normal		shifted		*/
1128ff59f4fSnakayama 	KC(184), KS_Cmd,		KS_Alt_R,	KS_Multi_key,
1138ff59f4fSnakayama 	KC(205), KS_Cmd_BrightnessUp,	KS_Right,
1148ff59f4fSnakayama 	KC(203), KS_Cmd_BrightnessDown,	KS_Left,
1158ff59f4fSnakayama 	KC(57),  KS_Cmd_BacklightToggle,KS_space,
116659f65e0Such };
117659f65e0Such 
11880e190d1Suwe const uint8_t tc5165_compaq_c_jp_keymap[] = {
119659f65e0Such /*      0    1    2    3    4    5    6    7 */
120659f65e0Such /* 0 */	38,  50,  49,  48,  47,  46,  45,  44,
121659f65e0Such /* 1 */	56,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
122659f65e0Such /* 2 */	13,  IGN, 112, 121, 123, 41,  28,  57,
123817d2a2cStakemura /* 3 */	205, 203, 208, 200, 39,  53,  52,  51,
124659f65e0Such /* 4 */	24,  25,  40,  IGN, 43,  26,  115, 58,
125659f65e0Such /* 5 */	54,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
126659f65e0Such /* 6 */	IGN, IGN, IGN, SPL, IGN, IGN, IGN, IGN, /* Light */
127659f65e0Such /* 7 */	IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
128659f65e0Such /* 8 */	42,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
129659f65e0Such /* 9 */	29,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
130659f65e0Such /*10 */	221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
131659f65e0Such /*11 */	221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
132659f65e0Such /*12 */	14,  27,  12,  11,  10,  15,  1,   125,
133659f65e0Such /*13 */	9,   8,   7,   6,   5,   4,   3,   2,
134659f65e0Such /*14 */	23,  22,  21,  20,  19,  18,  17,  16,
135659f65e0Such /*15 */	37,  36,  35,  34,  33,  32,  31,  30
136659f65e0Such };
137659f65e0Such 
138659f65e0Such const int tc5165_compaq_c_jp_special_keymap[] = {
139659f65e0Such 	[KEY_SPECIAL_OFF]	= -1, /* don't have off button */
140659f65e0Such 	[KEY_SPECIAL_LIGHT]	= 51
141659f65e0Such };
142659f65e0Such 
14380e190d1Suwe const uint8_t m38813c_keymap[] = {
144659f65e0Such /*      0    1    2    3    4    5    6    7 */
145659f65e0Such /* 0 */	0,   1,   2,   3,   4,   5,   6,   7,
146659f65e0Such /* 1 */	8,   9,   10,  11,  12,  13,  14,  15,
147659f65e0Such /* 2 */	16,  17,  18,  19,  20,  21,  22,  23,
148659f65e0Such /* 3 */	24,  25,  26,  27,  28,  29,  30,  31,
149659f65e0Such /* 4 */	32,  33,  34,  35,  36,  37,  38,  39,
150659f65e0Such /* 5 */	40,  41,  42,  43,  44,  45,  46,  47,
151659f65e0Such /* 6 */	48,  49,  50,  51,  52,  53,  54,  55,
152659f65e0Such /* 7 */	56,  57,  58,  59,  60,  61,  62,  63,
153659f65e0Such /* 8 */	64,  65,  66,  67,  68,  69,  70,  71,
154817d2a2cStakemura /* 9 */	200, 73,  74,  203, 76,  205,  78,  79,
155817d2a2cStakemura /*10 */	208, 81,  82,  83,  84,  85,  86,  87,
156659f65e0Such /*11 */	88,  89,  90,  91,  92,  93,  94,  95,
157659f65e0Such /*12 */	96,  97,  98,  99,  100, 101, 102, 103,
158659f65e0Such /*13 */	104, 105, 106, 107, 108, 109, 110, 111,
159659f65e0Such /*14 */	112, 113, 114, 115, 116, 117, 118, 119,
160659f65e0Such /*15 */	120, 121, 122, 123, 124, 125, 126, 127
161659f65e0Such };
162659f65e0Such 
163659f65e0Such /* NEC MobileGearII MCR series (Japan) */
16480e190d1Suwe static uint8_t mcr_jp_keytrans[] = {
165659f65e0Such /*00	right	ent	p	.	y	b	z	space	*/
166659f65e0Such /*08	down	/	o	,	t	v	a	nfer	*/
167659f65e0Such /*10	left	\	i	m	r	c	w	menu	*/
168659f65e0Such /*18	^	-	u	-	e	x	q	1	*/
169659f65e0Such /*20	pgdn	h/z	0	l	:	g	tab	f1	*/
170659f65e0Such /*28	xfer	;	9	n	5	f	2	k	*/
171659f65e0Such /*30	up	[	8	j	4	d	6	-	*/
172659f65e0Such /*38	-	@	7	h	3	]	s	-	*/
173659f65e0Such /*40	caps	-	-	-	bs	fnc	f8	f3	*/
174659f65e0Such /*48	-	alt	-	-	|	k/h	f7	f4	*/
175659f65e0Such /*50	-	-	ctrl	-	f10	pgup	f6	f2	*/
176659f65e0Such /*58	-	-	-	shift	del	f9	f5	esc	*/
177659f65e0Such /*----------------------------------------------------------------------*/
178817d2a2cStakemura /*00*/	205,	 28,	 25,	 52,	 21,	 48,	 44,	 57,
179817d2a2cStakemura /*08*/	208,	 53,	 24,	 51,	 20,	 47,	 30,	123,
180817d2a2cStakemura /*10*/	203,	115,	 23,	 50,	 19,	 46,	 17,	221,
181659f65e0Such /*18*/	 13,	IGN,	 22,	IGN,	 18,	 45,	 16,	  2,
182659f65e0Such /*20*/	 81,	 41,	 11,	 38,	 40,	 34,	 15,	 59,
183659f65e0Such /*28*/	121,	 39,	 10,	 49,	  6,	 33,	  3,	 37,
184817d2a2cStakemura /*30*/	200,	 27,	  9,	 36,	  5,	 32,	  7,	IGN,
185659f65e0Such /*38*/	 12,	 26,	  8,	 35,	  4,	 43,	 31,	IGN,
186659f65e0Such /*40*/	 58,	IGN,	IGN,	IGN,	 14,	184,	 66,	 61,
187659f65e0Such /*48*/	IGN,	 56,	IGN,	IGN,	125,	112,	 65,	 62,
188659f65e0Such /*50*/	IGN,	IGN,	 29,	IGN,	 68,	 73,	 64,	 60,
189659f65e0Such /*58*/	IGN,	IGN,	IGN,	 42,	 14,	 67,	 63,	  1,
190659f65e0Such };
191659f65e0Such 
192659f65e0Such static const keysym_t mcr_jp_cmdmap[] = {
193659f65e0Such /*	pos      command		normal		shifted		*/
194659f65e0Such 	KC(184), KS_Cmd,		KS_Alt_R,	KS_Multi_key,
195659f65e0Such 	KC(73),  KS_Cmd_BrightnessUp,	KS_KP_Prior,	KS_KP_9,
196659f65e0Such 	KC(81),  KS_Cmd_BrightnessDown,	KS_KP_Next,	KS_KP_3,
197659f65e0Such 	KC(51),  KS_Cmd_ContrastDown,	KS_comma,	KS_less,
198659f65e0Such 	KC(52),  KS_Cmd_ContrastUp,	KS_period,	KS_greater,
199659f65e0Such 	KC(57),  KS_Cmd_BacklightToggle,KS_space,
200659f65e0Such };
201659f65e0Such 
202659f65e0Such /* IBM WorkPad z50 */
20380e190d1Suwe static uint8_t z50_keytrans[] = {
204659f65e0Such /*00	f1	f3	f5	f7	f9	-	-	f11	*/
205659f65e0Such /*08	f2	f4	f6	f8	f10	-	-	f12	*/
206659f65e0Such /*10	'	[	-	0	p	;	up	/	*/
207659f65e0Such /*18	-	-	-	9	o	l	.	-	*/
208659f65e0Such /*20	left	]	=	8	i	k	,	-	*/
209659f65e0Such /*28	h	y	6	7	u	j	m	n	*/
210659f65e0Such /*30	-	bs	num	del	-	\	ent	sp	*/
211659f65e0Such /*38	g	t	5	4	r	f	v	b	*/
212659f65e0Such /*40	-	-	-	3	e	d	c	right	*/
213659f65e0Such /*48	-	-	-	2	w	s	x	down	*/
214659f65e0Such /*50	esc	tab	~	1	q	a	z	-	*/
215659f65e0Such /*58	menu	Ls	Lc	Rc	La	Ra	Rs	-	*/
216659f65e0Such /*----------------------------------------------------------------------*/
217659f65e0Such /*00*/	 59,	 61,	 63,	 65,	 67,	IGN,	IGN,	 87,
218659f65e0Such /*08*/	 60,	 62,	 64,	 66,	 68,	IGN,	IGN,	 88,
219817d2a2cStakemura /*10*/	 40,	 26,	 12,	 11,	 25,	 39,	200,	 53,
220659f65e0Such /*18*/	IGN,	IGN,	IGN,	 10,	 24,	 38,	 52,	IGN,
221817d2a2cStakemura /*20*/	203,	 27,	 13,	  9,	 23,	 37,	 51,	IGN,
222659f65e0Such /*28*/	 35,	 21,	  7,	  8,	 22,	 36,	 50,	 49,
223659f65e0Such /*30*/	IGN,	 14,	 69,	 14,	IGN,	 43,	 28,	 57,
224659f65e0Such /*38*/	 34,	 20,	  6,	  5,	 19,	 33,	 47,	 48,
225817d2a2cStakemura /*40*/	IGN,	IGN,	IGN,	  4,	 18,	 32,	 46,	205,
226817d2a2cStakemura /*48*/	IGN,	IGN,	IGN,	  3,	 17,	 31,	 45,	208,
227659f65e0Such /*50*/	  1,	 15,	 41,	  2,	 16,	 30,	 44,	IGN,
228659f65e0Such /*58*/	221,	 42,	 29,	 29,	 56,	 56,	 54,	IGN,
229659f65e0Such };
230659f65e0Such 
231659f65e0Such /* Sharp Tripad PV6000 and VADEM CLIO */
23280e190d1Suwe static uint8_t tripad_keytrans[] = {
233659f65e0Such /*00	lsh	tab	`	q	esc	1	WIN	-	*/
234659f65e0Such /*08	ctrl	z	x	a	s	w	e	2	*/
235659f65e0Such /*10	lalt	sp	c	v	d	f	r	3	*/
236659f65e0Such /*18	b	n	g	h	t	y	4	5	*/
237659f65e0Such /*20	m	,	j	k	u	i	6	7	*/
238659f65e0Such /*28	Fn	caps	l	o	p	8	9	0	*/
239659f65e0Such /*30	[	]	la	.	/	;	-	=	*/
240659f65e0Such /*38	rsh	ra	ua	da	'	ent	\	del	*/
241659f65e0Such /*40	-	-	-	-	-	-	-	-	*/
242659f65e0Such /*48	-	-	-	-	-	-	-	-	*/
243659f65e0Such /*50	-	-	-	-	-	-	-	-	*/
244659f65e0Such /*58	-	-	-	-	-	-	-	-	*/
245659f65e0Such /*----------------------------------------------------------------------*/
246659f65e0Such /*00*/	 42,	 15,	 41,	 16,	  1,	  2,	104,	221,
247659f65e0Such /*08*/	 29,	 44,	 45,	 30,	 31,	 17,	 18,	  3,
248659f65e0Such /*10*/	 56,	 57,	 46,	 47,	 32,	 33,	 19,	  4,
249659f65e0Such /*18*/	 48,	 49,	 34,	 35,	 20,	 21,	  5,	  6,
250659f65e0Such /*20*/	 50,	 51,	 36,	 37,	 22,	 23,	  7,	  8,
2512cfc946fStsutsui /*28*/	184,	 58,	 38,	 24,	 25,	  9,	 10,	 11,
252817d2a2cStakemura /*30*/	 26,	 27,	203,	 52,	 53,	 39,	 12,	 13,
253817d2a2cStakemura /*38*/	 54,	205,	200,	208,	 40,	 28,	 43,	 14,
254659f65e0Such /*40*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
255659f65e0Such /*48*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
256659f65e0Such /*50*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
257659f65e0Such /*58*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
258659f65e0Such };
259659f65e0Such 
2602cfc946fStsutsui static const keysym_t tripad_cmdmap[] = {
2612cfc946fStsutsui /*  pos      command		normal		shifted		fn    */
2622cfc946fStsutsui KC(2),	 KS_Cmd_Screen0,	KS_1,		KS_exclam,	KS_f1,
2632cfc946fStsutsui KC(3),	 KS_Cmd_Screen1,	KS_2,		KS_at,		KS_f2,
2642cfc946fStsutsui KC(4),	 KS_Cmd_Screen2,	KS_3,		KS_numbersign,	KS_f3,
2652cfc946fStsutsui KC(5),	 KS_Cmd_Screen3,	KS_4,		KS_dollar,	KS_f4,
2662cfc946fStsutsui KC(6),	 KS_Cmd_Screen4,	KS_5,		KS_percent,	KS_f5,
2672cfc946fStsutsui KC(7),	 KS_Cmd_Screen5,	KS_6,		KS_asciicircum,	KS_f6,
2682cfc946fStsutsui KC(8),	 KS_Cmd_Screen6,	KS_7,		KS_ampersand,	KS_f7,
2692cfc946fStsutsui KC(9),	 KS_Cmd_Screen7,	KS_8,		KS_asterisk,	KS_f8,
2702cfc946fStsutsui KC(10),  KS_Cmd_Screen8,	KS_9,		KS_parenleft,	KS_f9,
2712cfc946fStsutsui KC(11),  KS_Cmd_Screen9,	KS_0,		KS_parenright,	KS_f10,
2722cfc946fStsutsui KC(12),  KS_Cmd_BrightnessDown,	KS_minus,	KS_underscore,	KS_f11,
2732cfc946fStsutsui KC(13),  KS_Cmd_BrightnessUp,	KS_equal,	KS_plus,	KS_f12,
2742cfc946fStsutsui KC(20),  KS_Cmd_BacklightToggle, KS_t,
2752cfc946fStsutsui KC(33),  KS_Cmd_BacklightOff,	KS_f,
2762cfc946fStsutsui KC(49),  KS_Cmd_BacklightOn,	KS_n,
2772cfc946fStsutsui KC(51),  KS_Cmd_ContrastDown,	KS_comma,	KS_less,
2782cfc946fStsutsui KC(52),  KS_Cmd_ContrastUp,	KS_period,	KS_greater,
2792cfc946fStsutsui KC(184), KS_Mode_switch,	KS_Multi_key,
2802cfc946fStsutsui KC(200), KS_Cmd_ScrollSlowUp,	KS_Up,		KS_Up,		KS_Prior,
2812cfc946fStsutsui KC(203), KS_Cmd_ScrollFastUp,	KS_Left,	KS_Left,	KS_Home,
2822cfc946fStsutsui KC(205), KS_Cmd_ScrollFastDown,	KS_Right,	KS_Right,	KS_End,
2832cfc946fStsutsui KC(208), KS_Cmd_ScrollSlowDown,	KS_Down,	KS_Down,	KS_Next,
2842cfc946fStsutsui };
2852cfc946fStsutsui 
286659f65e0Such /* NEC Mobile Gear MCCS series */
28780e190d1Suwe static uint8_t mccs_keytrans[] = {
288659f65e0Such /*00	caps	cr	rar	p	.	y	b	z	*/
289659f65e0Such /*08	alt	[	dar	o	,	t	v	a	*/
290659f65e0Such /*10	zen	@	lar	i	m	r	c	w	*/
291659f65e0Such /*18	lctrl	;	uar	u	n	e	x	q	*/
292659f65e0Such /*20	lshft	bs	\	0	l	6	g	tab	*/
293659f65e0Such /*28	nconv	|	/	9	k	5	f	2	*/
294659f65e0Such /*30	conv	=	]	8	j	4	d	1	*/
295659f65e0Such /*38	hira	-	'	7	h	3	s	esc	*/
296659f65e0Such /*40	-	sp	-	-	-	-	-	-	*/
297659f65e0Such /*48	-	-	-	-	-	-	-	-	*/
298659f65e0Such /*50	-	-	-	-	-	-	-	-	*/
299659f65e0Such /*58	-	-	-	-	-	-	-	-	*/
300659f65e0Such /*----------------------------------------------------------------------*/
301817d2a2cStakemura /*00*/	 58,	 28,	205,	 25,	 52,	 21,	 48,	 44,
302817d2a2cStakemura /*08*/	 56,	 27,	208,	 24,	 51,	 20,	 47,	 30,
303817d2a2cStakemura /*10*/	 41,	 26,	203,	 23,	 50,	 19,	 46,	 17,
304817d2a2cStakemura /*18*/	 29,	 39,	200,	 22,	 49,	 18,	 45,	 16,
305659f65e0Such /*20*/	 42,	 14,	115,	 11,	 38,	  7,	 34,	 15,
306659f65e0Such /*28*/	123,	125,	 53,	 10,	 37,	  6,	 33,	  3,
307659f65e0Such /*30*/	121,	 13,	 43,	  9,	 36,	  5,	 32,	  2,
308659f65e0Such /*38*/	112,	 12,	 40,	  8,	 35,	  4,	 31,	  1,
309659f65e0Such /*40*/	IGN,	 57,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
310659f65e0Such /*48*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
311659f65e0Such /*50*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
312659f65e0Such /*58*/	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,	IGN,
313659f65e0Such };
314659f65e0Such 
315659f65e0Such static const keysym_t mccs_cmdmap[] = {
316659f65e0Such /*	pos      command		normal		shifted		*/
317659f65e0Such 	KC(51),  KS_Cmd_ContrastDown,	KS_comma,	KS_less,
318659f65e0Such 	KC(52),  KS_Cmd_ContrastUp,	KS_period,	KS_greater,
319659f65e0Such 	KC(57),  KS_Cmd_BacklightToggle,KS_space,
320659f65e0Such };
321659f65e0Such 
32280e190d1Suwe static uint8_t mobilepro_keytrans[] = {
323caf5e039Stakemura /*00	space	]	\	/	left	down	enter	l	*/
324caf5e039Stakemura /*08	-	[	'	;	right	up	.	o	*/
325659f65e0Such /*10	-	-	-	Windows	v	c	x	z	*/
326659f65e0Such /*18	-	=	\-	`	f	d	s	a	*/
327659f65e0Such /*20	8	7	6	5	r	e	w	q	*/
328659f65e0Such /*28	,	m	n	b	-	-	0	9	*/
329659f65e0Such /*30	k	j	h	g	4	3	2	1	*/
330659f65e0Such /*38	i	u	y	t	-	caps	del	esc	*/
331659f65e0Such /*40	alt_R	-	-	-	BS	p	TAB	Fn	*/
3325531835eSsato /*48	-	alt_L	-	-	pgdn	pgup	f10	f9	*/
333659f65e0Such /*50	-	-	ctrl	-	f8	f7	f6	f5	*/
334659f65e0Such /*58	-	-	-	shift	f4	f3	f2	f1	*/
335659f65e0Such /*----------------------------------------------------------------------*/
336817d2a2cStakemura /*00*/	 57,	 27,	 43,	 53,	203,	208,	 28,	 38,
337817d2a2cStakemura /*08*/	IGN,	 26,	 40,	 39,	205,	200,	 52,	 24,
338659f65e0Such /*10*/	IGN,	IGN,	IGN,	221,	 47,	 46,	 45,	 44,
339659f65e0Such /*18*/	IGN,	 13,	 12,	 41,	 33,	 32,	 31,	 30,
340659f65e0Such /*20*/	  9,	  8,	  7,	  6,	 19,	 18,	 17,	 16,
341659f65e0Such /*28*/	 51,	 50,	 49,	 48,	IGN,	IGN,	 11,	 10,
342659f65e0Such /*30*/	 37,	 36,	 35,	 34,	  5,	  4,	  3,	  2,
343659f65e0Such /*38*/	 23,	 22,	 21,	 20,	IGN,	 58,	 14,	  1,
3445531835eSsato /*40*/	184,	IGN,	IGN,	IGN,	 14,	 25,	 15,	219,
3455531835eSsato /*48*/	IGN,	 56,	IGN,	IGN,	 81,	 73,	 68,	 67,
346659f65e0Such /*50*/	IGN,	IGN,	 29,	IGN,	 66,	 65,	 64,	 63,
347659f65e0Such /*58*/	IGN,	IGN,	IGN,	 42,	 62,	 61,	 60,	 59,
348659f65e0Such };
349659f65e0Such 
3505531835eSsato static const keysym_t mobilepro_cmdmap[] = {
3515531835eSsato /*	pos      command		normal		shifted		*/
3525531835eSsato 	KC(219), KS_Cmd,		KS_Meta_L,	KS_Multi_key,
3535531835eSsato 	KC(73),  KS_Cmd_BrightnessUp,	KS_KP_Prior,	KS_KP_9,
3545531835eSsato 	KC(81),  KS_Cmd_BrightnessDown,	KS_KP_Next,	KS_KP_3,
3555531835eSsato 	KC(51),  KS_Cmd_ContrastDown,	KS_comma,	KS_less,
3565531835eSsato 	KC(52),  KS_Cmd_ContrastUp,	KS_period,	KS_greater,
3575531835eSsato 	KC(57),  KS_Cmd_BacklightToggle,KS_space,
3585531835eSsato };
3595531835eSsato 
360659f65e0Such /* NEC MobilePro 750c by "Castor Fu" <castor@geocast.com> */
36180e190d1Suwe static uint8_t mobilepro750c_keytrans[] = {
362659f65e0Such /*00	right	\	p	.	y	b	z	space	*/
363659f65e0Such /*08	down	/	o	,	t	v	a	-	*/
364659f65e0Such /*10	left	enter	i	m	r	c	w	Win	*/
365659f65e0Such /*18	num	]	u	n	e	x	q	caps	*/
366659f65e0Such /*20	pgdn	-	0	l	:	g	tab	esc	*/
367659f65e0Such /*28	-	;	9	k	5	f	2	`	*/
368659f65e0Such /*30	up	[	8	j	4	d	1	'	*/
369659f65e0Such /*38	-	@	7	h	3	s	del	-	*/
370659f65e0Such /*40	shift	-	-	-	bs	f12	f8	f4	*/
371659f65e0Such /*48	-	alt	-	-	|	f11	f7	f3	*/
372659f65e0Such /*50	-	-	ctrl	-	f10	f10	f6	f2	*/
373659f65e0Such /*58	-	-	-	shift	del	f9	f5	f1	*/
374659f65e0Such /*----------------------------------------------------------------------*/
375817d2a2cStakemura /*00*/	205,	43,	25,	52,	21,	48,	44,	57,
376817d2a2cStakemura /*08*/	208,	53,	24,	51,	20,	47,	30,	IGN,
377817d2a2cStakemura /*10*/	203,	28,	23,	50,	19,	46,	17,	221,
378659f65e0Such /*18*/	69,	27,	22,	49,	18,	45,	16,	58,
379659f65e0Such /*20*/	81,	IGN,	11,	38,	7,	34,	15,	1,
380659f65e0Such /*28*/	IGN,	39,	10,	37,	6,	33,	3,	41,
381817d2a2cStakemura /*30*/	200,	26,	9,	36,	5,	32,	2,	40,
382659f65e0Such /*38*/	12,	26,	8,	35,	4,	31,	83,	IGN,
383659f65e0Such /*40*/	42,	IGN,	IGN,	IGN,	14,	88,	66,	62,
384659f65e0Such /*48*/	IGN,	56,	IGN,	IGN,	125,	87,	65,	61,
385659f65e0Such /*50*/	IGN,	IGN,	29,	IGN,	68,	68,	64,	60,
386659f65e0Such /*58*/	IGN,	IGN,	IGN,	42,	13,	67,	63,	59,
387659f65e0Such };
388659f65e0Such 
389caf5e039Stakemura /* NEC MobilePro 780 */
39080e190d1Suwe static uint8_t mobilepro780_keytrans[] = {
391caf5e039Stakemura /*00	space	]	\	/	left	right	enter	l	*/
392caf5e039Stakemura /*08	-	[	'	;	up	down	.	o	*/
393caf5e039Stakemura /*10	-	-	-	Windows	v	c	x	z	*/
394caf5e039Stakemura /*18	-	=	\-	`	f	d	s	a	*/
395caf5e039Stakemura /*20	8	7	6	5	r	e	w	q	*/
396caf5e039Stakemura /*28	,	m	n	b	-	-	0	9	*/
397caf5e039Stakemura /*30	k	j	h	g	4	3	2	1	*/
398caf5e039Stakemura /*38	i	u	y	t	-	caps	del	esc	*/
399caf5e039Stakemura /*40	alt_R	-	-	-	BS	p	TAB	Fn	*/
400caf5e039Stakemura /*48	-	alt_L	-	-	f12	f11	f10	f9	*/
401caf5e039Stakemura /*50	-	-	ctrl	-	f8	f7	f6	f5	*/
402caf5e039Stakemura /*58	-	-	-	shift	f4	f3	f2	f1	*/
403caf5e039Stakemura /*----------------------------------------------------------------------*/
404caf5e039Stakemura /*00*/	 57,	 27,	 43,	 53,	203,	205,	 28,	 38,
405caf5e039Stakemura /*08*/	IGN,	 26,	 40,	 39,	200,	208,	 52,	 24,
406caf5e039Stakemura /*10*/	IGN,	IGN,	IGN,	221,	 47,	 46,	 45,	 44,
407caf5e039Stakemura /*18*/	IGN,	 13,	 12,	 41,	 33,	 32,	 31,	 30,
408caf5e039Stakemura /*20*/	  9,	  8,	  7,	  6,	 19,	 18,	 17,	 16,
409caf5e039Stakemura /*28*/	 51,	 50,	 49,	 48,	IGN,	IGN,	 11,	 10,
410caf5e039Stakemura /*30*/	 37,	 36,	 35,	 34,	  5,	  4,	  3,	  2,
411caf5e039Stakemura /*38*/	 23,	 22,	 21,	 20,	IGN,	 58,	 14,	  1,
412caf5e039Stakemura /*40*/	184,	IGN,	IGN,	IGN,	 14,	 25,	 15,	IGN,
413caf5e039Stakemura /*48*/	IGN,	 56,	IGN,	IGN,	 88,	 87,	 68,	 67,
414caf5e039Stakemura /*50*/	IGN,	IGN,	 29,	IGN,	 66,	 65,	 64,	 63,
415caf5e039Stakemura /*58*/	IGN,	IGN,	IGN,	 42,	 62,	 61,	 60,	 59,
416caf5e039Stakemura };
417caf5e039Stakemura 
41889349d30Stv /* NEC MobilePro 8x0 */
41980e190d1Suwe static uint8_t mobilepro8x0_keytrans[] = {
42089349d30Stv /*00	space	]	\	/	left	right	enter	l	*/
42189349d30Stv /*08	-	[	'	;	up	down	.	o	*/
42289349d30Stv /*10	-	-	-	Windows	v	c	x	z	*/
42389349d30Stv /*18	-	=	\-	`	f	d	s	a	*/
42489349d30Stv /*20	8	7	6	5	r	e	w	q	*/
42589349d30Stv /*28	,	m	n	b	-	-	0	9	*/
42689349d30Stv /*30	k	j	h	g	4	3	2	1	*/
42789349d30Stv /*38	i	u	y	t	-	caps	del	esc	*/
42889349d30Stv /*40	alt_R	-	-	-	BS	p	TAB	Fn	*/
42989349d30Stv /*48	-	alt_L	-	-	pgdn	pgup	f10	f9	*/
43089349d30Stv /*50	-	-	ctrl	-	f8	f7	f6	f5	*/
43189349d30Stv /*58	-	-	-	shift	f4	f3	f2	f1	*/
43289349d30Stv /*----------------------------------------------------------------------*/
43389349d30Stv /*00*/	 57,	 27,	 43,	 53,	203,	205,	 28,	 38,
43489349d30Stv /*08*/	IGN,	 26,	 40,	 39,	200,	208,	 52,	 24,
43589349d30Stv /*10*/	IGN,	IGN,	IGN,	221,	 47,	 46,	 45,	 44,
43689349d30Stv /*18*/	IGN,	 13,	 12,	 41,	 33,	 32,	 31,	 30,
43789349d30Stv /*20*/	  9,	  8,	  7,	  6,	 19,	 18,	 17,	 16,
43889349d30Stv /*28*/	 51,	 50,	 49,	 48,	IGN,	IGN,	 11,	 10,
43989349d30Stv /*30*/	 37,	 36,	 35,	 34,	  5,	  4,	  3,	  2,
44089349d30Stv /*38*/	 23,	 22,	 21,	 20,	IGN,	 58,	 14,	  1,
44189349d30Stv /*40*/	184,	IGN,	IGN,	IGN,	 14,	 25,	 15,	219,
44289349d30Stv /*48*/	IGN,	 56,	IGN,	IGN,	 81,	 73,	 68,	 67,
44389349d30Stv /*50*/	IGN,	IGN,	 29,	IGN,	 66,	 65,	 64,	 63,
44489349d30Stv /*58*/	IGN,	IGN,	IGN,	 42,	 62,	 61,	 60,	 59,
44589349d30Stv };
44689349d30Stv 
44789349d30Stv static const keysym_t mobilepro8x0_cmdmap[] = {
44889349d30Stv /*	pos      command		normal		shifted		*/
44989349d30Stv 	KC(219), KS_Cmd,		KS_Meta_L,	KS_Multi_key,
45089349d30Stv 	KC(73),  KS_Cmd_BrightnessUp,	KS_KP_Prior,	KS_KP_9,
45189349d30Stv 	KC(81),  KS_Cmd_BrightnessDown,	KS_KP_Next,	KS_KP_3,
45289349d30Stv 	KC(51),  KS_Cmd_ContrastDown,	KS_comma,	KS_less,
45389349d30Stv 	KC(52),  KS_Cmd_ContrastUp,	KS_period,	KS_greater,
45489349d30Stv 	KC(57),  KS_Cmd_BacklightToggle,KS_space,
45589349d30Stv };
45689349d30Stv 
457659f65e0Such /* FUJITSU INTERTOP CX300 */
45880e190d1Suwe static uint8_t intertop_keytrans[] = {
459659f65e0Such /*00	space   a2      1       tab     enter   caps    left    zenkaku	*/
460659f65e0Such /*08	hiraga  a1      2       q       -       a       fnc     esc	*/
461659f65e0Such /*10	ins     w       3       s       del     ]       down    x	*/
462659f65e0Such /*18	z       e       4       d       a10     \       right   c	*/
463659f65e0Such /*20	backsla r       ;       f       a9      @       ^       v	*/
464659f65e0Such /*28	/       t       5       g       a8      p       -       b	*/
465659f65e0Such /*30	.       y       6       h       a7      l       0       n	*/
466659f65e0Such /*38	-       u       7       j       a5      o       bs      m	*/
467659f65e0Such /*40	-       a3      8       a4      -       i       k       ,	*/
468659f65e0Such /*48	num     :       9       [       a6      -       up      -	*/
469659f65e0Such /*50	-       -       -       -       shift_L -       -       shift_R	*/
470659f65e0Such /*58	ctrl    win     muhenka henkan  alt     -       -       -	*/
471659f65e0Such /*----------------------------------------------------------------------*/
472817d2a2cStakemura /*00*/	57,	60,	2,	15,	28,	58,	205,	41,
473659f65e0Such /*08*/	112,	59,	3,	16,	IGN,	30,	56,	1,
474817d2a2cStakemura /*10*/	210,	17,	4,	31,	83,	43,	208,	45,
475817d2a2cStakemura /*18*/	44,	18,	5,	32,	68,	125,	203,	46,
476659f65e0Such /*20*/	115,	19,	39,	33,	67,	26,	13,	47,
477659f65e0Such /*28*/	53,	20,	6,	34,	66,	25,	12,	48,
478659f65e0Such /*30*/	52,	21,	7,	35,	65,	38,	11,	49,
479659f65e0Such /*38*/	IGN,	22,	8,	36,	63,	24,	14,	50,
480659f65e0Such /*40*/	IGN,	61,	9,	62,	IGN,	23,	37,	51,
481817d2a2cStakemura /*48*/	69,	40,	10,	27,	64,	IGN,	200,	IGN,
482659f65e0Such /*50*/	IGN,	IGN,	IGN,	IGN,	42,	IGN,	IGN,	54,
483659f65e0Such /*58*/	29,	221,	123,	121,	184,	IGN,	IGN,	IGN,
484659f65e0Such };
485659f65e0Such 
486659f65e0Such /* DoCoMo sigmarion (Japan) */
48780e190d1Suwe static uint8_t sigmarion_jp_keytrans[] = {
488659f65e0Such /*00	right	ent	p	.	y	b	z	space	*/
489659f65e0Such /*08	down	/	o	,	t	v	a	nfer	*/
490659f65e0Such /*10	left	\	i	m	r	c	w	menu	*/
491659f65e0Such /*18	|	-	u	-	e	x	q	1	*/
492659f65e0Such /*20	pgdn	h/z	0	l	:	g	tab	f1	*/
493659f65e0Such /*28	xfer	;	9	n	5	f	2	k	*/
494659f65e0Such /*30	up	[	8	j	4	d	6	-	*/
495659f65e0Such /*38	-	@	7	h	3	]	s	-	*/
496659f65e0Such /*40	caps	-	-	-	bs	fnc	f8	f3	*/
497659f65e0Such /*48	-	alt	-	-	^	k/h	f7	f4	*/
498659f65e0Such /*50	-	-	ctrl	-	f10	pgup	f6	f2	*/
499659f65e0Such /*58	-	-	-	shift	del	f9	f5	esc	*/
500659f65e0Such /*----------------------------------------------------------------------*/
501817d2a2cStakemura /*00*/	205,	 28,	 25,	 52,	 21,	 48,	 44,	 57,
502817d2a2cStakemura /*08*/	208,	 53,	 24,	 51,	 20,	 47,	 30,	123,
503817d2a2cStakemura /*10*/	203,	115,	 23,	 50,	 19,	 46,	 17,	221,
504659f65e0Such /*18*/	125,	IGN,	 22,	IGN,	 18,	 45,	 16,	  2,
505659f65e0Such /*20*/	 81,	 41,	 11,	 38,	 40,	 34,	 15,	IGN,
506659f65e0Such /*28*/	121,	 39,	 10,	 49,	  6,	 33,	  3,	 37,
507817d2a2cStakemura /*30*/	200,	 27,	  9,	 36,	  5,	 32,	  7,	IGN,
508659f65e0Such /*38*/	 12,	 26,	  8,	 35,	  4,	 43,	 31,	IGN,
509659f65e0Such /*40*/	 58,	IGN,	IGN,	IGN,	 14,	184,	 66,	IGN,
510659f65e0Such /*48*/	IGN,	 56,	IGN,	IGN,	 13,	112,	 65,	IGN,
511659f65e0Such /*50*/	IGN,	IGN,	 29,	IGN,	 68,	 73,	 64,	IGN,
512659f65e0Such /*58*/	IGN,	IGN,	IGN,	 42,	 14,	 67,	IGN,	  1,
513659f65e0Such };
514659f65e0Such 
515659f65e0Such static const keysym_t sigmarion_cmdmap[] = {
516659f65e0Such /*	pos      command		normal		shifted		*/
517659f65e0Such 	KC(184), KS_Cmd,		KS_Alt_R,	KS_Multi_key,
518a71959e5Ssato 	KC(64),  KS_Cmd_Screen0,	KS_f6,		KS_f1,
519a71959e5Ssato 	KC(65),  KS_Cmd_Screen1,	KS_f7,		KS_f2,
520a71959e5Ssato 	KC(66),  KS_Cmd_Screen2,	KS_f8,		KS_f3,
521a71959e5Ssato 	KC(67),  KS_Cmd_Screen3,	KS_f9,		KS_f4,
522a71959e5Ssato 	KC(68),  KS_Cmd_Screen4,	KS_f10,		KS_f5,
523659f65e0Such 	KC(27),  KS_Cmd_BrightnessUp,	KS_bracketleft,	KS_braceleft,
524659f65e0Such 	KC(43),  KS_Cmd_BrightnessDown,	KS_bracketright,KS_braceright,
525659f65e0Such 	KC(51),  KS_Cmd_ContrastDown,	KS_comma,	KS_less,
526659f65e0Such 	KC(52),  KS_Cmd_ContrastUp,	KS_period,	KS_greater,
527659f65e0Such 	KC(57),  KS_Cmd_BacklightToggle,KS_space,
528659f65e0Such };
52949cddb00Stakemura 
53049cddb00Stakemura /* NTT DoCoMo Pocket PostPet (Japan) */
53180e190d1Suwe static uint8_t pocketpostpet_keytrans[] = {
53249cddb00Stakemura /*00	esc	1	q	a	ctrl	-	down	left	*/
53349cddb00Stakemura /*08	tab	2	w	s	z	-	right	up	*/
53449cddb00Stakemura /*10	pgup	3	e	d	x	shift	-	-	*/
53549cddb00Stakemura /*18	pgdn	4	r	f	c	alt	-	-	*/
53649cddb00Stakemura /*20	f5	5	t	g	v	nfer	-	-	*/
53749cddb00Stakemura /*28	f6	6	y	h	b	-	-	-	*/
53849cddb00Stakemura /*30	f7	7	u	j	n	space	-	-	*/
53949cddb00Stakemura /*38	f8	8	i	k	m	-	-	-	*/
54049cddb00Stakemura /*40	f9	9	o	l	,	xfer	-	-	*/
54149cddb00Stakemura /*48	f10	0	p	;	.	-	-	-	*/
54249cddb00Stakemura /*50	\|	minus	@	:	/	ent	-	-	*/
54349cddb00Stakemura /*58	bs	^	[	]	\_	del	-	-	*/
54449cddb00Stakemura /* MailCheck  -> tab	*/
54549cddb00Stakemura /* Prev       -> pgup	*/
54649cddb00Stakemura /* Next       -> pgdn	*/
54749cddb00Stakemura /* tab        -> ctrl	*/
54849cddb00Stakemura /* h/z        -> menu	*/
54949cddb00Stakemura /* k/h        -> alt	*/
55049cddb00Stakemura /* knj        -> nfer	*/
55149cddb00Stakemura /* eng        -> xfer	*/
55249cddb00Stakemura /*----------------------------------------------------------------------*/
55349cddb00Stakemura /*00*/	1,	2,	16,	30,	29,	UNK,	208,	203,
55449cddb00Stakemura /*08*/	15,	3,	17,	31,	44,	UNK,	205,	200,
55549cddb00Stakemura /*10*/	73,	4,	18,	32,	45,	42,	UNK,	UNK,
55649cddb00Stakemura /*08*/	81,	5,	19,	33,	46,	56,	UNK,	UNK,
55749cddb00Stakemura /*20*/	63,	6,	20,	34,	47,	123,	UNK,	UNK,
55849cddb00Stakemura /*28*/	64,	7,	21,	35,	48,	UNK,	UNK,	UNK,
55949cddb00Stakemura /*30*/	65,	8,	22,	36,	49,	57,	UNK,	UNK,
56049cddb00Stakemura /*38*/	66,	9,	23,	37,	50,	UNK,	UNK,	UNK,
56149cddb00Stakemura /*40*/	67,	10,	24,	38,	51,	121,	UNK,	UNK,
56249cddb00Stakemura /*48*/	68,	11,	25,	39,	52,	UNK,	UNK,	UNK,
56349cddb00Stakemura /*50*/	125,	12,	26,	40,	53,	28,	UNK,	UNK,
56449cddb00Stakemura /*58*/	14,	13,	27,	43,	115,	14,	UNK,	UNK,
56549cddb00Stakemura };
566659f65e0Such #endif /* hpcmips */
567659f65e0Such 
56838626ea2Such #ifdef hpcsh
5692f3cc132Such /*
5702f3cc132Such  * HP Jornada 680/690
5712f3cc132Such  */
57251243a1cSuch /* Japanese */
57380e190d1Suwe const uint8_t jornada6x0_jp_keytrans[] = {
57438626ea2Such /*      0    1    2    3    4    5    6    7 */
57538626ea2Such /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK, /* ctrl 29 */
57638626ea2Such /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK, /* shift L 42 */
57738626ea2Such /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
57838626ea2Such /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203,
57938626ea2Such /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 115, UNK,
58038626ea2Such /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, 121, UNK,
58138626ea2Such /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 , /* alt 56 */
58238626ea2Such /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 123,
58338626ea2Such /* 8 */ IGN, 53 , 39 , 25 , 11 , 200, UNK, 208,
58438626ea2Such /* 9 */ 112, 40 , 27 , 26 , 12 , 125, UNK, 205,
58538626ea2Such /*10 */ 41 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /* shift R 54 */
58638626ea2Such /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
58738626ea2Such /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 221, UNK,
58838626ea2Such /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
58938626ea2Such /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
59038626ea2Such /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
59138626ea2Such };
59238626ea2Such 
5931cfc465cSuwe /* US/UK - Fn to the left of the space bar and missing few keys */
59480e190d1Suwe const uint8_t jornada6x0_us_keytrans[] = {
595eb330e61Such /*      0    1    2    3    4    5    6    7 */
5960982def9Suwe /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK,
5970982def9Suwe /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK,
598eb330e61Such /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
599b83d1442Suwe /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
6000982def9Suwe /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 53 , UNK,
601eb330e61Such /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
6020982def9Suwe /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 ,
6030982def9Suwe /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 184,
6040982def9Suwe /* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208,
6050982def9Suwe /* 9 */ 68 , 40 , UNK, 43 , 12 , UNK, UNK, 205,
6060982def9Suwe /*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK,
607eb330e61Such /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
608b83d1442Suwe /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 219, UNK,
609eb330e61Such /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
610eb330e61Such /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
611eb330e61Such /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
612eb330e61Such };
613eb330e61Such 
6141cfc465cSuwe /* International - AltGr to the right and extra keys in three middle rows */
61580e190d1Suwe const uint8_t jornada6x0_intl_keytrans[] = {
61651243a1cSuch /*      0    1    2    3    4    5    6    7 */
61751243a1cSuch /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK,
61851243a1cSuch /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK,
61951243a1cSuch /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
6200982def9Suwe /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
62151243a1cSuch /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 184, UNK,
62251243a1cSuch /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
62351243a1cSuch /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 ,
62451243a1cSuch /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 41 ,
62551243a1cSuch /* 8 */ 67 , 53 , 39 , 25 , 11 , 200, UNK, 208,
62651243a1cSuch /* 9 */ 68 , 40 , 27 , 26 , 12 , UNK, UNK, 205,
62751243a1cSuch /*10 */ 87 , 28 , 43 , 14 , 13 , 54 , UNK, UNK,
6280982def9Suwe /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
6290982def9Suwe /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 219, UNK,
63051243a1cSuch /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
63151243a1cSuch /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
6320982def9Suwe /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
63351243a1cSuch };
63451243a1cSuch 
63551243a1cSuch const int jornada6x0_special_keymap[] = {
636eb34a429Such 	[KEY_SPECIAL_OFF]	= -1,
63738626ea2Such 	[KEY_SPECIAL_LIGHT]	= -1
63838626ea2Such };
63938626ea2Such 
64006814ceeSuwe 
6412f3cc132Such /*
6422f3cc132Such  * HP 620LX
6432f3cc132Such  */
6442f3cc132Such /* Japanese */
64580e190d1Suwe const uint8_t hp620lx_jp_keytrans[] = {
6462f3cc132Such /*      0    1    2    3    4    5    6    7 */
6472f3cc132Such /* 0 */	2  , 16 , 112, UNK, IGN, UNK, 42 , 30 , /* REC button */
6482f3cc132Such /* 1 */	3  , 17 , 58 , 44 , UNK, 45 , 15 , 31 ,
6492f3cc132Such /* 2 */	4  , 18 , UNK, 56 , 59 , 46 , 1  , 32 ,
6502f3cc132Such /* 3 */	5  , 19 , UNK, UNK, 60 , 123, UNK, 33 ,
6512f3cc132Such /* 4 */	6  , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
6522f3cc132Such /* 5 */	7  , 21 , UNK, 121, 62 , 49 , UNK, 35 ,
6532f3cc132Such /* 6 */	8  , 22 , UNK, 125, 63 , 50 , UNK, 36 ,
6542f3cc132Such /* 7 */	9  , 23 , 52 , 115, 64 , 51 , UNK, 37 ,
6552f3cc132Such /* 8 */	10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
6562f3cc132Such /* 9 */	11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
6572f3cc132Such /*10 */	12 , 13 , 28 , UNK, UNK, UNK, 41 , 43 ,
6582f3cc132Such /*11 */	SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
6592f3cc132Such /*12 */	29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
6602f3cc132Such /*13 */	14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
6612f3cc132Such /*14 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
6622f3cc132Such /*15 */	SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN  /* LED button */
6632f3cc132Such };
6642f3cc132Such 
66506814ceeSuwe /* Other models */
66606814ceeSuwe const uint8_t hp620lx_intl_keytrans[] = {
66706814ceeSuwe /*      0    1    2    3    4    5    6    7 */
66806814ceeSuwe /* 0 */	2  , 16 , 219, UNK, IGN, UNK, 42 , 30 , /* REC button */
66906814ceeSuwe /* 1 */	3  , 17 , 15 , 44 , UNK, 45 , 41 , 31 ,
67006814ceeSuwe /* 2 */	4  , 18 , UNK, 69 , 59 , 46 , 1  , 32 ,
67106814ceeSuwe /* 3 */	5  , 19 , UNK, UNK, 60 , 56 , UNK, 33 ,
67206814ceeSuwe /* 4 */	6  , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
67306814ceeSuwe /* 5 */	7  , 21 , UNK, UNK, 62 , 49 , UNK, 35 ,
67406814ceeSuwe /* 6 */	8  , 22 , UNK, 184, 63 , 50 , UNK, 36 ,
67506814ceeSuwe /* 7 */	9  , 23 , 52 , 211, 64 , 51 , UNK, 37 ,
67606814ceeSuwe /* 8 */	10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
67706814ceeSuwe /* 9 */	11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
67806814ceeSuwe /*10 */	12 , 13 , 28 , UNK, UNK, UNK, 54 , 43 ,
67906814ceeSuwe /*11 */	SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
68006814ceeSuwe /*12 */	29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
68106814ceeSuwe /*13 */	14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
68206814ceeSuwe /*14 */	UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
68306814ceeSuwe /*15 */	SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN  /* LED button */
68406814ceeSuwe };
68506814ceeSuwe 
6862f3cc132Such const int hp620lx_special_keymap[] = {
687d04123caSpeter 	[KEY_SPECIAL_OFF]	= -1,	/* 88 */
6882f3cc132Such 	[KEY_SPECIAL_LIGHT]	= 120
6892f3cc132Such };
6902f3cc132Such 
69106814ceeSuwe 
6921877683fSuch /*
6931877683fSuch  * HITACHI PERSONA HPW50PAD
6941877683fSuch  */
6951877683fSuch /* Japanese */
69680e190d1Suwe const uint8_t persona_hpw50pad_jp_keytrans[] = {
6971877683fSuch /*      0    1    2    3    4    5    6    7 */
698a1e2e32eSuwe /* 0 */ 59 , 61 , 63 , 65 , 67 , SPL, UNK, UNK, /* ON button */
699a1e2e32eSuwe /* 1 */ 29 , UNK, 47 , 48 , 121, UNK, UNK, UNK,
700a1e2e32eSuwe /* 2 */  1 , UNK, 34 , 51 , 112, UNK, UNK, UNK,
701a1e2e32eSuwe /* 3 */ 41 , 221, 35 , 37 , 52 , UNK, UNK, UNK,
702a1e2e32eSuwe /* 4 */ 45 , 58 , 22 , 38 , 40 , 42 , UNK, UNK,
703a1e2e32eSuwe /* 5 */ 30 , 16 , 21 , 24 , 28 , 54 , UNK, UNK,
704a1e2e32eSuwe /* 6 */ 17 ,  4 , UNK, 10 , 12 , 205, UNK, UNK,
705a1e2e32eSuwe /* 7 */ 31 , 18 ,  7 , 25 , 13 , 83 , UNK, UNK,
70617587c61Skiyohara /* 8 */ 60 , 62 , 64 , 66 , 68 , UNK, UNK, UNK,
707a1e2e32eSuwe /* 9 */ UNK, 123, 49 , 53 , 203, UNK, UNK, UNK,
708a1e2e32eSuwe /*10 */ 56 , 46 , 50 , 57 , 208, UNK, UNK, UNK,
709a1e2e32eSuwe /*11 */ 15 , 33 , 36 , 39 , 43 , UNK, UNK, UNK,
710a1e2e32eSuwe /*12 */ 44 , 20 , 23 , 26 , 27 , UNK, UNK, UNK,
711a1e2e32eSuwe /*13 */  2 ,  6 ,  9 , 115, 200, UNK, UNK, UNK,
712a1e2e32eSuwe /*14 */  3 ,  5 , UNK, UNK, 125, UNK, UNK, UNK,
713a1e2e32eSuwe /*15 */ 32 , 19 ,  8 , 11 , 14 , UNK, UNK, UNK,
7141877683fSuch };
7151877683fSuch 
7161877683fSuch const int persona_hpw50pad_special_keymap[] = {
717b7e745a1Skiyohara 	[KEY_SPECIAL_OFF]	= 5,
7181877683fSuch 	[KEY_SPECIAL_LIGHT]	= -1
7191877683fSuch };
7201877683fSuch 
72117587c61Skiyohara static const keysym_t persona_hpw50pad_jp_keydesc[] = {
72217587c61Skiyohara /*	pos	command			normal		shifted		*/
72317587c61Skiyohara 	KC(63),	KS_Cmd_ContrastDown,	KS_f5,
72417587c61Skiyohara 	KC(64),	KS_Cmd_ContrastUp,	KS_f6,
72517587c61Skiyohara 	KC(65),	KS_Cmd_BrightnessDown,	KS_f7,
72617587c61Skiyohara 	KC(66),	KS_Cmd_BrightnessUp,	KS_f8,
72717587c61Skiyohara 
72817587c61Skiyohara 	KC(200),KS_Cmd_ScrollFastUp,	KS_Up,
72917587c61Skiyohara 	KC(208),KS_Cmd_ScrollFastDown,	KS_Down,
73017587c61Skiyohara 	KC(203),KS_KP_Home,		KS_Left,
73117587c61Skiyohara 	KC(205),KS_KP_End,		KS_Right,
73217587c61Skiyohara };
73317587c61Skiyohara 
734378e6e42Such /*
735378e6e42Such  * HITACHI PERSONA HPW200EC
736378e6e42Such */
737378e6e42Such /* US */
73880e190d1Suwe const uint8_t persona_hpw200ec_keytrans[] = {
739378e6e42Such /*      0    1    2    3    4    5    6    7 */
740a1b87c0aSuwe /* 0 */  3 ,  2 , 71 , 69 , 67 , SPL, UNK, UNK,
741a1b87c0aSuwe /* 1 */ 11 , UNK, 79 , 77 , 75 , UNK, UNK, UNK,
742a1b87c0aSuwe /* 2 */ 19 , UNK, UNK, 85 , 83 , UNK, UNK, UNK,
743a1b87c0aSuwe /* 3 */ 27 , 26 , 95 , 93 , 91 , UNK, UNK, UNK,
744a1b87c0aSuwe /* 4 */ 35 , 34 , 103, 101, 99 , 32 , UNK, UNK,
745a1b87c0aSuwe /* 5 */ 43 , 42 , 111, 109, 107, 40 , UNK, UNK,
746a1b87c0aSuwe /* 6 */ 51 , 50 , 119, 117, 115, 48 , UNK, UNK,
747a1b87c0aSuwe /* 7 */ 59 , 58 , UNK, UNK, 123, 56 , UNK, UNK,
748a1b87c0aSuwe /* 8 */  5 ,  6 , 70 , 68 , 66 , UNK, UNK, UNK,
749a1b87c0aSuwe /* 9 */ UNK, UNK, 78 , 76 , 74 , UNK, UNK, UNK,
750a1b87c0aSuwe /*10 */ 21 , UNK, UNK, 84 , 82 , UNK, UNK, UNK,
751a1b87c0aSuwe /*11 */ 29 , 30 , 94 , 92 , 90 , UNK, UNK, UNK,
752a1b87c0aSuwe /*12 */ UNK, 26 , 102, 100, 98 , UNK, UNK, UNK,
753a1b87c0aSuwe /*13 */ UNK, 46 , 110, 108, 106, 104, UNK, UNK,
754a1b87c0aSuwe /*14 */ 53 , 54 , 118, 124, 114, UNK, UNK, UNK,
755a1b87c0aSuwe /*15 */ 61 , 62 , 126, UNK, 122, UNK, UNK, UNK,
756378e6e42Such };
757378e6e42Such 
758378e6e42Such const int persona_hpw200ec_special_keymap[] = {
759b7e745a1Skiyohara 	[KEY_SPECIAL_OFF]	= 5,
760378e6e42Such 	[KEY_SPECIAL_LIGHT]	= -1
761378e6e42Such };
762378e6e42Such 
76338626ea2Such #endif /* hpcsh */
76438626ea2Such 
765c3f9ee5dSpeter #ifdef hpcarm
766c3f9ee5dSpeter /*
767c3f9ee5dSpeter  * HP Jornada 710/720/728
768c3f9ee5dSpeter  */
769c3f9ee5dSpeter 
770c3f9ee5dSpeter /* Japanese */
771c3f9ee5dSpeter const uint8_t jornada7xx_jp_keytrans[] = {
772c3f9ee5dSpeter /* 00 */ UNK,  1 , 59 , 60 , 61 , 62 , 63 , 64 ,
77394ebfefbSpeter /* 08 */ 65 , 66 , 67 , 112, 41 , IGN, IGN, IGN,
774c3f9ee5dSpeter /* 10 */ UNK,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,
775c3f9ee5dSpeter /* 18 */  9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
776c3f9ee5dSpeter /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
777c3f9ee5dSpeter /* 28 */  23, 24 , 25 , 26 , UNK, UNK, UNK, UNK,
778c3f9ee5dSpeter /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
779c3f9ee5dSpeter /* 38 */  37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
780c3f9ee5dSpeter /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
781c3f9ee5dSpeter /* 48 */  51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
782c3f9ee5dSpeter /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
783c3f9ee5dSpeter /* 58 */ UNK, UNK, 200, 125, 54 , UNK, UNK, UNK,
784c3f9ee5dSpeter /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 123, UNK,
785c3f9ee5dSpeter /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
786f75a2589Speter /* 70 */ UNK, 184, 29 , UNK, 57 , UNK, UNK, 121,
787c3f9ee5dSpeter /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
788c3f9ee5dSpeter };
789c3f9ee5dSpeter 
790c3f9ee5dSpeter /* US/UK - Fn to the left of the space bar and missing few keys */
791c3f9ee5dSpeter const uint8_t jornada7xx_us_keytrans[] = {
792c3f9ee5dSpeter /* 00 */ UNK,  1 , 59 , 60 , 61 , 62 , 63 , 64 ,
79394ebfefbSpeter /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN,
794c3f9ee5dSpeter /* 10 */ UNK,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,
795c3f9ee5dSpeter /* 18 */  9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
796c3f9ee5dSpeter /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
797c3f9ee5dSpeter /* 28 */  23, 24 , 25 , 43 , 14 , UNK, UNK, UNK,
798c3f9ee5dSpeter /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
799c3f9ee5dSpeter /* 38 */  37, 38 , 39 , 40 , UNK, UNK, UNK, UNK,
800c3f9ee5dSpeter /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
801c3f9ee5dSpeter /* 48 */  51, 52 , UNK, 40 , 28 , UNK, UNK, UNK,
802c3f9ee5dSpeter /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
803c3f9ee5dSpeter /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
804f75a2589Speter /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 184, UNK,
805c3f9ee5dSpeter /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
8064cab041dSpeter /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
807c3f9ee5dSpeter /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
808c3f9ee5dSpeter };
809c3f9ee5dSpeter 
810c3f9ee5dSpeter /* International - AltGr to the right and extra keys in three middle rows */
811c3f9ee5dSpeter const uint8_t jornada7xx_intl_keytrans[] = {
812c3f9ee5dSpeter /* 00 */ UNK,  1 , 59 , 60 , 61 , 62 , 63 , 64 ,
81394ebfefbSpeter /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN,
814c3f9ee5dSpeter /* 10 */ UNK,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,
815c3f9ee5dSpeter /* 18 */  9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
816c3f9ee5dSpeter /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
817c3f9ee5dSpeter /* 28 */  23, 24 , 25 , 26 , 14 , UNK, UNK, UNK,
818c3f9ee5dSpeter /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
819c3f9ee5dSpeter /* 38 */  37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
820c3f9ee5dSpeter /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
821c3f9ee5dSpeter /* 48 */  51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
822c3f9ee5dSpeter /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
823c3f9ee5dSpeter /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
824c3f9ee5dSpeter /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 41 , UNK,
825c3f9ee5dSpeter /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
826c3f9ee5dSpeter /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
827f75a2589Speter /* 78 */ 184, 211, UNK, UNK, UNK, UNK, UNK, SPL,
828c3f9ee5dSpeter };
829c3f9ee5dSpeter 
830c3f9ee5dSpeter const int jornada7xx_special_keymap[] = {
831d0109f30Speter 	[KEY_SPECIAL_OFF]	= 127,
832d0109f30Speter 	[KEY_SPECIAL_LIGHT]	= -1
833c3f9ee5dSpeter };
834b62fc9e2Snonaka 
835b62fc9e2Snonaka /*
836b62fc9e2Snonaka  * Sharp W-ZERO3 series
837b62fc9e2Snonaka  */
838b62fc9e2Snonaka /*
839b62fc9e2Snonaka  * WS003SH/WS004SH/WS007SH keyscan map
840b62fc9e2Snonaka 	CTRL	(none)	TAB	(none)	CALL	MAIL	IE
841b62fc9e2Snonaka 	1	2	q	w	a	z	MOJI
842b62fc9e2Snonaka 	3	4	e	s	d	x	(none)
843b62fc9e2Snonaka 	5	r	t	f	c	-	OK
844b62fc9e2Snonaka 	6	y	g	v	b	SPACE	ACTION
845b62fc9e2Snonaka 	7	8	u	h	n	/	,
846b62fc9e2Snonaka 	9	i	j	m	.	(none)	LEFT
847b62fc9e2Snonaka 	0	o	k	l	(none)	UP	DOWN
848b62fc9e2Snonaka 	BS	p	(none)	(none)	ENTER	(none)	RIGHT
849b62fc9e2Snonaka 	(none)	(none)	(none)	(none)	(none)	(none)	(none)
850b62fc9e2Snonaka 	ROTATE	VOL-	(none)	SHIFT	WIN	LSOFT	RSOFT
851b62fc9e2Snonaka 	CAMERA	VOL+	(none)	(none)	(none)	FN	(none)
852b62fc9e2Snonaka */
853b62fc9e2Snonaka /* Japanese */
854b62fc9e2Snonaka const uint8_t ws003sh_jp_keytrans[] = {
855b62fc9e2Snonaka /*	row#0,	row#1,	row#2,	row#3,	row#4,	row#5,	row#6,	*/
856b62fc9e2Snonaka /*00*/	29,	UNK,	15,	UNK,	IGN,	IGN,	IGN,
857b62fc9e2Snonaka /*01*/	2,	3,	16,	17,	30,	44,	1,
858b62fc9e2Snonaka /*02*/	4,	5,	18,	31,	32,	45,	UNK,
859b62fc9e2Snonaka /*03*/	6,	19,	20,	33,	46,	12,	28,
860b62fc9e2Snonaka /*04*/	7,	21,	34,	47,	48,	57,	28,
861b62fc9e2Snonaka /*05*/	8,	9,	22,	35,	49,	53,	51,
862b62fc9e2Snonaka /*06*/	10,	23,	36,	50,	52,	UNK,	203,
863b62fc9e2Snonaka /*07*/	11,	24,	37,	38,	UNK,	200,	208,
864b62fc9e2Snonaka /*08*/	14,	25,	UNK,	UNK,	28,	UNK,	205,
865b62fc9e2Snonaka /*09*/	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,
866b62fc9e2Snonaka /*10*/	IGN,	174,	UNK,	42,	IGN,	IGN,	IGN,
867b62fc9e2Snonaka /*11*/	IGN,	176,	UNK,	UNK,	UNK,	184,	SPL,
868b62fc9e2Snonaka };
869b62fc9e2Snonaka 
870b62fc9e2Snonaka const int ws003sh_special_keymap[] = {
871b62fc9e2Snonaka 	[KEY_SPECIAL_OFF]	= 83,
872b62fc9e2Snonaka 	[KEY_SPECIAL_LIGHT]	= -1
873b62fc9e2Snonaka };
874b62fc9e2Snonaka 
875b62fc9e2Snonaka static const keysym_t ws003sh_jp_keydesc[] = {
876b62fc9e2Snonaka /*  pos		normal		shifted		altgr	*/
877b62fc9e2Snonaka     KC(4),	KS_3,		KS_numbersign,	KS_Cmd_BrightnessDown,
878b62fc9e2Snonaka     KC(5),	KS_4,		KS_dollar,	KS_Cmd_BrightnessUp,
879b62fc9e2Snonaka     KC(8),	KS_7,		KS_apostrophe,	KS_grave,
880b62fc9e2Snonaka     KC(9),	KS_8,		KS_parenleft,	KS_braceleft,
881b62fc9e2Snonaka     KC(10),	KS_9,		KS_parenright,	KS_braceright,
882b62fc9e2Snonaka     KC(12),	KS_minus,	KS_equal,	KS_backslash,
883b62fc9e2Snonaka     KC(14),	KS_Delete,	KS_Delete,	KS_BackSpace,
884b62fc9e2Snonaka     KC(15),	KS_Tab,		KS_Tab,		KS_Escape,
885b62fc9e2Snonaka     KC(17),	KS_w,		KS_W,		KS_asciicircum,
886b62fc9e2Snonaka     KC(18),	KS_e,		KS_E,		KS_asciitilde,
887b62fc9e2Snonaka     KC(19),	KS_r,		KS_R,		KS_bar,
888b62fc9e2Snonaka     KC(22),	KS_u,		KS_U,		KS_bracketleft,
889b62fc9e2Snonaka     KC(23),	KS_i,		KS_I,		KS_bracketright,
890b62fc9e2Snonaka     KC(24),	KS_o,		KS_O,		KS_underscore,
891b62fc9e2Snonaka     KC(25),	KS_p,		KS_P,		KS_at,
892b62fc9e2Snonaka     KC(37),	KS_k,		KS_K,		KS_plus,
893b62fc9e2Snonaka     KC(38),	KS_l,		KS_L,		KS_asterisk,
894b62fc9e2Snonaka     KC(42),	KS_Shift_L,	KS_Shift_L,	KS_Shift_Lock,
895b62fc9e2Snonaka     KC(51),	KS_comma,	KS_semicolon,	KS_less,
896b62fc9e2Snonaka     KC(52),	KS_period,	KS_colon,	KS_greater,
897b62fc9e2Snonaka     KC(184),	KS_Mode_switch,	KS_Multi_key,
898b62fc9e2Snonaka     KC(200),	KS_Up,		KS_Up,		KS_Prior,
899b62fc9e2Snonaka     KC(203),	KS_Left,	KS_Left,	KS_Home,
900b62fc9e2Snonaka     KC(205),	KS_Right,	KS_Right,	KS_End,
901b62fc9e2Snonaka     KC(208),	KS_Down,	KS_Down,	KS_Next,
902b62fc9e2Snonaka };
903b62fc9e2Snonaka 
904b62fc9e2Snonaka /*
905250a759eSnonaka  * WS011SH keyscan map
906b62fc9e2Snonaka 	Ctrl	(none)	Tab	(none)	(none)	(none)	(none)
907b62fc9e2Snonaka 	(none)	(none)	Q	W	A	Z	MOJI
908b62fc9e2Snonaka 	(none)	(none)	E	S	D	X	HAN/ZEN
909b62fc9e2Snonaka 	(none)	R	T	F	C	-	OK
910b62fc9e2Snonaka 	(none)	Y	G	V	B	Space	(none)
911b62fc9e2Snonaka 	(none)	(none)	U	H	N	/	,
912b62fc9e2Snonaka 	(none)	I	J	M	.	(none)	LEFT
913b62fc9e2Snonaka 	(none)	O	K	L	(none)	UP	DOWN
914250a759eSnonaka 	Del	P	(none)	(none)	Enter	(none)	RIGHT
915b62fc9e2Snonaka 	(none)	(none)	(none)	(none)	(none)	(none)	(none)
916b62fc9e2Snonaka 	ROTATE	(none)	(none)	SHIFT	(none)	(none)	(none)
917b62fc9e2Snonaka 	(none)	(none)	(none)	(none)	(none)	FN	(none)
918b62fc9e2Snonaka */
919b62fc9e2Snonaka /* Japanese */
920b62fc9e2Snonaka const uint8_t ws011sh_jp_keytrans[] = {
921b62fc9e2Snonaka /*	row#0,	row#1,	row#2,	row#3,	row#4,	row#5,	row#6,	*/
922b62fc9e2Snonaka /*00*/	29,	UNK,	15,	UNK,	UNK,	UNK,	UNK,
923b62fc9e2Snonaka /*01*/	UNK,	UNK,	16,	17,	30,	44,	1,
924b62fc9e2Snonaka /*02*/	UNK,	UNK,	18,	31,	32,	45,	41,
925b62fc9e2Snonaka /*03*/	UNK,	19,	20,	33,	46,	12,	3,
926b62fc9e2Snonaka /*04*/	UNK,	21,	34,	47,	48,	57,	UNK,
927b62fc9e2Snonaka /*05*/	UNK,	UNK,	22,	35,	49,	53,	51,
928b62fc9e2Snonaka /*06*/	UNK,	23,	36,	50,	52,	UNK,	203,
929b62fc9e2Snonaka /*07*/	UNK,	24,	37,	38,	UNK,	200,	208,
930b62fc9e2Snonaka /*08*/	14,	25,	UNK,	UNK,	28,	UNK,	205,
931b62fc9e2Snonaka /*09*/	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,
932b62fc9e2Snonaka /*10*/	IGN,	UNK,	UNK,	42,	UNK,	UNK,	UNK,
933b62fc9e2Snonaka /*11*/	UNK,	UNK,	UNK,	UNK,	UNK,	184,	SPL,
934b62fc9e2Snonaka };
935b62fc9e2Snonaka 
936b62fc9e2Snonaka const int ws011sh_special_keymap[] = {
937b62fc9e2Snonaka 	[KEY_SPECIAL_OFF]	= 83,
938b62fc9e2Snonaka 	[KEY_SPECIAL_LIGHT]	= -1
939b62fc9e2Snonaka };
940b62fc9e2Snonaka 
941b62fc9e2Snonaka static const keysym_t ws011sh_jp_keydesc[] = {
942b62fc9e2Snonaka /*  pos		normal		shifted		altgr	*/
943b62fc9e2Snonaka     KC(3),	KS_grave,	KS_braceleft,	KS_braceright,
944b62fc9e2Snonaka     KC(12),	KS_minus,	KS_equal,	KS_backslash,
945b62fc9e2Snonaka     KC(14),	KS_Delete,	KS_Delete,	KS_BackSpace,
946b62fc9e2Snonaka     KC(15),	KS_Tab,		KS_Tab,		KS_Escape,
947b62fc9e2Snonaka     KC(16),	KS_q,		KS_Q,		KS_quotedbl,
948b62fc9e2Snonaka     KC(17),	KS_w,		KS_W,		KS_numbersign,
949b62fc9e2Snonaka     KC(18),	KS_e,		KS_E,		KS_dollar,
950b62fc9e2Snonaka     KC(19),	KS_r,		KS_R,		KS_percent,
951b62fc9e2Snonaka     KC(20),	KS_t,		KS_T,		KS_ampersand,
952b62fc9e2Snonaka     KC(21),	KS_y,		KS_Y,		KS_1,
953b62fc9e2Snonaka     KC(22),	KS_u,		KS_U,		KS_2,
954b62fc9e2Snonaka     KC(23),	KS_i,		KS_I,		KS_3,
955b62fc9e2Snonaka     KC(24),	KS_o,		KS_O,		KS_underscore,
956b62fc9e2Snonaka     KC(25),	KS_p,		KS_P,		KS_at,
957b62fc9e2Snonaka     KC(30),	KS_a,		KS_A,		KS_bracketleft,
958b62fc9e2Snonaka     KC(31),	KS_s,		KS_S,		KS_apostrophe,
959b62fc9e2Snonaka     KC(32),	KS_d,		KS_D,		KS_parenleft,
960b62fc9e2Snonaka     KC(33),	KS_f,		KS_F,		KS_parenright,
961b62fc9e2Snonaka     KC(34),	KS_g,		KS_G,		KS_asterisk,
962b62fc9e2Snonaka     KC(35),	KS_h,		KS_H,		KS_4,
963b62fc9e2Snonaka     KC(36),	KS_j,		KS_J,		KS_5,
964b62fc9e2Snonaka     KC(37),	KS_k,		KS_K,		KS_6,
965b62fc9e2Snonaka     KC(38),	KS_l,		KS_L,		KS_plus,
966b62fc9e2Snonaka     KC(41),	KS_Zenkaku_Hankaku, KS_Zenkaku_Hankaku, KS_exclam,
967b62fc9e2Snonaka     KC(42),	KS_Shift_L,	KS_Shift_L,	KS_Shift_Lock,
968b62fc9e2Snonaka     KC(44),	KS_z,		KS_Z,		KS_bracketright,
969b62fc9e2Snonaka     KC(45),	KS_x,		KS_X,		KS_asciicircum,
970b62fc9e2Snonaka     KC(46),	KS_c,		KS_C,		KS_asciitilde,
971b62fc9e2Snonaka     KC(47),	KS_v,		KS_V,		KS_bar,
972b62fc9e2Snonaka     KC(48),	KS_b,		KS_B,		KS_7,
973b62fc9e2Snonaka     KC(49),	KS_n,		KS_N,		KS_8,
974b62fc9e2Snonaka     KC(50),	KS_m,		KS_M,		KS_9,
975b62fc9e2Snonaka     KC(51),	KS_comma,	KS_less,	KS_semicolon,
976b62fc9e2Snonaka     KC(52),	KS_period,	KS_greater,	KS_colon,
977b62fc9e2Snonaka     KC(53),	KS_slash,	KS_question,	KS_0,
978b62fc9e2Snonaka     KC(57),	KS_space,
979b62fc9e2Snonaka     KC(184),	KS_Mode_switch,	KS_Multi_key,
980b62fc9e2Snonaka     KC(200),	KS_Up,		KS_Up,		KS_Prior,
981b62fc9e2Snonaka     KC(203),	KS_Left,	KS_Left,	KS_Home,
982b62fc9e2Snonaka     KC(205),	KS_Right,	KS_Right,	KS_End,
983b62fc9e2Snonaka     KC(208),	KS_Down,	KS_Down,	KS_Next,
984b62fc9e2Snonaka };
985250a759eSnonaka 
986250a759eSnonaka /*
987250a759eSnonaka  * WS020SH keyscan map
988250a759eSnonaka 	Ctrl	(none)	Tab	(none)	(none)	(none)	(none)
989250a759eSnonaka 	(none)	(none)	Q	W	A	Z	MOJI
990250a759eSnonaka 	(none)	(none)	E	S	D	X	HAN/ZEN
991250a759eSnonaka 	(none)	R	T	F	C	-	OK
992250a759eSnonaka 	(none)	Y	G	V	B	Space	(none)
993250a759eSnonaka 	(none)	(none)	U	H	N	/	,
994250a759eSnonaka 	(none)	I	J	M	.	(none)	LEFT
995250a759eSnonaka 	(none)	O	K	L	(none)	UP	(none)
996250a759eSnonaka 	Del	P	(none)	(none)	Enter	(none)	RIGHT
997250a759eSnonaka 	(none)	(none)	(none)	(none)	(none)	DOWN	(none)
998250a759eSnonaka 	ROTATE	MEDIA	(none)	LSHIFT	RSHIFT	(none)	(none)
999250a759eSnonaka 	(none)	(none)	(none)	(none)	(none)	FN	(none)
1000250a759eSnonaka */
1001250a759eSnonaka /* Japanese */
1002250a759eSnonaka const uint8_t ws020sh_jp_keytrans[] = {
1003250a759eSnonaka /*	row#0,	row#1,	row#2,	row#3,	row#4,	row#5,	row#6,	*/
1004250a759eSnonaka /*00*/	29,	UNK,	15,	UNK,	UNK,	UNK,	UNK,
1005250a759eSnonaka /*01*/	UNK,	UNK,	16,	17,	30,	44,	1,
1006250a759eSnonaka /*02*/	UNK,	UNK,	18,	31,	32,	45,	41,
1007250a759eSnonaka /*03*/	UNK,	19,	20,	33,	46,	12,	3,
1008250a759eSnonaka /*04*/	UNK,	21,	34,	47,	48,	57,	UNK,
1009250a759eSnonaka /*05*/	UNK,	UNK,	22,	35,	49,	53,	51,
1010250a759eSnonaka /*06*/	UNK,	23,	36,	50,	52,	UNK,	203,
1011250a759eSnonaka /*07*/	UNK,	24,	37,	38,	UNK,	200,	UNK,
1012250a759eSnonaka /*08*/	14,	25,	UNK,	UNK,	28,	UNK,	205,
1013250a759eSnonaka /*09*/	UNK,	UNK,	UNK,	UNK,	UNK,	208,	UNK,
1014250a759eSnonaka /*10*/	IGN,	IGN,	UNK,	42,	54,	UNK,	UNK,
1015250a759eSnonaka /*11*/	UNK,	UNK,	UNK,	UNK,	UNK,	184,	SPL,
1016250a759eSnonaka };
1017250a759eSnonaka 
1018250a759eSnonaka const int ws020sh_special_keymap[] = {
1019250a759eSnonaka 	[KEY_SPECIAL_OFF]	= 83,
1020250a759eSnonaka 	[KEY_SPECIAL_LIGHT]	= -1
1021250a759eSnonaka };
1022250a759eSnonaka 
1023250a759eSnonaka static const keysym_t ws020sh_jp_keydesc[] = {
1024250a759eSnonaka /*  pos		normal		shifted		altgr	*/
1025250a759eSnonaka     KC(3),	KS_grave,	KS_braceleft,	KS_braceright,
1026250a759eSnonaka     KC(12),	KS_minus,	KS_equal,	KS_backslash,
1027250a759eSnonaka     KC(14),	KS_Delete,	KS_Delete,	KS_BackSpace,
1028250a759eSnonaka     KC(15),	KS_Tab,		KS_Tab,		KS_Escape,
1029250a759eSnonaka     KC(16),	KS_q,		KS_Q,		KS_quotedbl,
1030250a759eSnonaka     KC(17),	KS_w,		KS_W,		KS_numbersign,
1031250a759eSnonaka     KC(18),	KS_e,		KS_E,		KS_dollar,
1032250a759eSnonaka     KC(19),	KS_r,		KS_R,		KS_percent,
1033250a759eSnonaka     KC(20),	KS_t,		KS_T,		KS_ampersand,
1034250a759eSnonaka     KC(21),	KS_y,		KS_Y,		KS_underscore,
1035250a759eSnonaka     KC(22),	KS_u,		KS_U,		KS_1,
1036250a759eSnonaka     KC(23),	KS_i,		KS_I,		KS_2,
1037250a759eSnonaka     KC(24),	KS_o,		KS_O,		KS_3,
1038250a759eSnonaka     KC(25),	KS_p,		KS_P,		KS_at,
1039250a759eSnonaka     KC(30),	KS_a,		KS_A,		KS_bracketleft,
1040250a759eSnonaka     KC(31),	KS_s,		KS_S,		KS_apostrophe,
1041250a759eSnonaka     KC(32),	KS_d,		KS_D,		KS_parenleft,
1042250a759eSnonaka     KC(33),	KS_f,		KS_F,		KS_parenright,
1043250a759eSnonaka     KC(34),	KS_g,		KS_G,		KS_asterisk,
1044250a759eSnonaka     KC(35),	KS_h,		KS_H,		KS_4,
1045250a759eSnonaka     KC(36),	KS_j,		KS_J,		KS_5,
1046250a759eSnonaka     KC(37),	KS_k,		KS_K,		KS_6,
1047250a759eSnonaka     KC(38),	KS_l,		KS_L,		KS_plus,
1048250a759eSnonaka     KC(41),	KS_Zenkaku_Hankaku, KS_Zenkaku_Hankaku, KS_exclam,
1049250a759eSnonaka     KC(42),	KS_Shift_L,	KS_Shift_L,	KS_Shift_Lock,
1050250a759eSnonaka     KC(44),	KS_z,		KS_Z,		KS_bracketright,
1051250a759eSnonaka     KC(45),	KS_x,		KS_X,		KS_asciicircum,
1052250a759eSnonaka     KC(46),	KS_c,		KS_C,		KS_asciitilde,
1053250a759eSnonaka     KC(47),	KS_v,		KS_V,		KS_bar,
1054250a759eSnonaka     KC(48),	KS_b,		KS_B,		KS_7,
1055250a759eSnonaka     KC(49),	KS_n,		KS_N,		KS_8,
1056250a759eSnonaka     KC(50),	KS_m,		KS_M,		KS_9,
1057250a759eSnonaka     KC(51),	KS_comma,	KS_less,	KS_semicolon,
1058250a759eSnonaka     KC(52),	KS_period,	KS_greater,	KS_colon,
1059250a759eSnonaka     KC(53),	KS_slash,	KS_question,	KS_0,
1060250a759eSnonaka     KC(54),	KS_Shift_R,	KS_Shift_R,	KS_Shift_Lock,
1061250a759eSnonaka     KC(57),	KS_space,
1062250a759eSnonaka     KC(184),	KS_Mode_switch,	KS_Multi_key,
1063250a759eSnonaka     KC(200),	KS_Up,		KS_Up,		KS_Prior,
1064250a759eSnonaka     KC(203),	KS_Left,	KS_Left,	KS_Home,
1065250a759eSnonaka     KC(205),	KS_Right,	KS_Right,	KS_End,
1066250a759eSnonaka     KC(208),	KS_Down,	KS_Down,	KS_Next,
1067250a759eSnonaka };
1068*587ef940Skiyohara 
1069*587ef940Skiyohara const uint8_t netbookpro_keytrans[] = {
1070*587ef940Skiyohara /*	row#0,	row#1,	row#2,	row#3,	row#4,	row#5,	row#6,	row#7	*/
1071*587ef940Skiyohara /*00*/	 28,	205,	 15,	 21,	203,	208,	 49,	 42,
1072*587ef940Skiyohara 	UNK,	UNK,	UNK,	UNK,	UNK,	 14,	UNK,	 12,
1073*587ef940Skiyohara /*10*/	 13,	 11,	 25,	 39,	UNK,	 54,	UNK,	UNK,
1074*587ef940Skiyohara 	UNK,	UNK,	UNK,	 37,	 23,	  9,	 10,	 24,
1075*587ef940Skiyohara /*20*/	 38,	UNK,	UNK,	 29,	UNK,	UNK,	UNK,	UNK,
1076*587ef940Skiyohara 	 51,	 40,	 50,	 36,	 22,	  8,	UNK,	UNK,
1077*587ef940Skiyohara /*30*/	UNK,	184,	UNK,	UNK,	 57,	 19,	  5,	  6,
1078*587ef940Skiyohara 	 20,	 34,	 48,	UNK,	UNK,	UNK,	UNK,	 43,
1079*587ef940Skiyohara /*40*/	UNK,	 56,	 33,	 47,	 46,	 32,	 18,	  4,
1080*587ef940Skiyohara 	UNK,	UNK,	UNK,	UNK,	UNK,	 53,	UNK,	 16,
1081*587ef940Skiyohara /*50*/	 30,	 44,	 31,	 17,	 45,	UNK,	UNK,	UNK,
1082*587ef940Skiyohara 	UNK,	UNK,	UNK,	  1,	  2,	  3,	  7,	 52,
1083*587ef940Skiyohara /*60*/	UNK,	 35,	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,
1084*587ef940Skiyohara 	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,	UNK,
1085*587ef940Skiyohara };
1086*587ef940Skiyohara 
1087*587ef940Skiyohara static const keysym_t netbookpro_keydesc[] = {
1088*587ef940Skiyohara /* pos      command		normal		shifted		fn	*/
1089*587ef940Skiyohara    KC(2),   KS_Cmd_Screen0,	KS_1,		KS_exclam,	KS_f1,
1090*587ef940Skiyohara    KC(3),   KS_Cmd_Screen1,	KS_2,		KS_at,		KS_f2,
1091*587ef940Skiyohara    KC(4),   KS_Cmd_Screen2,	KS_3,		KS_numbersign,	KS_f3,
1092*587ef940Skiyohara    KC(5),   KS_Cmd_Screen3,	KS_4,		KS_dollar,	KS_f4,
1093*587ef940Skiyohara    KC(6),   			KS_5,		KS_percent,	KS_grave,
1094*587ef940Skiyohara    KC(7),   			KS_6,		KS_asciicircum,	KS_apostrophe,
1095*587ef940Skiyohara    KC(8),   			KS_7,		KS_ampersand,	KS_braceleft,
1096*587ef940Skiyohara    KC(9),   			KS_8,		KS_asterisk,	KS_braceright,
1097*587ef940Skiyohara    KC(10),  			KS_9,		KS_parenleft,	KS_bracketleft,
1098*587ef940Skiyohara    KC(11),  			KS_0,		KS_parenright,	KS_bracketright,
1099*587ef940Skiyohara    KC(12),  			KS_minus,	KS_underscore,	KS_numbersign,
1100*587ef940Skiyohara    KC(15),  			KS_Tab,		KS_BackSpace,	KS_Caps_Lock,
1101*587ef940Skiyohara    KC(40),			KS_apostrophe,	KS_quotedbl,	KS_at,
1102*587ef940Skiyohara    KC(43),			KS_backslash,	KS_asciitilde,	KS_bar,
1103*587ef940Skiyohara    KC(51),			KS_comma,	KS_less,	KS_minus,
1104*587ef940Skiyohara    KC(52),  			KS_period,	KS_greater,	KS_plus,
1105*587ef940Skiyohara    KC(53),  			KS_slash,	KS_question,	KS_Help,
1106*587ef940Skiyohara    KC(184),			KS_Mode_switch,	KS_Multi_key,
1107*587ef940Skiyohara    KC(203),			KS_Left,	KS_Left,	KS_Home,
1108*587ef940Skiyohara    KC(205),			KS_Right,	KS_Right,	KS_End,
1109*587ef940Skiyohara };
1110c3f9ee5dSpeter #endif /* hpcarm */
1111c3f9ee5dSpeter 
1112c3f9ee5dSpeter #if defined(hpcarm) || defined(hpcsh)
1113c3f9ee5dSpeter /*
1114c3f9ee5dSpeter  * Shared keymaps between the Jornada series (6xx, 7xx).
1115c3f9ee5dSpeter  */
1116c3f9ee5dSpeter 
1117c3f9ee5dSpeter /* US (ABA), UK (ABU) */
1118c3f9ee5dSpeter static const keysym_t jornada_us_keydesc[] = {
1119c3f9ee5dSpeter /*  pos      normal          shifted        altgr       */
1120c3f9ee5dSpeter     KC(2),   KS_1,           KS_exclam,     KS_asciitilde,
1121c3f9ee5dSpeter     KC(3),   KS_2,           KS_at,         KS_grave,
1122c3f9ee5dSpeter     KC(4),   KS_3,           KS_numbersign, KS_sterling,
1123c3f9ee5dSpeter #ifdef KS_euro
1124c3f9ee5dSpeter     KC(5),   KS_4,           KS_dollar,     KS_euro,
1125c3f9ee5dSpeter #endif
1126c3f9ee5dSpeter     KC(25),  KS_p,           KS_P,          KS_braceleft,
1127c3f9ee5dSpeter     KC(39),  KS_semicolon,   KS_colon,      KS_bracketleft,
1128c3f9ee5dSpeter     KC(40),  KS_apostrophe,  KS_quotedbl,   KS_bracketright,
1129c3f9ee5dSpeter     KC(43),  KS_backslash,   KS_bar,        KS_braceright,
1130c3f9ee5dSpeter     KC(184), KS_Mode_switch, KS_Multi_key,
1131c3f9ee5dSpeter 
1132c3f9ee5dSpeter     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
1133c3f9ee5dSpeter     KC(203), KS_Cmd_ContrastDown,   KS_Left,
1134c3f9ee5dSpeter     KC(205), KS_Cmd_ContrastUp,     KS_Right,
1135c3f9ee5dSpeter     KC(208), KS_Cmd_BrightnessDown, KS_Down,
1136c3f9ee5dSpeter };
1137c3f9ee5dSpeter 
1138c3f9ee5dSpeter /*
1139c3f9ee5dSpeter  * XXX: Add AltGr layer for #ABB here?  OTOH, all the keys necessary
1140c3f9ee5dSpeter  * for basic actions in DDB or shell are on the primary layer, so it
1141c3f9ee5dSpeter  * makes sense to support AltGr via wsconsctl(8) instead, as the same
1142c3f9ee5dSpeter  * primary layer is used e.g. in Russian models.  But it does make
1143c3f9ee5dSpeter  * sense to define the <AltGr> key itself here, as we base this layout
1144c3f9ee5dSpeter  * on KB_US that defines it as the right <Alt>.
1145c3f9ee5dSpeter  */
1146c3f9ee5dSpeter /* European English (ABB) */
1147c3f9ee5dSpeter static const keysym_t jornada_intl_keydesc[] = {
1148c3f9ee5dSpeter /*  pos      normal          shifted        altgr       */
1149c3f9ee5dSpeter     KC(42),  KS_Shift_L,     KS_Shift_L,    KS_Caps_Lock,
1150c3f9ee5dSpeter     KC(184), KS_Mode_switch, KS_Multi_key,
1151c3f9ee5dSpeter 
1152c3f9ee5dSpeter     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
1153c3f9ee5dSpeter     KC(203), KS_Cmd_ContrastDown,   KS_Left,
1154c3f9ee5dSpeter     KC(205), KS_Cmd_ContrastUp,     KS_Right,
1155c3f9ee5dSpeter     KC(208), KS_Cmd_BrightnessDown, KS_Down,
1156c3f9ee5dSpeter };
1157c3f9ee5dSpeter 
1158c3f9ee5dSpeter /* German (ABD) */
1159c3f9ee5dSpeter static const keysym_t jornada_de_keydesc[] = {
1160c3f9ee5dSpeter /*  pos      normal          shifted        altgr       */
1161c3f9ee5dSpeter     KC(2),   KS_1,           KS_exclam,     KS_brokenbar,
1162c3f9ee5dSpeter     KC(5),   KS_4,           KS_dollar,     KS_ccedilla,
1163c3f9ee5dSpeter     KC(6),   KS_5,           KS_percent,    KS_sterling,
1164c3f9ee5dSpeter     KC(7),   KS_6,           KS_ampersand,  KS_notsign,
1165c3f9ee5dSpeter #ifdef KS_euro
1166c3f9ee5dSpeter     KC(18),  KS_e,           KS_E,          KS_euro,
1167c3f9ee5dSpeter #endif
1168c3f9ee5dSpeter     KC(27),  KS_plus,        KS_asterisk,   KS_asciitilde, /* NB: not dead */
1169c3f9ee5dSpeter     KC(30),  KS_a,           KS_A,          KS_bar,
1170c3f9ee5dSpeter     KC(41),  KS_asciicircum, KS_degree,                    /* NB: not dead */
1171c3f9ee5dSpeter     KC(43),  KS_numbersign,  KS_apostrophe, KS_dead_diaeresis,
1172c3f9ee5dSpeter     KC(44),  KS_y,           KS_Y,          KS_less,
1173c3f9ee5dSpeter     KC(45),  KS_x,           KS_X,          KS_greater,
1174c3f9ee5dSpeter     KC(46),  KS_c,           KS_C,          KS_cent,
1175c3f9ee5dSpeter 
1176c3f9ee5dSpeter     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
1177c3f9ee5dSpeter     KC(203), KS_Cmd_ContrastDown,   KS_Left,
1178c3f9ee5dSpeter     KC(205), KS_Cmd_ContrastUp,     KS_Right,
1179c3f9ee5dSpeter     KC(208), KS_Cmd_BrightnessDown, KS_Down,
1180c3f9ee5dSpeter };
1181c3f9ee5dSpeter 
1182c3f9ee5dSpeter /* French (ABF) */
1183c3f9ee5dSpeter static const keysym_t jornada_fr_keydesc[] = {
1184c3f9ee5dSpeter /*  pos      normal          shifted        altgr       */
1185c3f9ee5dSpeter     KC(2),   KS_ampersand,   KS_1,          KS_plusminus,
1186c3f9ee5dSpeter #ifdef KS_euro
1187c3f9ee5dSpeter     KC(18),  KS_e,           KS_E,          KS_euro,
1188c3f9ee5dSpeter #endif
1189c3f9ee5dSpeter     KC(19),  KS_r,           KS_R,          KS_onequarter,
1190c3f9ee5dSpeter     KC(20),  KS_t,           KS_T,          KS_onehalf,
1191c3f9ee5dSpeter     KC(21),  KS_y,           KS_Y,          KS_threequarters,
1192c3f9ee5dSpeter     KC(25),  KS_p,           KS_P,          KS_paragraph,
1193c3f9ee5dSpeter     KC(30),  KS_q,           KS_Q,          KS_brokenbar,
1194c3f9ee5dSpeter     KC(31),  KS_s,           KS_S,          KS_guillemotleft,
1195c3f9ee5dSpeter     KC(32),  KS_d,           KS_D,          KS_guillemotright,
1196c3f9ee5dSpeter     KC(40),  KS_ugrave,      KS_percent,    KS_dead_acute,
1197c3f9ee5dSpeter     KC(41),  KS_twosuperior, KS_voidSymbol, KS_threesuperior,
1198c3f9ee5dSpeter     KC(43),  KS_asterisk,    KS_mu,         KS_notsign,
1199c3f9ee5dSpeter     KC(44),  KS_w,           KS_W,          KS_less,
1200c3f9ee5dSpeter     KC(45),  KS_x,           KS_X,          KS_greater,
1201c3f9ee5dSpeter     KC(46),  KS_c,           KS_C,          KS_cent,
1202c3f9ee5dSpeter     KC(50),  KS_comma,       KS_question,   KS_mu,
1203c3f9ee5dSpeter     KC(53),  KS_exclam,      KS_section,    KS_Eacute,
1204c3f9ee5dSpeter     KC(184), KS_Mode_switch, KS_Multi_key,
1205c3f9ee5dSpeter 
1206c3f9ee5dSpeter     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
1207c3f9ee5dSpeter     KC(203), KS_Cmd_ContrastDown,   KS_Left,
1208c3f9ee5dSpeter     KC(205), KS_Cmd_ContrastUp,     KS_Right,
1209c3f9ee5dSpeter     KC(208), KS_Cmd_BrightnessDown, KS_Down,
1210c3f9ee5dSpeter };
1211c3f9ee5dSpeter 
1212c3f9ee5dSpeter /* Scandinavian */
1213c3f9ee5dSpeter static const keysym_t jornada_scnv_keydesc[] = {
1214c3f9ee5dSpeter /*  pos      normal          shifted        altgr       */
1215c3f9ee5dSpeter     KC(2),   KS_1,           KS_exclam,     KS_asciitilde,
1216c3f9ee5dSpeter     KC(3),   KS_2,           KS_quotedbl,   KS_at,
1217c3f9ee5dSpeter     KC(4),   KS_3,           KS_numbersign, KS_sterling,
1218c3f9ee5dSpeter     KC(5),   KS_4,           KS_currency,   KS_dollar,
1219c3f9ee5dSpeter     KC(7),   KS_6,           KS_ampersand,
1220c3f9ee5dSpeter     KC(8),   KS_7,           KS_slash,      KS_braceleft,
1221c3f9ee5dSpeter     KC(9),   KS_8,           KS_parenleft,  KS_bracketleft,
1222c3f9ee5dSpeter     KC(10),  KS_9,           KS_parenright, KS_bracketright,
1223c3f9ee5dSpeter     KC(11),  KS_0,           KS_equal,      KS_braceright,
1224c3f9ee5dSpeter     KC(12),  KS_plus,        KS_question,   KS_backslash,
1225c3f9ee5dSpeter     KC(13),  KS_apostrophe,  KS_grave,
1226c3f9ee5dSpeter     KC(25),  KS_p,           KS_P,          KS_braceleft,
1227c3f9ee5dSpeter     KC(26),  KS_aring,
1228c3f9ee5dSpeter     /*
1229c3f9ee5dSpeter      * XXX: KC(39) and KC(40) has odiaeresis/adiaeresis *and*
1230c3f9ee5dSpeter      * oslash/ae on them.  Apparently localized WinCE uses the former
1231c3f9ee5dSpeter      * for Swedish and Finnish and the latter for Danish and
1232c3f9ee5dSpeter      * Norwegian.  But as the keyboard doesn't seem to have
1233c3f9ee5dSpeter      * semicolon/colon and minus/underscore nowhere on the primary and
1234c3f9ee5dSpeter      * altgr layers, I put them here (semicolon/colon is inherited).
1235c3f9ee5dSpeter      */
1236c3f9ee5dSpeter     KC(40),  KS_minus,       KS_underscore, /* XXX */
1237c3f9ee5dSpeter     KC(41),  KS_paragraph,   KS_onehalf,    KS_bar,
1238c3f9ee5dSpeter     KC(184), KS_Mode_switch, KS_Multi_key,
1239c3f9ee5dSpeter 
1240c3f9ee5dSpeter     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
1241c3f9ee5dSpeter     KC(203), KS_Cmd_ContrastDown,   KS_Left,
1242c3f9ee5dSpeter     KC(205), KS_Cmd_ContrastUp,     KS_Right,
1243c3f9ee5dSpeter     KC(208), KS_Cmd_BrightnessDown, KS_Down,
1244c3f9ee5dSpeter };
1245c3f9ee5dSpeter 
1246c3f9ee5dSpeter /* Spanish (ABE) */
1247c3f9ee5dSpeter static const keysym_t jornada_es_keydesc[] = {
1248c3f9ee5dSpeter /*  pos      normal          shifted        altgr            */
1249c3f9ee5dSpeter     KC(2),   KS_1,           KS_exclam,     KS_ordfeminine,
1250c3f9ee5dSpeter     KC(3),   KS_2,           KS_quotedbl,   KS_masculine,
1251c3f9ee5dSpeter     KC(4),   KS_3,           KS_numbersign,
1252c3f9ee5dSpeter     KC(12),  KS_apostrophe,  KS_question,   KS_backslash,
1253c3f9ee5dSpeter     KC(13),  KS_questiondown,KS_exclamdown,
1254c3f9ee5dSpeter     KC(16),  KS_q,           KS_Q,          KS_at,
1255c3f9ee5dSpeter #ifdef KS_euro
1256c3f9ee5dSpeter     KC(18),  KS_e,           KS_E,          KS_euro,
1257c3f9ee5dSpeter #endif
1258c3f9ee5dSpeter     KC(26),  KS_dead_acute,  KS_dead_diaeresis,
1259c3f9ee5dSpeter     KC(27),  KS_plus,        KS_asterisk,   KS_dead_tilde,
1260c3f9ee5dSpeter     KC(40),  KS_braceleft,   KS_bracketleft,KS_dead_circumflex,
1261c3f9ee5dSpeter     KC(41),  KS_bar,         KS_degree,     KS_notsign,
1262c3f9ee5dSpeter     KC(43),  KS_braceright,  KS_bracketright,KS_dead_grave,
1263c3f9ee5dSpeter     KC(44),  KS_z,           KS_Z,          KS_less,
1264c3f9ee5dSpeter     KC(45),  KS_x,           KS_X,          KS_greater,
1265c3f9ee5dSpeter     KC(46),  KS_c,           KS_C,          KS_Ccedilla,
1266c3f9ee5dSpeter 
1267c3f9ee5dSpeter     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
1268c3f9ee5dSpeter     KC(203), KS_Cmd_ContrastDown,   KS_Left,
1269c3f9ee5dSpeter     KC(205), KS_Cmd_ContrastUp,     KS_Right,
1270c3f9ee5dSpeter     KC(208), KS_Cmd_BrightnessDown, KS_Down,
1271c3f9ee5dSpeter };
1272c3f9ee5dSpeter #endif /* hpcarm || hpcsh */
1273dd45c481Suwe 
1274dd45c481Suwe /*
1275dd45c481Suwe  * REMINDER:
1276dd45c481Suwe  *   When adding new entry to this array, make sure that pckbd_keydesctab[]
1277dd45c481Suwe  *   in sys/dev/pckbport/wskbdmap_mfii.c has a placeholder KB_MACHDEP entry
1278dd45c481Suwe  *   for the base ht_layout that you refer.
1279dd45c481Suwe  */
1280659f65e0Such const struct hpckbd_keymap_table {
1281659f65e0Such 	platid_t	*ht_platform;
128280e190d1Suwe 	const uint8_t	*ht_keymap;
1283659f65e0Such 	const int	*ht_special;
1284659f65e0Such 	struct {
1285659f65e0Such 		const keysym_t	*map;
1286659f65e0Such 		int size;
1287659f65e0Such 	} ht_cmdmap;
1288659f65e0Such 	kbd_t		ht_layout;
1289659f65e0Such } hpckbd_keymap_table[] = {
1290659f65e0Such #ifdef hpcmips
1291659f65e0Such 	{	&platid_mask_MACH_COMPAQ_C,
1292659f65e0Such 		tc5165_compaq_c_jp_keymap,
1293659f65e0Such 		tc5165_compaq_c_jp_special_keymap,
1294659f65e0Such 		NULLCMDMAP,
1295659f65e0Such 		KB_JP },
1296659f65e0Such 	{	&platid_mask_MACH_VICTOR_INTERLINK,
1297659f65e0Such 		m38813c_keymap,
1298659f65e0Such 		default_special_keymap,
1299659f65e0Such 		NULLCMDMAP,
1300659f65e0Such 		KB_JP },
1301659f65e0Such 	{	&platid_mask_MACH_SHARP_TELIOS,
1302659f65e0Such 		tc5165_telios_jp_keymap,
1303659f65e0Such 		default_special_keymap,
13048ff59f4fSnakayama 		CMDMAP(tc5165_telios_jp_cmdmap),
1305659f65e0Such 		KB_JP },
1306659f65e0Such 	{	&platid_mask_MACH_SHARP_MOBILON,
1307659f65e0Such 		tc5165_mobilon_keymap,
1308659f65e0Such 		tc5165_mobilon_special_keymap,
1309659f65e0Such 		NULLCMDMAP,
1310659f65e0Such 		KB_US },
1311659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_500A,
1312659f65e0Such 		mobilepro750c_keytrans,
1313659f65e0Such 		NULL,
1314659f65e0Such 		NULLCMDMAP,
1315659f65e0Such 		KB_US },
1316659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_520A,
1317659f65e0Such 		mobilepro_keytrans,
1318659f65e0Such 		NULL,
13195531835eSsato 		CMDMAP(mobilepro_cmdmap),
1320659f65e0Such 		KB_US },
1321659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_530A,
1322caf5e039Stakemura 		mobilepro780_keytrans,
1323659f65e0Such 		NULL,
1324659f65e0Such 		NULLCMDMAP,
1325659f65e0Such 		KB_US },
1326659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_700A,
132789349d30Stv 		mobilepro8x0_keytrans,
1328659f65e0Such 		NULL,
132989349d30Stv 		CMDMAP(mobilepro8x0_cmdmap),
1330659f65e0Such 		KB_US },
1331659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_730A,
133289349d30Stv 		mobilepro8x0_keytrans,
1333659f65e0Such 		NULL,
133489349d30Stv 		CMDMAP(mobilepro8x0_cmdmap),
1335659f65e0Such 		KB_US },
1336659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_MPRO700,
1337659f65e0Such 		mobilepro_keytrans,
1338659f65e0Such 		NULL,
1339659f65e0Such 		NULLCMDMAP,
1340659f65e0Such 		KB_US },
1341659f65e0Such 	{	&platid_mask_MACH_NEC_MCR_SIGMARION,
1342659f65e0Such 		sigmarion_jp_keytrans,
1343659f65e0Such 		NULL,
1344659f65e0Such 		CMDMAP(sigmarion_cmdmap),
1345659f65e0Such 		KB_JP },
134602e91ee7Shamajima 	{	&platid_mask_MACH_NEC_MCR_SIGMARION2,
134702e91ee7Shamajima 		sigmarion_jp_keytrans,
134802e91ee7Shamajima 		NULL,
134902e91ee7Shamajima 		CMDMAP(sigmarion_cmdmap),
135002e91ee7Shamajima 		KB_JP },
1351659f65e0Such 	{	&platid_mask_MACH_NEC_MCR,
1352659f65e0Such 		mcr_jp_keytrans,
1353659f65e0Such 		NULL,
1354659f65e0Such 		CMDMAP(mcr_jp_cmdmap),
1355659f65e0Such 		KB_JP },
1356659f65e0Such 	{	&platid_mask_MACH_IBM_WORKPAD_Z50,
1357659f65e0Such 		z50_keytrans,
1358659f65e0Such 		NULL,
1359659f65e0Such 		NULLCMDMAP,
1360659f65e0Such 		KB_US },
1361659f65e0Such 	{	&platid_mask_MACH_SHARP_TRIPAD,
1362659f65e0Such 		tripad_keytrans,
1363659f65e0Such 		NULL,
13642cfc946fStsutsui 		CMDMAP(tripad_cmdmap),
1365659f65e0Such 		KB_US },
1366659f65e0Such 	{	&platid_mask_MACH_VADEM_CLIO_C,
1367659f65e0Such 		tripad_keytrans,
1368659f65e0Such 		NULL,
13692cfc946fStsutsui 		CMDMAP(tripad_cmdmap),
1370659f65e0Such 		KB_US },
1371659f65e0Such 	{	&platid_mask_MACH_NEC_MCCS,
1372659f65e0Such 		mccs_keytrans,
1373659f65e0Such 		NULL,
1374659f65e0Such 		CMDMAP(mccs_cmdmap),
1375659f65e0Such 		KB_JP },
1376659f65e0Such 	{	&platid_mask_MACH_FUJITSU_INTERTOP,
1377659f65e0Such 		intertop_keytrans,
1378659f65e0Such 		NULL,
1379659f65e0Such 		NULLCMDMAP,
1380659f65e0Such 		KB_JP },
138149cddb00Stakemura 	{	&platid_mask_MACH_CASIO_POCKETPOSTPET,
138249cddb00Stakemura 		pocketpostpet_keytrans,
138349cddb00Stakemura 		NULL,
138449cddb00Stakemura 		NULLCMDMAP,
138549cddb00Stakemura 		KB_JP },
1386659f65e0Such #endif /* hpcmips */
138738626ea2Such #ifdef hpcsh
13882f3cc132Such 	/*
13892f3cc132Such 	 * HP Jornada 680/690
13902f3cc132Such 	 */
139151243a1cSuch 	/* Japanese */
1392b36a5509Such 	{	&platid_mask_MACH_HP_JORNADA_680JP,
1393b36a5509Such 		jornada6x0_jp_keytrans,
139451243a1cSuch 		jornada6x0_special_keymap,
139538626ea2Such 		NULLCMDMAP,
139638626ea2Such 		KB_JP },
139751243a1cSuch 	{	&platid_mask_MACH_HP_JORNADA_690JP,
139851243a1cSuch 		jornada6x0_jp_keytrans,
139951243a1cSuch 		jornada6x0_special_keymap,
140051243a1cSuch 		NULLCMDMAP,
140151243a1cSuch 		KB_JP },
14021cfc465cSuwe 	/* US (ABA), UK (ABU) */
1403eb330e61Such 	{	&platid_mask_MACH_HP_JORNADA_680,
1404eb330e61Such 		jornada6x0_us_keytrans,
1405eb330e61Such 		jornada6x0_special_keymap,
1406c3f9ee5dSpeter 		CMDMAP(jornada_us_keydesc),
1407eb330e61Such 		KB_US },
1408eb330e61Such 	{	&platid_mask_MACH_HP_JORNADA_690,
1409eb330e61Such 		jornada6x0_us_keytrans,
1410eb330e61Such 		jornada6x0_special_keymap,
1411c3f9ee5dSpeter 		CMDMAP(jornada_us_keydesc),
1412eb330e61Such 		KB_US },
14131cfc465cSuwe 	/* European English (ABB) */
14145b0626deSuwe 	{	&platid_mask_MACH_HP_JORNADA_680EU,
14150982def9Suwe 		jornada6x0_intl_keytrans,
141651243a1cSuch 		jornada6x0_special_keymap,
1417c3f9ee5dSpeter 		CMDMAP(jornada_intl_keydesc),
14181cfc465cSuwe 		KB_US },
14195b0626deSuwe 	{	&platid_mask_MACH_HP_JORNADA_690EU,
14200982def9Suwe 		jornada6x0_intl_keytrans,
142151243a1cSuch 		jornada6x0_special_keymap,
1422c3f9ee5dSpeter 		CMDMAP(jornada_intl_keydesc),
14231cfc465cSuwe 		KB_US },
14241cfc465cSuwe 	/* German (ABD) */
142551243a1cSuch 	{	&platid_mask_MACH_HP_JORNADA_680DE,
14260982def9Suwe 		jornada6x0_intl_keytrans,
142751243a1cSuch 		jornada6x0_special_keymap,
1428c3f9ee5dSpeter 		CMDMAP(jornada_de_keydesc),
142951243a1cSuch 		KB_DE },
143051243a1cSuch 	{	&platid_mask_MACH_HP_JORNADA_690DE,
14310982def9Suwe 		jornada6x0_intl_keytrans,
143251243a1cSuch 		jornada6x0_special_keymap,
1433c3f9ee5dSpeter  		CMDMAP(jornada_de_keydesc),
143451243a1cSuch 		KB_DE },
14358dccb95eSuwe 	/* French (ABF) */
14368dccb95eSuwe 	{	&platid_mask_MACH_HP_JORNADA_680FR,
14378dccb95eSuwe 		jornada6x0_intl_keytrans,
14388dccb95eSuwe 		jornada6x0_special_keymap,
1439c3f9ee5dSpeter 		CMDMAP(jornada_fr_keydesc),
14408dccb95eSuwe 		KB_FR },
14418dccb95eSuwe 	{	&platid_mask_MACH_HP_JORNADA_690FR,
14428dccb95eSuwe 		jornada6x0_intl_keytrans,
14438dccb95eSuwe 		jornada6x0_special_keymap,
1444c3f9ee5dSpeter  		CMDMAP(jornada_fr_keydesc),
14458dccb95eSuwe 		KB_FR },
14460e524a56Suwe 	/* Scandinavian */
14470e524a56Suwe 	{	&platid_mask_MACH_HP_JORNADA_680SV,
14480e524a56Suwe 		jornada6x0_intl_keytrans,
14490e524a56Suwe 		jornada6x0_special_keymap,
1450c3f9ee5dSpeter 		CMDMAP(jornada_scnv_keydesc),
14510e524a56Suwe 		KB_US },
14520e524a56Suwe 	{	&platid_mask_MACH_HP_JORNADA_690SV,
14530e524a56Suwe 		jornada6x0_intl_keytrans,
14540e524a56Suwe 		jornada6x0_special_keymap,
1455c3f9ee5dSpeter  		CMDMAP(jornada_scnv_keydesc),
14560e524a56Suwe 		KB_US },
1457c1574ed6Suwe 	/* Spanish (ABE) */
1458c1574ed6Suwe 	{	&platid_mask_MACH_HP_JORNADA_680ES,
1459c1574ed6Suwe 		jornada6x0_intl_keytrans,
1460c1574ed6Suwe 		jornada6x0_special_keymap,
1461c3f9ee5dSpeter 		CMDMAP(jornada_es_keydesc),
1462c1574ed6Suwe 		KB_ES },
1463c1574ed6Suwe 	{	&platid_mask_MACH_HP_JORNADA_690ES,
1464c1574ed6Suwe 		jornada6x0_intl_keytrans,
1465c1574ed6Suwe 		jornada6x0_special_keymap,
1466c3f9ee5dSpeter  		CMDMAP(jornada_es_keydesc),
1467c1574ed6Suwe 		KB_ES },
14682f3cc132Such 	/*
14692f3cc132Such 	 * HP 620LX
14702f3cc132Such 	 */
14712f3cc132Such 	/* Japanese */
14722f3cc132Such 	{	&platid_mask_MACH_HP_LX_620JP,
14732f3cc132Such 		hp620lx_jp_keytrans,
14742f3cc132Such 		hp620lx_special_keymap,
14752f3cc132Such 		NULLCMDMAP,
14762f3cc132Such 		KB_JP },
147706814ceeSuwe 	/* Other models */
147806814ceeSuwe 	{	&platid_mask_MACH_HP_LX_620,
147906814ceeSuwe 		hp620lx_intl_keytrans,
148006814ceeSuwe 		hp620lx_special_keymap,
148106814ceeSuwe 		NULLCMDMAP,
148206814ceeSuwe 		KB_US },
148306814ceeSuwe 
14841877683fSuch 	/*
14851877683fSuch 	 * PERSONA HPW50PAD
14861877683fSuch 	 */
14871877683fSuch 	/* Japanese */
14881877683fSuch 	{ 	&platid_mask_MACH_HITACHI_PERSONA_HPW50PAD,
14891877683fSuch 		persona_hpw50pad_jp_keytrans,
14901877683fSuch 		persona_hpw50pad_special_keymap,
149117587c61Skiyohara  		CMDMAP(persona_hpw50pad_jp_keydesc),
14921877683fSuch 		KB_JP },
1493378e6e42Such 
1494378e6e42Such 	/*
1495378e6e42Such 	 * PERSONA HPW200EC
1496378e6e42Such 	 */
1497378e6e42Such 	/* US */
1498378e6e42Such 	{ 	&platid_mask_MACH_HITACHI_PERSONA_HPW200EC,
1499378e6e42Such 		persona_hpw200ec_keytrans,
1500378e6e42Such 		persona_hpw200ec_special_keymap,
1501378e6e42Such 		NULLCMDMAP,
1502378e6e42Such 		KB_US },
1503378e6e42Such 
150438626ea2Such #endif /* hpcsh */
1505c3f9ee5dSpeter #ifdef hpcarm
1506b62fc9e2Snonaka 	/*
1507b62fc9e2Snonaka 	 * HP Jornada 710/720/728
1508b62fc9e2Snonaka 	 */
1509c3f9ee5dSpeter 	/* US (ABA), UK (ABU) */
1510c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720,
1511c3f9ee5dSpeter 		jornada7xx_us_keytrans,
1512c3f9ee5dSpeter 		jornada7xx_special_keymap,
1513c3f9ee5dSpeter 		CMDMAP(jornada_us_keydesc),
1514c3f9ee5dSpeter 		KB_US },
1515c3f9ee5dSpeter 	/* Japanese */
1516c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720JP,
1517c3f9ee5dSpeter 		jornada7xx_jp_keytrans,
1518c3f9ee5dSpeter 		jornada7xx_special_keymap,
1519c3f9ee5dSpeter 		NULLCMDMAP,
1520c3f9ee5dSpeter 		KB_JP },
1521c3f9ee5dSpeter 	/* European English (ABB) */
1522c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720EU,
1523c3f9ee5dSpeter 		jornada7xx_intl_keytrans,
1524c3f9ee5dSpeter 		jornada7xx_special_keymap,
1525c3f9ee5dSpeter 		CMDMAP(jornada_intl_keydesc),
1526c3f9ee5dSpeter 		KB_US },
1527c3f9ee5dSpeter 	/* German (ABD) */
1528c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720DE,
1529c3f9ee5dSpeter 		jornada7xx_intl_keytrans,
1530c3f9ee5dSpeter 		jornada7xx_special_keymap,
1531c3f9ee5dSpeter 		CMDMAP(jornada_de_keydesc),
1532c3f9ee5dSpeter 		KB_DE },
1533c3f9ee5dSpeter 	/* French (ABF) */
1534c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720FR,
1535c3f9ee5dSpeter 		jornada7xx_intl_keytrans,
1536c3f9ee5dSpeter 		jornada7xx_special_keymap,
1537c3f9ee5dSpeter 		CMDMAP(jornada_fr_keydesc),
1538c3f9ee5dSpeter 		KB_FR },
1539c3f9ee5dSpeter 	/* Scandinavian */
1540c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720SV,
1541c3f9ee5dSpeter 		jornada7xx_intl_keytrans,
1542c3f9ee5dSpeter 		jornada7xx_special_keymap,
1543c3f9ee5dSpeter 		CMDMAP(jornada_scnv_keydesc),
1544c3f9ee5dSpeter 		KB_US },
1545c3f9ee5dSpeter 	/* Spanish (ABE) */
1546c3f9ee5dSpeter 	{	&platid_mask_MACH_HP_JORNADA_720ES,
1547c3f9ee5dSpeter 		jornada7xx_intl_keytrans,
1548c3f9ee5dSpeter 		jornada7xx_special_keymap,
1549c3f9ee5dSpeter 		CMDMAP(jornada_es_keydesc),
1550c3f9ee5dSpeter 		KB_ES },
1551b62fc9e2Snonaka 	/*
1552b62fc9e2Snonaka 	 * Sharp W-ZERO3
1553b62fc9e2Snonaka 	 */
1554b62fc9e2Snonaka 	/* WS003SH */
1555b62fc9e2Snonaka 	{	&platid_mask_MACH_SHARP_WZERO3_WS003SH,
1556b62fc9e2Snonaka 		ws003sh_jp_keytrans,
1557b62fc9e2Snonaka 		ws003sh_special_keymap,
1558b62fc9e2Snonaka 		CMDMAP(ws003sh_jp_keydesc),
1559b62fc9e2Snonaka 		KB_JP },
1560b62fc9e2Snonaka 	/* WS004SH */
1561b62fc9e2Snonaka 	{	&platid_mask_MACH_SHARP_WZERO3_WS004SH,
1562b62fc9e2Snonaka 		ws003sh_jp_keytrans,
1563b62fc9e2Snonaka 		ws003sh_special_keymap,
1564b62fc9e2Snonaka 		CMDMAP(ws003sh_jp_keydesc),
1565b62fc9e2Snonaka 		KB_JP },
1566b62fc9e2Snonaka 	/* WS007SH */
1567b62fc9e2Snonaka 	{	&platid_mask_MACH_SHARP_WZERO3_WS007SH,
1568b62fc9e2Snonaka 		ws003sh_jp_keytrans,
1569b62fc9e2Snonaka 		ws003sh_special_keymap,
1570b62fc9e2Snonaka 		CMDMAP(ws003sh_jp_keydesc),
1571b62fc9e2Snonaka 		KB_JP },
1572b62fc9e2Snonaka 	/* WS011SH */
1573b62fc9e2Snonaka 	{	&platid_mask_MACH_SHARP_WZERO3_WS011SH,
1574b62fc9e2Snonaka 		ws011sh_jp_keytrans,
1575b62fc9e2Snonaka 		ws011sh_special_keymap,
1576b62fc9e2Snonaka 		CMDMAP(ws011sh_jp_keydesc),
1577b62fc9e2Snonaka 		KB_JP },
1578b62fc9e2Snonaka 	/* WS020SH */
1579b62fc9e2Snonaka 	{	&platid_mask_MACH_SHARP_WZERO3_WS020SH,
1580250a759eSnonaka 		ws020sh_jp_keytrans,
1581250a759eSnonaka 		ws020sh_special_keymap,
1582250a759eSnonaka 		CMDMAP(ws020sh_jp_keydesc),
1583b62fc9e2Snonaka 		KB_JP },
1584*587ef940Skiyohara 	/* NETBOOK PRO */
1585*587ef940Skiyohara 	{	&platid_mask_MACH_PSIONTEKLOGIX_NETBOOK_PRO,
1586*587ef940Skiyohara 		netbookpro_keytrans,
1587*587ef940Skiyohara 		NULL,
1588*587ef940Skiyohara 		CMDMAP(netbookpro_keydesc),
1589*587ef940Skiyohara 		KB_US },
1590c3f9ee5dSpeter #endif /* hpcarm */
159144b35078Suwe 
159244b35078Suwe 	{ .ht_platform = NULL } /* end mark */
1593659f65e0Such };
1594