2 * drivers/input/keyboard/hpps2atkbd.h
4 * Copyright (c) 2004 Helge Deller <deller@gmx.de>
5 * Copyright (c) 2002 Laurent Canet <canetl@esiee.fr>
6 * Copyright (c) 2002 Thibaut Varene <varenet@parisc-linux.org>
7 * Copyright (c) 2000 Xavier Debacker <debackex@esiee.fr>
9 * HP PS/2 AT-compatible Keyboard, found in PA/RISC Workstations & Laptops
11 * This file is subject to the terms and conditions of the GNU General Public
12 * License. See the file "COPYING" in the main directory of this archive
17 /* Is the keyboard an RDI PrecisionBook? */
18 #ifndef CONFIG_KEYBOARD_ATKBD_RDI_KEYCODES
19 # define CONFLICT(x,y) x
21 # define CONFLICT(x,y) y
24 /* sadly RDI (Tadpole) decided to ship a different keyboard layout
25 than HP for their PS/2 laptop keyboard which leads to conflicting
26 keycodes between a normal HP PS/2 keyboard and a RDI Precisionbook.
28 #define C_07 CONFLICT( KEY_F12, KEY_F1 )
29 #define C_11 CONFLICT( KEY_LEFTALT, KEY_LEFTCTRL )
30 #define C_14 CONFLICT( KEY_LEFTCTRL, KEY_CAPSLOCK )
31 #define C_58 CONFLICT( KEY_CAPSLOCK, KEY_RIGHTCTRL )
32 #define C_61 CONFLICT( KEY_102ND, KEY_LEFT )
34 /* Raw SET 2 scancode table */
36 /* 00 */ KEY_RESERVED
, KEY_F9
, KEY_RESERVED
, KEY_F5
, KEY_F3
, KEY_F1
, KEY_F2
, C_07
,
37 /* 08 */ KEY_ESC
, KEY_F10
, KEY_F8
, KEY_F6
, KEY_F4
, KEY_TAB
, KEY_GRAVE
, KEY_F2
,
38 /* 10 */ KEY_RESERVED
, C_11
, KEY_LEFTSHIFT
, KEY_RESERVED
, C_14
, KEY_Q
, KEY_1
, KEY_F3
,
39 /* 18 */ KEY_RESERVED
, KEY_LEFTALT
, KEY_Z
, KEY_S
, KEY_A
, KEY_W
, KEY_2
, KEY_F4
,
40 /* 20 */ KEY_RESERVED
, KEY_C
, KEY_X
, KEY_D
, KEY_E
, KEY_4
, KEY_3
, KEY_F5
,
41 /* 28 */ KEY_RESERVED
, KEY_SPACE
, KEY_V
, KEY_F
, KEY_T
, KEY_R
, KEY_5
, KEY_F6
,
42 /* 30 */ KEY_RESERVED
, KEY_N
, KEY_B
, KEY_H
, KEY_G
, KEY_Y
, KEY_6
, KEY_F7
,
43 /* 38 */ KEY_RESERVED
, KEY_RIGHTALT
, KEY_M
, KEY_J
, KEY_U
, KEY_7
, KEY_8
, KEY_F8
,
44 /* 40 */ KEY_RESERVED
, KEY_COMMA
, KEY_K
, KEY_I
, KEY_O
, KEY_0
, KEY_9
, KEY_F9
,
45 /* 48 */ KEY_RESERVED
, KEY_DOT
, KEY_SLASH
, KEY_L
, KEY_SEMICOLON
, KEY_P
, KEY_MINUS
, KEY_F10
,
46 /* 50 */ KEY_RESERVED
, KEY_RESERVED
, KEY_APOSTROPHE
,KEY_RESERVED
, KEY_LEFTBRACE
, KEY_EQUAL
, KEY_F11
, KEY_SYSRQ
,
47 /* 58 */ C_58
, KEY_RIGHTSHIFT
,KEY_ENTER
, KEY_RIGHTBRACE
,KEY_BACKSLASH
, KEY_BACKSLASH
,KEY_F12
, KEY_SCROLLLOCK
,
48 /* 60 */ KEY_DOWN
, C_61
, KEY_PAUSE
, KEY_UP
, KEY_DELETE
, KEY_END
, KEY_BACKSPACE
, KEY_INSERT
,
49 /* 68 */ KEY_RESERVED
, KEY_KP1
, KEY_RIGHT
, KEY_KP4
, KEY_KP7
, KEY_PAGEDOWN
, KEY_HOME
, KEY_PAGEUP
,
50 /* 70 */ KEY_KP0
, KEY_KPDOT
, KEY_KP2
, KEY_KP5
, KEY_KP6
, KEY_KP8
, KEY_ESC
, KEY_NUMLOCK
,
51 /* 78 */ KEY_F11
, KEY_KPPLUS
, KEY_KP3
, KEY_KPMINUS
, KEY_KPASTERISK
,KEY_KP9
, KEY_SCROLLLOCK
,KEY_102ND
,
52 /* 80 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
53 /* 88 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
54 /* 90 */ KEY_RESERVED
, KEY_RIGHTALT
, 255, KEY_RESERVED
, KEY_RIGHTCTRL
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
55 /* 98 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_CAPSLOCK
, KEY_RESERVED
, KEY_LEFTMETA
,
56 /* a0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RIGHTMETA
,
57 /* a8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_COMPOSE
,
58 /* b0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
59 /* b8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
60 /* c0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
61 /* c8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_KPSLASH
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
62 /* d0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
63 /* d8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_KPENTER
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
64 /* e0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
65 /* e8 */ KEY_RESERVED
, KEY_END
, KEY_RESERVED
, KEY_LEFT
, KEY_HOME
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
66 /* f0 */ KEY_INSERT
, KEY_DELETE
, KEY_DOWN
, KEY_RESERVED
, KEY_RIGHT
, KEY_UP
, KEY_RESERVED
, KEY_PAUSE
,
67 /* f8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_PAGEDOWN
, KEY_RESERVED
, KEY_SYSRQ
, KEY_PAGEUP
, KEY_RESERVED
, KEY_RESERVED
,
69 /* These are offset for escaped keycodes: */
71 /* 00 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_F7
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
72 /* 08 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_LEFTMETA
, KEY_RIGHTMETA
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
73 /* 10 */ KEY_RESERVED
, KEY_RIGHTALT
, KEY_RESERVED
, KEY_RESERVED
, KEY_RIGHTCTRL
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
74 /* 18 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
75 /* 20 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
76 /* 28 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
77 /* 30 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
78 /* 38 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
79 /* 40 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
80 /* 48 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
81 /* 50 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
82 /* 58 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
83 /* 60 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
84 /* 68 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
85 /* 70 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
86 /* 78 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
87 /* 80 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
88 /* 88 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
89 /* 90 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
90 /* 98 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
91 /* a0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
92 /* a8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
93 /* b0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
94 /* b8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
95 /* c0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
96 /* c8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
97 /* d0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
98 /* d8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
99 /* e0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
100 /* e8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
101 /* f0 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
,
102 /* f8 */ KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED
, KEY_RESERVED