summaryrefslogtreecommitdiff
path: root/sys/dev/hpc
diff options
context:
space:
mode:
authornonaka <nonaka@NetBSD.org>2010-04-17 13:36:21 +0000
committernonaka <nonaka@NetBSD.org>2010-04-17 13:36:21 +0000
commitb62fc9e20372b08e1785ff6d769312d209fa2005 (patch)
tree42cbcb1a5646aedce6ab49d25fd0006493aaccbe /sys/dev/hpc
parent18871937ddfb05044415c362f07e6647b707262f (diff)
Added Sharp W-ZERO3 series support.
Diffstat (limited to 'sys/dev/hpc')
-rw-r--r--sys/dev/hpc/hpckbdkeymap.h189
1 files changed, 188 insertions, 1 deletions
diff --git a/sys/dev/hpc/hpckbdkeymap.h b/sys/dev/hpc/hpckbdkeymap.h
index ddf2124bf37..322fcb860ce 100644
--- a/sys/dev/hpc/hpckbdkeymap.h
+++ b/sys/dev/hpc/hpckbdkeymap.h
@@ -1,4 +1,4 @@
-/* $NetBSD: hpckbdkeymap.h,v 1.48 2008/04/28 20:23:48 martin Exp $ */
+/* $NetBSD: hpckbdkeymap.h,v 1.49 2010/04/17 13:36:21 nonaka Exp $ */
/*-
* Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
@@ -831,6 +831,157 @@ 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/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 DOWN
+ Del (none) (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,
+};
#endif /* hpcarm */
#if defined(hpcarm) || defined(hpcsh)
@@ -1227,6 +1378,9 @@ const struct hpckbd_keymap_table {
#endif /* hpcsh */
#ifdef hpcarm
+ /*
+ * HP Jornada 710/720/728
+ */
/* US (ABA), UK (ABU) */
{ &platid_mask_MACH_HP_JORNADA_720,
jornada7xx_us_keytrans,
@@ -1269,6 +1423,39 @@ const struct hpckbd_keymap_table {
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,
+ ws011sh_jp_keytrans,
+ ws011sh_special_keymap,
+ CMDMAP(ws011sh_jp_keydesc),
+ KB_JP },
#endif /* hpcarm */
{ .ht_platform = NULL } /* end mark */