at v3.1-rc6 266 lines 4.0 kB view raw
1/* 2 * drivers/input/keyboard/tegra-nvec.c 3 * 4 * Keyboard class input driver for keyboards connected to an NvEc compliant 5 * embedded controller 6 * 7 * Copyright (c) 2009, NVIDIA Corporation. 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU General Public License as published by 11 * the Free Software Foundation; either version 2 of the License, or 12 * (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, but WITHOUT 15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 17 * more details. 18 * 19 * You should have received a copy of the GNU General Public License along 20 * with this program; if not, write to the Free Software Foundation, Inc., 21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 22 */ 23 24static unsigned short code_tab_102us[] = { 25 KEY_GRAVE, // 0x00 26 KEY_ESC, 27 KEY_1, 28 KEY_2, 29 KEY_3, 30 KEY_4, 31 KEY_5, 32 KEY_6, 33 KEY_7, 34 KEY_8, 35 KEY_9, 36 KEY_0, 37 KEY_MINUS, 38 KEY_EQUAL, 39 KEY_BACKSPACE, 40 KEY_TAB, 41 KEY_Q, // 0x10 42 KEY_W, 43 KEY_E, 44 KEY_R, 45 KEY_T, 46 KEY_Y, 47 KEY_U, 48 KEY_I, 49 KEY_O, 50 KEY_P, 51 KEY_LEFTBRACE, 52 KEY_RIGHTBRACE, 53 KEY_ENTER, 54 KEY_LEFTCTRL, 55 KEY_A, 56 KEY_S, 57 KEY_D, // 0x20 58 KEY_F, 59 KEY_G, 60 KEY_H, 61 KEY_J, 62 KEY_K, 63 KEY_L, 64 KEY_SEMICOLON, 65 KEY_APOSTROPHE, 66 KEY_GRAVE, 67 KEY_LEFTSHIFT, 68 KEY_BACKSLASH, 69 KEY_Z, 70 KEY_X, 71 KEY_C, 72 KEY_V, 73 KEY_B, // 0x30 74 KEY_N, 75 KEY_M, 76 KEY_COMMA, 77 KEY_DOT, 78 KEY_SLASH, 79 KEY_RIGHTSHIFT, 80 KEY_KPASTERISK, 81 KEY_LEFTALT, 82 KEY_SPACE, 83 KEY_CAPSLOCK, 84 KEY_F1, 85 KEY_F2, 86 KEY_F3, 87 KEY_F4, 88 KEY_F5, 89 KEY_F6, // 0x40 90 KEY_F7, 91 KEY_F8, 92 KEY_F9, 93 KEY_F10, 94 KEY_FN, 95 0, //VK_SCROLL 96 KEY_KP7, 97 KEY_KP8, 98 KEY_KP9, 99 KEY_KPMINUS, 100 KEY_KP4, 101 KEY_KP5, 102 KEY_KP6, 103 KEY_KPPLUS, 104 KEY_KP1, 105 KEY_KP2, // 0x50 106 KEY_KP3, 107 KEY_KP0, 108 KEY_KPDOT, 109 KEY_MENU, //VK_SNAPSHOT 110 KEY_POWER, 111 KEY_102ND, //VK_OEM_102 henry+ 0x2B (43) BACKSLASH have been used,change to use 0X56 (86) 112 KEY_F11, //VK_F11 113 KEY_F12, //VK_F12 114 0, 115 0, 116 0, 117 0, 118 0, 119 0, 120 0, 121 0, // 60 122 0, 123 0, 124 KEY_SEARCH, // add search key map 125 0, 126 0, 127 0, 128 0, 129 0, 130 0, 131 0, 132 0, 133 0, 134 0, 135 0, 136 0, 137 0, // 70 138 0, 139 0, 140 KEY_KP5, //73 for JP keyboard '\' key, report 0x4c 141 0, 142 0, 143 0, 144 0, 145 0, 146 0, 147 0, 148 0, 149 0, 150 KEY_KP9, //7d for JP keyboard '|' key, report 0x49 151}; 152 153static unsigned short extcode_tab_us102[] = { 154 0, 155 0, 156 0, 157 0, 158 0, 159 0, 160 0, 161 0, 162 0, 163 0, 164 0, 165 0, 166 0, 167 0, 168 0, 169 0, 170 0, // 0xE0 0x10 171 0, 172 0, 173 0, 174 0, 175 0, 176 0, 177 0, 178 0, 179 0, //VK_MEDIA_NEXT_TRACK, 180 0, 181 0, 182 0, //VK_RETURN, 183 KEY_RIGHTCTRL, //VK_RCONTROL, 184 0, 185 0, 186 KEY_MUTE, // 0xE0 0x20 187 0, //VK_LAUNCH_APP1 188 0, //VK_MEDIA_PLAY_PAUSE 189 0, 190 0, //VK_MEDIA_STOP 191 0, 192 0, 193 0, 194 0, 195 0, 196 0, 197 0, 198 0, 199 0, 200 0, 201 0, 202 KEY_VOLUMEUP, // 0xE0 0x30 203 0, 204 0, //VK_BROWSER_HOME 205 0, 206 0, 207 KEY_KPSLASH, //VK_DIVIDE 208 0, 209 KEY_SYSRQ, //VK_SNAPSHOT 210 KEY_RIGHTALT, //VK_RMENU 211 0, //VK_OEM_NV_BACKLIGHT_UP 212 0, //VK_OEM_NV_BACKLIGHT_DN 213 0, //VK_OEM_NV_BACKLIGHT_AUTOTOGGLE 214 0, //VK_OEM_NV_POWER_INFO 215 0, //VK_OEM_NV_WIFI_TOGGLE 216 0, //VK_OEM_NV_DISPLAY_SELECT 217 0, //VK_OEM_NV_AIRPLANE_TOGGLE 218 0, //0xE0 0x40 219 KEY_LEFT, //VK_OEM_NV_RESERVED henry+ for JP keyboard 220 0, //VK_OEM_NV_RESERVED 221 0, //VK_OEM_NV_RESERVED 222 0, //VK_OEM_NV_RESERVED 223 0, //VK_OEM_NV_RESERVED 224 KEY_CANCEL, 225 KEY_HOME, 226 KEY_UP, 227 KEY_PAGEUP, //VK_PRIOR 228 0, 229 KEY_LEFT, 230 0, 231 KEY_RIGHT, 232 0, 233 KEY_END, 234 KEY_DOWN, // 0xE0 0x50 235 KEY_PAGEDOWN, //VK_NEXT 236 KEY_INSERT, 237 KEY_DELETE, 238 0, 239 0, 240 0, 241 0, 242 0, 243 0, 244 0, 245 KEY_LEFTMETA, //VK_LWIN 246 0, //VK_RWIN 247 KEY_ESC, //VK_APPS 248 KEY_KPMINUS, //for power button workaround 249 0, 250 0, 251 0, 252 0, 253 0, 254 0, 255 0, //VK_BROWSER_SEARCH 256 0, //VK_BROWSER_FAVORITES 257 0, //VK_BROWSER_REFRESH 258 0, //VK_BROWSER_STOP 259 0, //VK_BROWSER_FORWARD 260 0, //VK_BROWSER_BACK 261 0, //VK_LAUNCH_APP2 262 0, //VK_LAUNCH_MAIL 263 0, //VK_LAUNCH_MEDIA_SELECT 264}; 265 266static unsigned short* code_tabs[] = {code_tab_102us, extcode_tab_us102 };