Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
0002 /*
0003  * Input event codes
0004  *
0005  *    *** IMPORTANT ***
0006  * This file is not only included from C-code but also from devicetree source
0007  * files. As such this file MUST only contain comments and defines.
0008  *
0009  * Copyright (c) 1999-2002 Vojtech Pavlik
0010  * Copyright (c) 2015 Hans de Goede <hdegoede@redhat.com>
0011  *
0012  * This program is free software; you can redistribute it and/or modify it
0013  * under the terms of the GNU General Public License version 2 as published by
0014  * the Free Software Foundation.
0015  */
0016 #ifndef _UAPI_INPUT_EVENT_CODES_H
0017 #define _UAPI_INPUT_EVENT_CODES_H
0018 
0019 /*
0020  * Device properties and quirks
0021  */
0022 
0023 #define INPUT_PROP_POINTER      0x00    /* needs a pointer */
0024 #define INPUT_PROP_DIRECT       0x01    /* direct input devices */
0025 #define INPUT_PROP_BUTTONPAD        0x02    /* has button(s) under pad */
0026 #define INPUT_PROP_SEMI_MT      0x03    /* touch rectangle only */
0027 #define INPUT_PROP_TOPBUTTONPAD     0x04    /* softbuttons at top of pad */
0028 #define INPUT_PROP_POINTING_STICK   0x05    /* is a pointing stick */
0029 #define INPUT_PROP_ACCELEROMETER    0x06    /* has accelerometer */
0030 
0031 #define INPUT_PROP_MAX          0x1f
0032 #define INPUT_PROP_CNT          (INPUT_PROP_MAX + 1)
0033 
0034 /*
0035  * Event types
0036  */
0037 
0038 #define EV_SYN          0x00
0039 #define EV_KEY          0x01
0040 #define EV_REL          0x02
0041 #define EV_ABS          0x03
0042 #define EV_MSC          0x04
0043 #define EV_SW           0x05
0044 #define EV_LED          0x11
0045 #define EV_SND          0x12
0046 #define EV_REP          0x14
0047 #define EV_FF           0x15
0048 #define EV_PWR          0x16
0049 #define EV_FF_STATUS        0x17
0050 #define EV_MAX          0x1f
0051 #define EV_CNT          (EV_MAX+1)
0052 
0053 /*
0054  * Synchronization events.
0055  */
0056 
0057 #define SYN_REPORT      0
0058 #define SYN_CONFIG      1
0059 #define SYN_MT_REPORT       2
0060 #define SYN_DROPPED     3
0061 #define SYN_MAX         0xf
0062 #define SYN_CNT         (SYN_MAX+1)
0063 
0064 /*
0065  * Keys and buttons
0066  *
0067  * Most of the keys/buttons are modeled after USB HUT 1.12
0068  * (see http://www.usb.org/developers/hidpage).
0069  * Abbreviations in the comments:
0070  * AC - Application Control
0071  * AL - Application Launch Button
0072  * SC - System Control
0073  */
0074 
0075 #define KEY_RESERVED        0
0076 #define KEY_ESC         1
0077 #define KEY_1           2
0078 #define KEY_2           3
0079 #define KEY_3           4
0080 #define KEY_4           5
0081 #define KEY_5           6
0082 #define KEY_6           7
0083 #define KEY_7           8
0084 #define KEY_8           9
0085 #define KEY_9           10
0086 #define KEY_0           11
0087 #define KEY_MINUS       12
0088 #define KEY_EQUAL       13
0089 #define KEY_BACKSPACE       14
0090 #define KEY_TAB         15
0091 #define KEY_Q           16
0092 #define KEY_W           17
0093 #define KEY_E           18
0094 #define KEY_R           19
0095 #define KEY_T           20
0096 #define KEY_Y           21
0097 #define KEY_U           22
0098 #define KEY_I           23
0099 #define KEY_O           24
0100 #define KEY_P           25
0101 #define KEY_LEFTBRACE       26
0102 #define KEY_RIGHTBRACE      27
0103 #define KEY_ENTER       28
0104 #define KEY_LEFTCTRL        29
0105 #define KEY_A           30
0106 #define KEY_S           31
0107 #define KEY_D           32
0108 #define KEY_F           33
0109 #define KEY_G           34
0110 #define KEY_H           35
0111 #define KEY_J           36
0112 #define KEY_K           37
0113 #define KEY_L           38
0114 #define KEY_SEMICOLON       39
0115 #define KEY_APOSTROPHE      40
0116 #define KEY_GRAVE       41
0117 #define KEY_LEFTSHIFT       42
0118 #define KEY_BACKSLASH       43
0119 #define KEY_Z           44
0120 #define KEY_X           45
0121 #define KEY_C           46
0122 #define KEY_V           47
0123 #define KEY_B           48
0124 #define KEY_N           49
0125 #define KEY_M           50
0126 #define KEY_COMMA       51
0127 #define KEY_DOT         52
0128 #define KEY_SLASH       53
0129 #define KEY_RIGHTSHIFT      54
0130 #define KEY_KPASTERISK      55
0131 #define KEY_LEFTALT     56
0132 #define KEY_SPACE       57
0133 #define KEY_CAPSLOCK        58
0134 #define KEY_F1          59
0135 #define KEY_F2          60
0136 #define KEY_F3          61
0137 #define KEY_F4          62
0138 #define KEY_F5          63
0139 #define KEY_F6          64
0140 #define KEY_F7          65
0141 #define KEY_F8          66
0142 #define KEY_F9          67
0143 #define KEY_F10         68
0144 #define KEY_NUMLOCK     69
0145 #define KEY_SCROLLLOCK      70
0146 #define KEY_KP7         71
0147 #define KEY_KP8         72
0148 #define KEY_KP9         73
0149 #define KEY_KPMINUS     74
0150 #define KEY_KP4         75
0151 #define KEY_KP5         76
0152 #define KEY_KP6         77
0153 #define KEY_KPPLUS      78
0154 #define KEY_KP1         79
0155 #define KEY_KP2         80
0156 #define KEY_KP3         81
0157 #define KEY_KP0         82
0158 #define KEY_KPDOT       83
0159 
0160 #define KEY_ZENKAKUHANKAKU  85
0161 #define KEY_102ND       86
0162 #define KEY_F11         87
0163 #define KEY_F12         88
0164 #define KEY_RO          89
0165 #define KEY_KATAKANA        90
0166 #define KEY_HIRAGANA        91
0167 #define KEY_HENKAN      92
0168 #define KEY_KATAKANAHIRAGANA    93
0169 #define KEY_MUHENKAN        94
0170 #define KEY_KPJPCOMMA       95
0171 #define KEY_KPENTER     96
0172 #define KEY_RIGHTCTRL       97
0173 #define KEY_KPSLASH     98
0174 #define KEY_SYSRQ       99
0175 #define KEY_RIGHTALT        100
0176 #define KEY_LINEFEED        101
0177 #define KEY_HOME        102
0178 #define KEY_UP          103
0179 #define KEY_PAGEUP      104
0180 #define KEY_LEFT        105
0181 #define KEY_RIGHT       106
0182 #define KEY_END         107
0183 #define KEY_DOWN        108
0184 #define KEY_PAGEDOWN        109
0185 #define KEY_INSERT      110
0186 #define KEY_DELETE      111
0187 #define KEY_MACRO       112
0188 #define KEY_MUTE        113
0189 #define KEY_VOLUMEDOWN      114
0190 #define KEY_VOLUMEUP        115
0191 #define KEY_POWER       116 /* SC System Power Down */
0192 #define KEY_KPEQUAL     117
0193 #define KEY_KPPLUSMINUS     118
0194 #define KEY_PAUSE       119
0195 #define KEY_SCALE       120 /* AL Compiz Scale (Expose) */
0196 
0197 #define KEY_KPCOMMA     121
0198 #define KEY_HANGEUL     122
0199 #define KEY_HANGUEL     KEY_HANGEUL
0200 #define KEY_HANJA       123
0201 #define KEY_YEN         124
0202 #define KEY_LEFTMETA        125
0203 #define KEY_RIGHTMETA       126
0204 #define KEY_COMPOSE     127
0205 
0206 #define KEY_STOP        128 /* AC Stop */
0207 #define KEY_AGAIN       129
0208 #define KEY_PROPS       130 /* AC Properties */
0209 #define KEY_UNDO        131 /* AC Undo */
0210 #define KEY_FRONT       132
0211 #define KEY_COPY        133 /* AC Copy */
0212 #define KEY_OPEN        134 /* AC Open */
0213 #define KEY_PASTE       135 /* AC Paste */
0214 #define KEY_FIND        136 /* AC Search */
0215 #define KEY_CUT         137 /* AC Cut */
0216 #define KEY_HELP        138 /* AL Integrated Help Center */
0217 #define KEY_MENU        139 /* Menu (show menu) */
0218 #define KEY_CALC        140 /* AL Calculator */
0219 #define KEY_SETUP       141
0220 #define KEY_SLEEP       142 /* SC System Sleep */
0221 #define KEY_WAKEUP      143 /* System Wake Up */
0222 #define KEY_FILE        144 /* AL Local Machine Browser */
0223 #define KEY_SENDFILE        145
0224 #define KEY_DELETEFILE      146
0225 #define KEY_XFER        147
0226 #define KEY_PROG1       148
0227 #define KEY_PROG2       149
0228 #define KEY_WWW         150 /* AL Internet Browser */
0229 #define KEY_MSDOS       151
0230 #define KEY_COFFEE      152 /* AL Terminal Lock/Screensaver */
0231 #define KEY_SCREENLOCK      KEY_COFFEE
0232 #define KEY_ROTATE_DISPLAY  153 /* Display orientation for e.g. tablets */
0233 #define KEY_DIRECTION       KEY_ROTATE_DISPLAY
0234 #define KEY_CYCLEWINDOWS    154
0235 #define KEY_MAIL        155
0236 #define KEY_BOOKMARKS       156 /* AC Bookmarks */
0237 #define KEY_COMPUTER        157
0238 #define KEY_BACK        158 /* AC Back */
0239 #define KEY_FORWARD     159 /* AC Forward */
0240 #define KEY_CLOSECD     160
0241 #define KEY_EJECTCD     161
0242 #define KEY_EJECTCLOSECD    162
0243 #define KEY_NEXTSONG        163
0244 #define KEY_PLAYPAUSE       164
0245 #define KEY_PREVIOUSSONG    165
0246 #define KEY_STOPCD      166
0247 #define KEY_RECORD      167
0248 #define KEY_REWIND      168
0249 #define KEY_PHONE       169 /* Media Select Telephone */
0250 #define KEY_ISO         170
0251 #define KEY_CONFIG      171 /* AL Consumer Control Configuration */
0252 #define KEY_HOMEPAGE        172 /* AC Home */
0253 #define KEY_REFRESH     173 /* AC Refresh */
0254 #define KEY_EXIT        174 /* AC Exit */
0255 #define KEY_MOVE        175
0256 #define KEY_EDIT        176
0257 #define KEY_SCROLLUP        177
0258 #define KEY_SCROLLDOWN      178
0259 #define KEY_KPLEFTPAREN     179
0260 #define KEY_KPRIGHTPAREN    180
0261 #define KEY_NEW         181 /* AC New */
0262 #define KEY_REDO        182 /* AC Redo/Repeat */
0263 
0264 #define KEY_F13         183
0265 #define KEY_F14         184
0266 #define KEY_F15         185
0267 #define KEY_F16         186
0268 #define KEY_F17         187
0269 #define KEY_F18         188
0270 #define KEY_F19         189
0271 #define KEY_F20         190
0272 #define KEY_F21         191
0273 #define KEY_F22         192
0274 #define KEY_F23         193
0275 #define KEY_F24         194
0276 
0277 #define KEY_PLAYCD      200
0278 #define KEY_PAUSECD     201
0279 #define KEY_PROG3       202
0280 #define KEY_PROG4       203
0281 #define KEY_ALL_APPLICATIONS    204 /* AC Desktop Show All Applications */
0282 #define KEY_DASHBOARD       KEY_ALL_APPLICATIONS
0283 #define KEY_SUSPEND     205
0284 #define KEY_CLOSE       206 /* AC Close */
0285 #define KEY_PLAY        207
0286 #define KEY_FASTFORWARD     208
0287 #define KEY_BASSBOOST       209
0288 #define KEY_PRINT       210 /* AC Print */
0289 #define KEY_HP          211
0290 #define KEY_CAMERA      212
0291 #define KEY_SOUND       213
0292 #define KEY_QUESTION        214
0293 #define KEY_EMAIL       215
0294 #define KEY_CHAT        216
0295 #define KEY_SEARCH      217
0296 #define KEY_CONNECT     218
0297 #define KEY_FINANCE     219 /* AL Checkbook/Finance */
0298 #define KEY_SPORT       220
0299 #define KEY_SHOP        221
0300 #define KEY_ALTERASE        222
0301 #define KEY_CANCEL      223 /* AC Cancel */
0302 #define KEY_BRIGHTNESSDOWN  224
0303 #define KEY_BRIGHTNESSUP    225
0304 #define KEY_MEDIA       226
0305 
0306 #define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video
0307                        outputs (Monitor/LCD/TV-out/etc) */
0308 #define KEY_KBDILLUMTOGGLE  228
0309 #define KEY_KBDILLUMDOWN    229
0310 #define KEY_KBDILLUMUP      230
0311 
0312 #define KEY_SEND        231 /* AC Send */
0313 #define KEY_REPLY       232 /* AC Reply */
0314 #define KEY_FORWARDMAIL     233 /* AC Forward Msg */
0315 #define KEY_SAVE        234 /* AC Save */
0316 #define KEY_DOCUMENTS       235
0317 
0318 #define KEY_BATTERY     236
0319 
0320 #define KEY_BLUETOOTH       237
0321 #define KEY_WLAN        238
0322 #define KEY_UWB         239
0323 
0324 #define KEY_UNKNOWN     240
0325 
0326 #define KEY_VIDEO_NEXT      241 /* drive next video source */
0327 #define KEY_VIDEO_PREV      242 /* drive previous video source */
0328 #define KEY_BRIGHTNESS_CYCLE    243 /* brightness up, after max is min */
0329 #define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual
0330                       brightness control is off,
0331                       rely on ambient */
0332 #define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO
0333 #define KEY_DISPLAY_OFF     245 /* display device to off state */
0334 
0335 #define KEY_WWAN        246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */
0336 #define KEY_WIMAX       KEY_WWAN
0337 #define KEY_RFKILL      247 /* Key that controls all radios */
0338 
0339 #define KEY_MICMUTE     248 /* Mute / unmute the microphone */
0340 
0341 /* Code 255 is reserved for special needs of AT keyboard driver */
0342 
0343 #define BTN_MISC        0x100
0344 #define BTN_0           0x100
0345 #define BTN_1           0x101
0346 #define BTN_2           0x102
0347 #define BTN_3           0x103
0348 #define BTN_4           0x104
0349 #define BTN_5           0x105
0350 #define BTN_6           0x106
0351 #define BTN_7           0x107
0352 #define BTN_8           0x108
0353 #define BTN_9           0x109
0354 
0355 #define BTN_MOUSE       0x110
0356 #define BTN_LEFT        0x110
0357 #define BTN_RIGHT       0x111
0358 #define BTN_MIDDLE      0x112
0359 #define BTN_SIDE        0x113
0360 #define BTN_EXTRA       0x114
0361 #define BTN_FORWARD     0x115
0362 #define BTN_BACK        0x116
0363 #define BTN_TASK        0x117
0364 
0365 #define BTN_JOYSTICK        0x120
0366 #define BTN_TRIGGER     0x120
0367 #define BTN_THUMB       0x121
0368 #define BTN_THUMB2      0x122
0369 #define BTN_TOP         0x123
0370 #define BTN_TOP2        0x124
0371 #define BTN_PINKIE      0x125
0372 #define BTN_BASE        0x126
0373 #define BTN_BASE2       0x127
0374 #define BTN_BASE3       0x128
0375 #define BTN_BASE4       0x129
0376 #define BTN_BASE5       0x12a
0377 #define BTN_BASE6       0x12b
0378 #define BTN_DEAD        0x12f
0379 
0380 #define BTN_GAMEPAD     0x130
0381 #define BTN_SOUTH       0x130
0382 #define BTN_A           BTN_SOUTH
0383 #define BTN_EAST        0x131
0384 #define BTN_B           BTN_EAST
0385 #define BTN_C           0x132
0386 #define BTN_NORTH       0x133
0387 #define BTN_X           BTN_NORTH
0388 #define BTN_WEST        0x134
0389 #define BTN_Y           BTN_WEST
0390 #define BTN_Z           0x135
0391 #define BTN_TL          0x136
0392 #define BTN_TR          0x137
0393 #define BTN_TL2         0x138
0394 #define BTN_TR2         0x139
0395 #define BTN_SELECT      0x13a
0396 #define BTN_START       0x13b
0397 #define BTN_MODE        0x13c
0398 #define BTN_THUMBL      0x13d
0399 #define BTN_THUMBR      0x13e
0400 
0401 #define BTN_DIGI        0x140
0402 #define BTN_TOOL_PEN        0x140
0403 #define BTN_TOOL_RUBBER     0x141
0404 #define BTN_TOOL_BRUSH      0x142
0405 #define BTN_TOOL_PENCIL     0x143
0406 #define BTN_TOOL_AIRBRUSH   0x144
0407 #define BTN_TOOL_FINGER     0x145
0408 #define BTN_TOOL_MOUSE      0x146
0409 #define BTN_TOOL_LENS       0x147
0410 #define BTN_TOOL_QUINTTAP   0x148   /* Five fingers on trackpad */
0411 #define BTN_STYLUS3     0x149
0412 #define BTN_TOUCH       0x14a
0413 #define BTN_STYLUS      0x14b
0414 #define BTN_STYLUS2     0x14c
0415 #define BTN_TOOL_DOUBLETAP  0x14d
0416 #define BTN_TOOL_TRIPLETAP  0x14e
0417 #define BTN_TOOL_QUADTAP    0x14f   /* Four fingers on trackpad */
0418 
0419 #define BTN_WHEEL       0x150
0420 #define BTN_GEAR_DOWN       0x150
0421 #define BTN_GEAR_UP     0x151
0422 
0423 #define KEY_OK          0x160
0424 #define KEY_SELECT      0x161
0425 #define KEY_GOTO        0x162
0426 #define KEY_CLEAR       0x163
0427 #define KEY_POWER2      0x164
0428 #define KEY_OPTION      0x165
0429 #define KEY_INFO        0x166   /* AL OEM Features/Tips/Tutorial */
0430 #define KEY_TIME        0x167
0431 #define KEY_VENDOR      0x168
0432 #define KEY_ARCHIVE     0x169
0433 #define KEY_PROGRAM     0x16a   /* Media Select Program Guide */
0434 #define KEY_CHANNEL     0x16b
0435 #define KEY_FAVORITES       0x16c
0436 #define KEY_EPG         0x16d
0437 #define KEY_PVR         0x16e   /* Media Select Home */
0438 #define KEY_MHP         0x16f
0439 #define KEY_LANGUAGE        0x170
0440 #define KEY_TITLE       0x171
0441 #define KEY_SUBTITLE        0x172
0442 #define KEY_ANGLE       0x173
0443 #define KEY_FULL_SCREEN     0x174   /* AC View Toggle */
0444 #define KEY_ZOOM        KEY_FULL_SCREEN
0445 #define KEY_MODE        0x175
0446 #define KEY_KEYBOARD        0x176
0447 #define KEY_ASPECT_RATIO    0x177   /* HUTRR37: Aspect */
0448 #define KEY_SCREEN      KEY_ASPECT_RATIO
0449 #define KEY_PC          0x178   /* Media Select Computer */
0450 #define KEY_TV          0x179   /* Media Select TV */
0451 #define KEY_TV2         0x17a   /* Media Select Cable */
0452 #define KEY_VCR         0x17b   /* Media Select VCR */
0453 #define KEY_VCR2        0x17c   /* VCR Plus */
0454 #define KEY_SAT         0x17d   /* Media Select Satellite */
0455 #define KEY_SAT2        0x17e
0456 #define KEY_CD          0x17f   /* Media Select CD */
0457 #define KEY_TAPE        0x180   /* Media Select Tape */
0458 #define KEY_RADIO       0x181
0459 #define KEY_TUNER       0x182   /* Media Select Tuner */
0460 #define KEY_PLAYER      0x183
0461 #define KEY_TEXT        0x184
0462 #define KEY_DVD         0x185   /* Media Select DVD */
0463 #define KEY_AUX         0x186
0464 #define KEY_MP3         0x187
0465 #define KEY_AUDIO       0x188   /* AL Audio Browser */
0466 #define KEY_VIDEO       0x189   /* AL Movie Browser */
0467 #define KEY_DIRECTORY       0x18a
0468 #define KEY_LIST        0x18b
0469 #define KEY_MEMO        0x18c   /* Media Select Messages */
0470 #define KEY_CALENDAR        0x18d
0471 #define KEY_RED         0x18e
0472 #define KEY_GREEN       0x18f
0473 #define KEY_YELLOW      0x190
0474 #define KEY_BLUE        0x191
0475 #define KEY_CHANNELUP       0x192   /* Channel Increment */
0476 #define KEY_CHANNELDOWN     0x193   /* Channel Decrement */
0477 #define KEY_FIRST       0x194
0478 #define KEY_LAST        0x195   /* Recall Last */
0479 #define KEY_AB          0x196
0480 #define KEY_NEXT        0x197
0481 #define KEY_RESTART     0x198
0482 #define KEY_SLOW        0x199
0483 #define KEY_SHUFFLE     0x19a
0484 #define KEY_BREAK       0x19b
0485 #define KEY_PREVIOUS        0x19c
0486 #define KEY_DIGITS      0x19d
0487 #define KEY_TEEN        0x19e
0488 #define KEY_TWEN        0x19f
0489 #define KEY_VIDEOPHONE      0x1a0   /* Media Select Video Phone */
0490 #define KEY_GAMES       0x1a1   /* Media Select Games */
0491 #define KEY_ZOOMIN      0x1a2   /* AC Zoom In */
0492 #define KEY_ZOOMOUT     0x1a3   /* AC Zoom Out */
0493 #define KEY_ZOOMRESET       0x1a4   /* AC Zoom */
0494 #define KEY_WORDPROCESSOR   0x1a5   /* AL Word Processor */
0495 #define KEY_EDITOR      0x1a6   /* AL Text Editor */
0496 #define KEY_SPREADSHEET     0x1a7   /* AL Spreadsheet */
0497 #define KEY_GRAPHICSEDITOR  0x1a8   /* AL Graphics Editor */
0498 #define KEY_PRESENTATION    0x1a9   /* AL Presentation App */
0499 #define KEY_DATABASE        0x1aa   /* AL Database App */
0500 #define KEY_NEWS        0x1ab   /* AL Newsreader */
0501 #define KEY_VOICEMAIL       0x1ac   /* AL Voicemail */
0502 #define KEY_ADDRESSBOOK     0x1ad   /* AL Contacts/Address Book */
0503 #define KEY_MESSENGER       0x1ae   /* AL Instant Messaging */
0504 #define KEY_DISPLAYTOGGLE   0x1af   /* Turn display (LCD) on and off */
0505 #define KEY_BRIGHTNESS_TOGGLE   KEY_DISPLAYTOGGLE
0506 #define KEY_SPELLCHECK      0x1b0   /* AL Spell Check */
0507 #define KEY_LOGOFF      0x1b1   /* AL Logoff */
0508 
0509 #define KEY_DOLLAR      0x1b2
0510 #define KEY_EURO        0x1b3
0511 
0512 #define KEY_FRAMEBACK       0x1b4   /* Consumer - transport controls */
0513 #define KEY_FRAMEFORWARD    0x1b5
0514 #define KEY_CONTEXT_MENU    0x1b6   /* GenDesc - system context menu */
0515 #define KEY_MEDIA_REPEAT    0x1b7   /* Consumer - transport control */
0516 #define KEY_10CHANNELSUP    0x1b8   /* 10 channels up (10+) */
0517 #define KEY_10CHANNELSDOWN  0x1b9   /* 10 channels down (10-) */
0518 #define KEY_IMAGES      0x1ba   /* AL Image Browser */
0519 #define KEY_NOTIFICATION_CENTER 0x1bc   /* Show/hide the notification center */
0520 #define KEY_PICKUP_PHONE    0x1bd   /* Answer incoming call */
0521 #define KEY_HANGUP_PHONE    0x1be   /* Decline incoming call */
0522 
0523 #define KEY_DEL_EOL     0x1c0
0524 #define KEY_DEL_EOS     0x1c1
0525 #define KEY_INS_LINE        0x1c2
0526 #define KEY_DEL_LINE        0x1c3
0527 
0528 #define KEY_FN          0x1d0
0529 #define KEY_FN_ESC      0x1d1
0530 #define KEY_FN_F1       0x1d2
0531 #define KEY_FN_F2       0x1d3
0532 #define KEY_FN_F3       0x1d4
0533 #define KEY_FN_F4       0x1d5
0534 #define KEY_FN_F5       0x1d6
0535 #define KEY_FN_F6       0x1d7
0536 #define KEY_FN_F7       0x1d8
0537 #define KEY_FN_F8       0x1d9
0538 #define KEY_FN_F9       0x1da
0539 #define KEY_FN_F10      0x1db
0540 #define KEY_FN_F11      0x1dc
0541 #define KEY_FN_F12      0x1dd
0542 #define KEY_FN_1        0x1de
0543 #define KEY_FN_2        0x1df
0544 #define KEY_FN_D        0x1e0
0545 #define KEY_FN_E        0x1e1
0546 #define KEY_FN_F        0x1e2
0547 #define KEY_FN_S        0x1e3
0548 #define KEY_FN_B        0x1e4
0549 #define KEY_FN_RIGHT_SHIFT  0x1e5
0550 
0551 #define KEY_BRL_DOT1        0x1f1
0552 #define KEY_BRL_DOT2        0x1f2
0553 #define KEY_BRL_DOT3        0x1f3
0554 #define KEY_BRL_DOT4        0x1f4
0555 #define KEY_BRL_DOT5        0x1f5
0556 #define KEY_BRL_DOT6        0x1f6
0557 #define KEY_BRL_DOT7        0x1f7
0558 #define KEY_BRL_DOT8        0x1f8
0559 #define KEY_BRL_DOT9        0x1f9
0560 #define KEY_BRL_DOT10       0x1fa
0561 
0562 #define KEY_NUMERIC_0       0x200   /* used by phones, remote controls, */
0563 #define KEY_NUMERIC_1       0x201   /* and other keypads */
0564 #define KEY_NUMERIC_2       0x202
0565 #define KEY_NUMERIC_3       0x203
0566 #define KEY_NUMERIC_4       0x204
0567 #define KEY_NUMERIC_5       0x205
0568 #define KEY_NUMERIC_6       0x206
0569 #define KEY_NUMERIC_7       0x207
0570 #define KEY_NUMERIC_8       0x208
0571 #define KEY_NUMERIC_9       0x209
0572 #define KEY_NUMERIC_STAR    0x20a
0573 #define KEY_NUMERIC_POUND   0x20b
0574 #define KEY_NUMERIC_A       0x20c   /* Phone key A - HUT Telephony 0xb9 */
0575 #define KEY_NUMERIC_B       0x20d
0576 #define KEY_NUMERIC_C       0x20e
0577 #define KEY_NUMERIC_D       0x20f
0578 
0579 #define KEY_CAMERA_FOCUS    0x210
0580 #define KEY_WPS_BUTTON      0x211   /* WiFi Protected Setup key */
0581 
0582 #define KEY_TOUCHPAD_TOGGLE 0x212   /* Request switch touchpad on or off */
0583 #define KEY_TOUCHPAD_ON     0x213
0584 #define KEY_TOUCHPAD_OFF    0x214
0585 
0586 #define KEY_CAMERA_ZOOMIN   0x215
0587 #define KEY_CAMERA_ZOOMOUT  0x216
0588 #define KEY_CAMERA_UP       0x217
0589 #define KEY_CAMERA_DOWN     0x218
0590 #define KEY_CAMERA_LEFT     0x219
0591 #define KEY_CAMERA_RIGHT    0x21a
0592 
0593 #define KEY_ATTENDANT_ON    0x21b
0594 #define KEY_ATTENDANT_OFF   0x21c
0595 #define KEY_ATTENDANT_TOGGLE    0x21d   /* Attendant call on or off */
0596 #define KEY_LIGHTS_TOGGLE   0x21e   /* Reading light on or off */
0597 
0598 #define BTN_DPAD_UP     0x220
0599 #define BTN_DPAD_DOWN       0x221
0600 #define BTN_DPAD_LEFT       0x222
0601 #define BTN_DPAD_RIGHT      0x223
0602 
0603 #define KEY_ALS_TOGGLE      0x230   /* Ambient light sensor */
0604 #define KEY_ROTATE_LOCK_TOGGLE  0x231   /* Display rotation lock */
0605 
0606 #define KEY_BUTTONCONFIG        0x240   /* AL Button Configuration */
0607 #define KEY_TASKMANAGER     0x241   /* AL Task/Project Manager */
0608 #define KEY_JOURNAL     0x242   /* AL Log/Journal/Timecard */
0609 #define KEY_CONTROLPANEL        0x243   /* AL Control Panel */
0610 #define KEY_APPSELECT       0x244   /* AL Select Task/Application */
0611 #define KEY_SCREENSAVER     0x245   /* AL Screen Saver */
0612 #define KEY_VOICECOMMAND        0x246   /* Listening Voice Command */
0613 #define KEY_ASSISTANT       0x247   /* AL Context-aware desktop assistant */
0614 #define KEY_KBD_LAYOUT_NEXT 0x248   /* AC Next Keyboard Layout Select */
0615 #define KEY_EMOJI_PICKER    0x249   /* Show/hide emoji picker (HUTRR101) */
0616 #define KEY_DICTATE     0x24a   /* Start or Stop Voice Dictation Session (HUTRR99) */
0617 
0618 #define KEY_BRIGHTNESS_MIN      0x250   /* Set Brightness to Minimum */
0619 #define KEY_BRIGHTNESS_MAX      0x251   /* Set Brightness to Maximum */
0620 
0621 #define KEY_KBDINPUTASSIST_PREV     0x260
0622 #define KEY_KBDINPUTASSIST_NEXT     0x261
0623 #define KEY_KBDINPUTASSIST_PREVGROUP        0x262
0624 #define KEY_KBDINPUTASSIST_NEXTGROUP        0x263
0625 #define KEY_KBDINPUTASSIST_ACCEPT       0x264
0626 #define KEY_KBDINPUTASSIST_CANCEL       0x265
0627 
0628 /* Diagonal movement keys */
0629 #define KEY_RIGHT_UP            0x266
0630 #define KEY_RIGHT_DOWN          0x267
0631 #define KEY_LEFT_UP         0x268
0632 #define KEY_LEFT_DOWN           0x269
0633 
0634 #define KEY_ROOT_MENU           0x26a /* Show Device's Root Menu */
0635 /* Show Top Menu of the Media (e.g. DVD) */
0636 #define KEY_MEDIA_TOP_MENU      0x26b
0637 #define KEY_NUMERIC_11          0x26c
0638 #define KEY_NUMERIC_12          0x26d
0639 /*
0640  * Toggle Audio Description: refers to an audio service that helps blind and
0641  * visually impaired consumers understand the action in a program. Note: in
0642  * some countries this is referred to as "Video Description".
0643  */
0644 #define KEY_AUDIO_DESC          0x26e
0645 #define KEY_3D_MODE         0x26f
0646 #define KEY_NEXT_FAVORITE       0x270
0647 #define KEY_STOP_RECORD         0x271
0648 #define KEY_PAUSE_RECORD        0x272
0649 #define KEY_VOD             0x273 /* Video on Demand */
0650 #define KEY_UNMUTE          0x274
0651 #define KEY_FASTREVERSE         0x275
0652 #define KEY_SLOWREVERSE         0x276
0653 /*
0654  * Control a data application associated with the currently viewed channel,
0655  * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.)
0656  */
0657 #define KEY_DATA            0x277
0658 #define KEY_ONSCREEN_KEYBOARD       0x278
0659 /* Electronic privacy screen control */
0660 #define KEY_PRIVACY_SCREEN_TOGGLE   0x279
0661 
0662 /* Select an area of screen to be copied */
0663 #define KEY_SELECTIVE_SCREENSHOT    0x27a
0664 
0665 /* Move the focus to the next or previous user controllable element within a UI container */
0666 #define KEY_NEXT_ELEMENT               0x27b
0667 #define KEY_PREVIOUS_ELEMENT           0x27c
0668 
0669 /* Toggle Autopilot engagement */
0670 #define KEY_AUTOPILOT_ENGAGE_TOGGLE    0x27d
0671 
0672 /* Shortcut Keys */
0673 #define KEY_MARK_WAYPOINT              0x27e
0674 #define KEY_SOS                                0x27f
0675 #define KEY_NAV_CHART                  0x280
0676 #define KEY_FISHING_CHART              0x281
0677 #define KEY_SINGLE_RANGE_RADAR         0x282
0678 #define KEY_DUAL_RANGE_RADAR           0x283
0679 #define KEY_RADAR_OVERLAY              0x284
0680 #define KEY_TRADITIONAL_SONAR          0x285
0681 #define KEY_CLEARVU_SONAR              0x286
0682 #define KEY_SIDEVU_SONAR               0x287
0683 #define KEY_NAV_INFO                   0x288
0684 #define KEY_BRIGHTNESS_MENU            0x289
0685 
0686 /*
0687  * Some keyboards have keys which do not have a defined meaning, these keys
0688  * are intended to be programmed / bound to macros by the user. For most
0689  * keyboards with these macro-keys the key-sequence to inject, or action to
0690  * take, is all handled by software on the host side. So from the kernel's
0691  * point of view these are just normal keys.
0692  *
0693  * The KEY_MACRO# codes below are intended for such keys, which may be labeled
0694  * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
0695  * where the marking on the key does indicate a defined meaning / purpose.
0696  *
0697  * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
0698  * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
0699  * define MUST be added.
0700  */
0701 #define KEY_MACRO1          0x290
0702 #define KEY_MACRO2          0x291
0703 #define KEY_MACRO3          0x292
0704 #define KEY_MACRO4          0x293
0705 #define KEY_MACRO5          0x294
0706 #define KEY_MACRO6          0x295
0707 #define KEY_MACRO7          0x296
0708 #define KEY_MACRO8          0x297
0709 #define KEY_MACRO9          0x298
0710 #define KEY_MACRO10         0x299
0711 #define KEY_MACRO11         0x29a
0712 #define KEY_MACRO12         0x29b
0713 #define KEY_MACRO13         0x29c
0714 #define KEY_MACRO14         0x29d
0715 #define KEY_MACRO15         0x29e
0716 #define KEY_MACRO16         0x29f
0717 #define KEY_MACRO17         0x2a0
0718 #define KEY_MACRO18         0x2a1
0719 #define KEY_MACRO19         0x2a2
0720 #define KEY_MACRO20         0x2a3
0721 #define KEY_MACRO21         0x2a4
0722 #define KEY_MACRO22         0x2a5
0723 #define KEY_MACRO23         0x2a6
0724 #define KEY_MACRO24         0x2a7
0725 #define KEY_MACRO25         0x2a8
0726 #define KEY_MACRO26         0x2a9
0727 #define KEY_MACRO27         0x2aa
0728 #define KEY_MACRO28         0x2ab
0729 #define KEY_MACRO29         0x2ac
0730 #define KEY_MACRO30         0x2ad
0731 
0732 /*
0733  * Some keyboards with the macro-keys described above have some extra keys
0734  * for controlling the host-side software responsible for the macro handling:
0735  * -A macro recording start/stop key. Note that not all keyboards which emit
0736  *  KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
0737  *  KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
0738  *  should be interpreted as a recording start/stop toggle;
0739  * -Keys for switching between different macro (pre)sets, either a key for
0740  *  cycling through the configured presets or keys to directly select a preset.
0741  */
0742 #define KEY_MACRO_RECORD_START      0x2b0
0743 #define KEY_MACRO_RECORD_STOP       0x2b1
0744 #define KEY_MACRO_PRESET_CYCLE      0x2b2
0745 #define KEY_MACRO_PRESET1       0x2b3
0746 #define KEY_MACRO_PRESET2       0x2b4
0747 #define KEY_MACRO_PRESET3       0x2b5
0748 
0749 /*
0750  * Some keyboards have a buildin LCD panel where the contents are controlled
0751  * by the host. Often these have a number of keys directly below the LCD
0752  * intended for controlling a menu shown on the LCD. These keys often don't
0753  * have any labeling so we just name them KEY_KBD_LCD_MENU#
0754  */
0755 #define KEY_KBD_LCD_MENU1       0x2b8
0756 #define KEY_KBD_LCD_MENU2       0x2b9
0757 #define KEY_KBD_LCD_MENU3       0x2ba
0758 #define KEY_KBD_LCD_MENU4       0x2bb
0759 #define KEY_KBD_LCD_MENU5       0x2bc
0760 
0761 #define BTN_TRIGGER_HAPPY       0x2c0
0762 #define BTN_TRIGGER_HAPPY1      0x2c0
0763 #define BTN_TRIGGER_HAPPY2      0x2c1
0764 #define BTN_TRIGGER_HAPPY3      0x2c2
0765 #define BTN_TRIGGER_HAPPY4      0x2c3
0766 #define BTN_TRIGGER_HAPPY5      0x2c4
0767 #define BTN_TRIGGER_HAPPY6      0x2c5
0768 #define BTN_TRIGGER_HAPPY7      0x2c6
0769 #define BTN_TRIGGER_HAPPY8      0x2c7
0770 #define BTN_TRIGGER_HAPPY9      0x2c8
0771 #define BTN_TRIGGER_HAPPY10     0x2c9
0772 #define BTN_TRIGGER_HAPPY11     0x2ca
0773 #define BTN_TRIGGER_HAPPY12     0x2cb
0774 #define BTN_TRIGGER_HAPPY13     0x2cc
0775 #define BTN_TRIGGER_HAPPY14     0x2cd
0776 #define BTN_TRIGGER_HAPPY15     0x2ce
0777 #define BTN_TRIGGER_HAPPY16     0x2cf
0778 #define BTN_TRIGGER_HAPPY17     0x2d0
0779 #define BTN_TRIGGER_HAPPY18     0x2d1
0780 #define BTN_TRIGGER_HAPPY19     0x2d2
0781 #define BTN_TRIGGER_HAPPY20     0x2d3
0782 #define BTN_TRIGGER_HAPPY21     0x2d4
0783 #define BTN_TRIGGER_HAPPY22     0x2d5
0784 #define BTN_TRIGGER_HAPPY23     0x2d6
0785 #define BTN_TRIGGER_HAPPY24     0x2d7
0786 #define BTN_TRIGGER_HAPPY25     0x2d8
0787 #define BTN_TRIGGER_HAPPY26     0x2d9
0788 #define BTN_TRIGGER_HAPPY27     0x2da
0789 #define BTN_TRIGGER_HAPPY28     0x2db
0790 #define BTN_TRIGGER_HAPPY29     0x2dc
0791 #define BTN_TRIGGER_HAPPY30     0x2dd
0792 #define BTN_TRIGGER_HAPPY31     0x2de
0793 #define BTN_TRIGGER_HAPPY32     0x2df
0794 #define BTN_TRIGGER_HAPPY33     0x2e0
0795 #define BTN_TRIGGER_HAPPY34     0x2e1
0796 #define BTN_TRIGGER_HAPPY35     0x2e2
0797 #define BTN_TRIGGER_HAPPY36     0x2e3
0798 #define BTN_TRIGGER_HAPPY37     0x2e4
0799 #define BTN_TRIGGER_HAPPY38     0x2e5
0800 #define BTN_TRIGGER_HAPPY39     0x2e6
0801 #define BTN_TRIGGER_HAPPY40     0x2e7
0802 
0803 /* We avoid low common keys in module aliases so they don't get huge. */
0804 #define KEY_MIN_INTERESTING KEY_MUTE
0805 #define KEY_MAX         0x2ff
0806 #define KEY_CNT         (KEY_MAX+1)
0807 
0808 /*
0809  * Relative axes
0810  */
0811 
0812 #define REL_X           0x00
0813 #define REL_Y           0x01
0814 #define REL_Z           0x02
0815 #define REL_RX          0x03
0816 #define REL_RY          0x04
0817 #define REL_RZ          0x05
0818 #define REL_HWHEEL      0x06
0819 #define REL_DIAL        0x07
0820 #define REL_WHEEL       0x08
0821 #define REL_MISC        0x09
0822 /*
0823  * 0x0a is reserved and should not be used in input drivers.
0824  * It was used by HID as REL_MISC+1 and userspace needs to detect if
0825  * the next REL_* event is correct or is just REL_MISC + n.
0826  * We define here REL_RESERVED so userspace can rely on it and detect
0827  * the situation described above.
0828  */
0829 #define REL_RESERVED        0x0a
0830 #define REL_WHEEL_HI_RES    0x0b
0831 #define REL_HWHEEL_HI_RES   0x0c
0832 #define REL_MAX         0x0f
0833 #define REL_CNT         (REL_MAX+1)
0834 
0835 /*
0836  * Absolute axes
0837  */
0838 
0839 #define ABS_X           0x00
0840 #define ABS_Y           0x01
0841 #define ABS_Z           0x02
0842 #define ABS_RX          0x03
0843 #define ABS_RY          0x04
0844 #define ABS_RZ          0x05
0845 #define ABS_THROTTLE        0x06
0846 #define ABS_RUDDER      0x07
0847 #define ABS_WHEEL       0x08
0848 #define ABS_GAS         0x09
0849 #define ABS_BRAKE       0x0a
0850 #define ABS_HAT0X       0x10
0851 #define ABS_HAT0Y       0x11
0852 #define ABS_HAT1X       0x12
0853 #define ABS_HAT1Y       0x13
0854 #define ABS_HAT2X       0x14
0855 #define ABS_HAT2Y       0x15
0856 #define ABS_HAT3X       0x16
0857 #define ABS_HAT3Y       0x17
0858 #define ABS_PRESSURE        0x18
0859 #define ABS_DISTANCE        0x19
0860 #define ABS_TILT_X      0x1a
0861 #define ABS_TILT_Y      0x1b
0862 #define ABS_TOOL_WIDTH      0x1c
0863 
0864 #define ABS_VOLUME      0x20
0865 
0866 #define ABS_MISC        0x28
0867 
0868 /*
0869  * 0x2e is reserved and should not be used in input drivers.
0870  * It was used by HID as ABS_MISC+6 and userspace needs to detect if
0871  * the next ABS_* event is correct or is just ABS_MISC + n.
0872  * We define here ABS_RESERVED so userspace can rely on it and detect
0873  * the situation described above.
0874  */
0875 #define ABS_RESERVED        0x2e
0876 
0877 #define ABS_MT_SLOT     0x2f    /* MT slot being modified */
0878 #define ABS_MT_TOUCH_MAJOR  0x30    /* Major axis of touching ellipse */
0879 #define ABS_MT_TOUCH_MINOR  0x31    /* Minor axis (omit if circular) */
0880 #define ABS_MT_WIDTH_MAJOR  0x32    /* Major axis of approaching ellipse */
0881 #define ABS_MT_WIDTH_MINOR  0x33    /* Minor axis (omit if circular) */
0882 #define ABS_MT_ORIENTATION  0x34    /* Ellipse orientation */
0883 #define ABS_MT_POSITION_X   0x35    /* Center X touch position */
0884 #define ABS_MT_POSITION_Y   0x36    /* Center Y touch position */
0885 #define ABS_MT_TOOL_TYPE    0x37    /* Type of touching device */
0886 #define ABS_MT_BLOB_ID      0x38    /* Group a set of packets as a blob */
0887 #define ABS_MT_TRACKING_ID  0x39    /* Unique ID of initiated contact */
0888 #define ABS_MT_PRESSURE     0x3a    /* Pressure on contact area */
0889 #define ABS_MT_DISTANCE     0x3b    /* Contact hover distance */
0890 #define ABS_MT_TOOL_X       0x3c    /* Center X tool position */
0891 #define ABS_MT_TOOL_Y       0x3d    /* Center Y tool position */
0892 
0893 
0894 #define ABS_MAX         0x3f
0895 #define ABS_CNT         (ABS_MAX+1)
0896 
0897 /*
0898  * Switch events
0899  */
0900 
0901 #define SW_LID          0x00  /* set = lid shut */
0902 #define SW_TABLET_MODE      0x01  /* set = tablet mode */
0903 #define SW_HEADPHONE_INSERT 0x02  /* set = inserted */
0904 #define SW_RFKILL_ALL       0x03  /* rfkill master switch, type "any"
0905                      set = radio enabled */
0906 #define SW_RADIO        SW_RFKILL_ALL   /* deprecated */
0907 #define SW_MICROPHONE_INSERT    0x04  /* set = inserted */
0908 #define SW_DOCK         0x05  /* set = plugged into dock */
0909 #define SW_LINEOUT_INSERT   0x06  /* set = inserted */
0910 #define SW_JACK_PHYSICAL_INSERT 0x07  /* set = mechanical switch set */
0911 #define SW_VIDEOOUT_INSERT  0x08  /* set = inserted */
0912 #define SW_CAMERA_LENS_COVER    0x09  /* set = lens covered */
0913 #define SW_KEYPAD_SLIDE     0x0a  /* set = keypad slide out */
0914 #define SW_FRONT_PROXIMITY  0x0b  /* set = front proximity sensor active */
0915 #define SW_ROTATE_LOCK      0x0c  /* set = rotate locked/disabled */
0916 #define SW_LINEIN_INSERT    0x0d  /* set = inserted */
0917 #define SW_MUTE_DEVICE      0x0e  /* set = device disabled */
0918 #define SW_PEN_INSERTED     0x0f  /* set = pen inserted */
0919 #define SW_MACHINE_COVER    0x10  /* set = cover closed */
0920 #define SW_MAX          0x10
0921 #define SW_CNT          (SW_MAX+1)
0922 
0923 /*
0924  * Misc events
0925  */
0926 
0927 #define MSC_SERIAL      0x00
0928 #define MSC_PULSELED        0x01
0929 #define MSC_GESTURE     0x02
0930 #define MSC_RAW         0x03
0931 #define MSC_SCAN        0x04
0932 #define MSC_TIMESTAMP       0x05
0933 #define MSC_MAX         0x07
0934 #define MSC_CNT         (MSC_MAX+1)
0935 
0936 /*
0937  * LEDs
0938  */
0939 
0940 #define LED_NUML        0x00
0941 #define LED_CAPSL       0x01
0942 #define LED_SCROLLL     0x02
0943 #define LED_COMPOSE     0x03
0944 #define LED_KANA        0x04
0945 #define LED_SLEEP       0x05
0946 #define LED_SUSPEND     0x06
0947 #define LED_MUTE        0x07
0948 #define LED_MISC        0x08
0949 #define LED_MAIL        0x09
0950 #define LED_CHARGING        0x0a
0951 #define LED_MAX         0x0f
0952 #define LED_CNT         (LED_MAX+1)
0953 
0954 /*
0955  * Autorepeat values
0956  */
0957 
0958 #define REP_DELAY       0x00
0959 #define REP_PERIOD      0x01
0960 #define REP_MAX         0x01
0961 #define REP_CNT         (REP_MAX+1)
0962 
0963 /*
0964  * Sounds
0965  */
0966 
0967 #define SND_CLICK       0x00
0968 #define SND_BELL        0x01
0969 #define SND_TONE        0x02
0970 #define SND_MAX         0x07
0971 #define SND_CNT         (SND_MAX+1)
0972 
0973 #endif