/* * Copyright 2023 Google LLC * * SPDX-License-Identifier: Apache-2.0 * * Input event codes, for codes available in Linux, use the same values as in * https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/input-event-codes.h */ #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_INPUT_INPUT_EVENT_CODES_H_ #define ZEPHYR_INCLUDE_DT_BINDINGS_INPUT_INPUT_EVENT_CODES_H_ /** * @defgroup input_events Input Event Definitions * @ingroup input_interface * @{ */ /** * @name Input event types. * @anchor INPUT_EV_CODES * @{ */ #define INPUT_EV_KEY 0x01 /**< Key event */ #define INPUT_EV_REL 0x02 /**< Relative coordinate event */ #define INPUT_EV_ABS 0x03 /**< Absolute coordinate event */ #define INPUT_EV_MSC 0x04 /**< Miscellaneous event */ #define INPUT_EV_DEVICE 0xef /**< Device specific input event */ #define INPUT_EV_VENDOR_START 0xf0 /**< Vendor specific event start */ #define INPUT_EV_VENDOR_STOP 0xff /**< Vendor specific event stop */ /** @} */ /** * @name Input event KEY codes. * @anchor INPUT_KEY_CODES * @{ */ #define INPUT_KEY_RESERVED 0 /**< Reserved, do not use */ #define INPUT_KEY_0 11 /**< 0 Key */ #define INPUT_KEY_1 2 /**< 1 Key */ #define INPUT_KEY_2 3 /**< 2 Key */ #define INPUT_KEY_3 4 /**< 3 Key */ #define INPUT_KEY_4 5 /**< 4 Key */ #define INPUT_KEY_5 6 /**< 5 Key */ #define INPUT_KEY_6 7 /**< 6 Key */ #define INPUT_KEY_7 8 /**< 7 Key */ #define INPUT_KEY_8 9 /**< 8 Key */ #define INPUT_KEY_9 10 /**< 9 Key */ #define INPUT_KEY_A 30 /**< A Key */ #define INPUT_KEY_APOSTROPHE 40 /**< Apostrophe Key */ #define INPUT_KEY_B 48 /**< B Key */ #define INPUT_KEY_BACK 158 /**< Back Key */ #define INPUT_KEY_BACKSLASH 43 /**< Backslash Key */ #define INPUT_KEY_BACKSPACE 14 /**< Backspace Key */ #define INPUT_KEY_BLUETOOTH 237 /**< Bluetooth Key */ #define INPUT_KEY_BRIGHTNESSDOWN 224 /**< Brightness Up Key */ #define INPUT_KEY_BRIGHTNESSUP 225 /**< Brightneess Down Key */ #define INPUT_KEY_C 46 /**< C Key */ #define INPUT_KEY_CAPSLOCK 58 /**< Caps Lock Key */ #define INPUT_KEY_COFFEE 152 /**< Screen Saver Key */ #define INPUT_KEY_COMMA 51 /**< Comma Key */ #define INPUT_KEY_COMPOSE 127 /**< Compose Key */ #define INPUT_KEY_CONNECT 218 /**< Connect Key */ #define INPUT_KEY_D 32 /**< D Key */ #define INPUT_KEY_DELETE 111 /**< Delete Key */ #define INPUT_KEY_DOT 52 /**< Dot Key */ #define INPUT_KEY_DOWN 108 /**< Down Key */ #define INPUT_KEY_E 18 /**< E Key */ #define INPUT_KEY_END 107 /**< End Key */ #define INPUT_KEY_ENTER 28 /**< Enter Key */ #define INPUT_KEY_EQUAL 13 /**< Equal Key */ #define INPUT_KEY_ESC 1 /**< Escape Key */ #define INPUT_KEY_F 33 /**< F Key */ #define INPUT_KEY_F1 59 /**< F1 Key */ #define INPUT_KEY_F10 68 /**< F10 Key */ #define INPUT_KEY_F11 87 /**< F11 Key */ #define INPUT_KEY_F12 88 /**< F12 Key */ #define INPUT_KEY_F13 183 /**< F13 Key */ #define INPUT_KEY_F14 184 /**< F14 Key */ #define INPUT_KEY_F15 185 /**< F15 Key */ #define INPUT_KEY_F16 186 /**< F16 Key */ #define INPUT_KEY_F17 187 /**< F17 Key */ #define INPUT_KEY_F18 188 /**< F18 Key */ #define INPUT_KEY_F19 189 /**< F19 Key */ #define INPUT_KEY_F2 60 /**< F2 Key */ #define INPUT_KEY_F20 190 /**< F20 Key */ #define INPUT_KEY_F21 191 /**< F21 Key */ #define INPUT_KEY_F22 192 /**< F22 Key */ #define INPUT_KEY_F23 193 /**< F23 Key */ #define INPUT_KEY_F24 194 /**< F24 Key */ #define INPUT_KEY_F3 61 /**< F3 Key */ #define INPUT_KEY_F4 62 /**< F4 Key */ #define INPUT_KEY_F5 63 /**< F5 Key */ #define INPUT_KEY_F6 64 /**< F6 Key */ #define INPUT_KEY_F7 65 /**< F7 Key */ #define INPUT_KEY_F8 66 /**< F8 Key */ #define INPUT_KEY_F9 67 /**< F9 Key */ #define INPUT_KEY_FASTFORWARD 208 /**< Fast Forward Key */ #define INPUT_KEY_FORWARD 159 /**< Forward Key */ #define INPUT_KEY_G 34 /**< G Key */ #define INPUT_KEY_GRAVE 41 /**< Grave (backtick) Key */ #define INPUT_KEY_H 35 /**< H Key */ #define INPUT_KEY_HOME 102 /**< Home Key */ #define INPUT_KEY_I 23 /**< I Key */ #define INPUT_KEY_INSERT 110 /**< Insert Key */ #define INPUT_KEY_J 36 /**< J Key */ #define INPUT_KEY_K 37 /**< K Key */ #define INPUT_KEY_KP0 82 /**< Keypad 0 Key */ #define INPUT_KEY_KP1 79 /**< Keypad 1 Key */ #define INPUT_KEY_KP2 80 /**< Keypad 2 Key */ #define INPUT_KEY_KP3 81 /**< Keypad 3 Key */ #define INPUT_KEY_KP4 75 /**< Keypad 4 Key */ #define INPUT_KEY_KP5 76 /**< Keypad 5 Key */ #define INPUT_KEY_KP6 77 /**< Keypad 6 Key */ #define INPUT_KEY_KP7 71 /**< Keypad 7 Key */ #define INPUT_KEY_KP8 72 /**< Keypad 8 Key */ #define INPUT_KEY_KP9 73 /**< Keypad 9 Key */ #define INPUT_KEY_KPASTERISK 55 /**< Keypad Asterisk Key */ #define INPUT_KEY_KPCOMMA 121 /**< Keypad Comma Key */ #define INPUT_KEY_KPDOT 83 /**< Keypad Dot Key */ #define INPUT_KEY_KPENTER 96 /**< Keypad Enter Key */ #define INPUT_KEY_KPEQUAL 117 /**< Keypad Equal Key */ #define INPUT_KEY_KPMINUS 74 /**< Keypad Minus Key */ #define INPUT_KEY_KPPLUS 78 /**< Keypad Plus Key */ #define INPUT_KEY_KPPLUSMINUS 118 /**< Keypad Plus Key */ #define INPUT_KEY_KPSLASH 98 /**< Keypad Slash Key */ #define INPUT_KEY_L 38 /**< L Key */ #define INPUT_KEY_LEFT 105 /**< Left Key */ #define INPUT_KEY_LEFTALT 56 /**< Left Alt Key */ #define INPUT_KEY_LEFTBRACE 26 /**< Left Brace Key */ #define INPUT_KEY_LEFTCTRL 29 /**< Left Ctrl Key */ #define INPUT_KEY_LEFTMETA 125 /**< Left Meta Key */ #define INPUT_KEY_LEFTSHIFT 42 /**< Left Shift Key */ #define INPUT_KEY_M 50 /**< M Key */ #define INPUT_KEY_MENU 139 /**< Menu Key */ #define INPUT_KEY_MINUS 12 /**< Minus Key */ #define INPUT_KEY_MUTE 113 /**< Mute Key */ #define INPUT_KEY_N 49 /**< N Key */ #define INPUT_KEY_NUMLOCK 69 /**< Num Lock Key */ #define INPUT_KEY_O 24 /**< O Key */ #define INPUT_KEY_P 25 /**< P Key */ #define INPUT_KEY_PAGEDOWN 109 /**< Page Down Key */ #define INPUT_KEY_PAGEUP 104 /**< Page UpKey */ #define INPUT_KEY_PAUSE 119 /**< Pause Key */ #define INPUT_KEY_PLAY 207 /**< Play Key */ #define INPUT_KEY_POWER 116 /**< Power Key */ #define INPUT_KEY_PRINT 210 /**< Print Key */ #define INPUT_KEY_Q 16 /**< Q Key */ #define INPUT_KEY_R 19 /**< R Key */ #define INPUT_KEY_RIGHT 106 /**< Right Key */ #define INPUT_KEY_RIGHTALT 100 /**< Right Alt Key */ #define INPUT_KEY_RIGHTBRACE 27 /**< Right Brace Key */ #define INPUT_KEY_RIGHTCTRL 97 /**< Right Ctrl Key */ #define INPUT_KEY_RIGHTMETA 126 /**< Right Meta Key */ #define INPUT_KEY_RIGHTSHIFT 54 /**< Right Shift Key */ #define INPUT_KEY_S 31 /**< S Key */ #define INPUT_KEY_SCALE 120 /**< Scale Key */ #define INPUT_KEY_SCROLLLOCK 70 /**< Scroll Lock Key */ #define INPUT_KEY_SEMICOLON 39 /**< Semicolon Key */ #define INPUT_KEY_SLASH 53 /**< Slash Key */ #define INPUT_KEY_SLEEP 142 /**< System Sleep Key */ #define INPUT_KEY_SPACE 57 /**< Space Key */ #define INPUT_KEY_SYSRQ 99 /**< SysReq Key */ #define INPUT_KEY_T 20 /**< T Key */ #define INPUT_KEY_TAB 15 /**< Tab Key*/ #define INPUT_KEY_U 22 /**< U Key */ #define INPUT_KEY_UP 103 /**< Up Key */ #define INPUT_KEY_UWB 239 /**< Ultra-Wideband Key */ #define INPUT_KEY_V 47 /**< V Key */ #define INPUT_KEY_VOLUMEDOWN 114 /**< Volume Down Key */ #define INPUT_KEY_VOLUMEUP 115 /**< Volume Up Key */ #define INPUT_KEY_W 17 /**< W Key */ #define INPUT_KEY_WAKEUP 143 /**< System Wake Up Key */ #define INPUT_KEY_WLAN 238 /**< Wireless LAN Key */ #define INPUT_KEY_X 45 /**< X Key */ #define INPUT_KEY_Y 21 /**< Y Key */ #define INPUT_KEY_Z 44 /**< Z Key */ /** @} */ /** * @name Input event BTN codes. * @anchor INPUT_BTN_CODES * @{ */ #define INPUT_BTN_0 0x100 /**< 0 button */ #define INPUT_BTN_1 0x101 /**< 1 button */ #define INPUT_BTN_2 0x102 /**< 2 button */ #define INPUT_BTN_3 0x103 /**< 3 button */ #define INPUT_BTN_4 0x104 /**< 4 button */ #define INPUT_BTN_5 0x105 /**< 5 button */ #define INPUT_BTN_6 0x106 /**< 6 button */ #define INPUT_BTN_7 0x107 /**< 7 button */ #define INPUT_BTN_8 0x108 /**< 8 button */ #define INPUT_BTN_9 0x109 /**< 9 button */ #define INPUT_BTN_A INPUT_BTN_SOUTH /**< A button */ #define INPUT_BTN_B INPUT_BTN_EAST /**< B button */ #define INPUT_BTN_BACK 0x116 /**< Back button */ #define INPUT_BTN_C 0x132 /**< C button */ #define INPUT_BTN_DPAD_DOWN 0x221 /**< Directional pad Down */ #define INPUT_BTN_DPAD_LEFT 0x222 /**< Directional pad Left */ #define INPUT_BTN_DPAD_RIGHT 0x223 /**< Directional pad Right */ #define INPUT_BTN_DPAD_UP 0x220 /**< Directional pad Up */ #define INPUT_BTN_EAST 0x131 /**< East button */ #define INPUT_BTN_EXTRA 0x114 /**< Extra button */ #define INPUT_BTN_FORWARD 0x115 /**< Forward button */ #define INPUT_BTN_GEAR_DOWN 0x150 /**< Gear Up button */ #define INPUT_BTN_GEAR_UP 0x151 /**< Gear Down button */ #define INPUT_BTN_LEFT 0x110 /**< Left button */ #define INPUT_BTN_MIDDLE 0x112 /**< Middle button */ #define INPUT_BTN_MODE 0x13c /**< Mode button */ #define INPUT_BTN_NORTH 0x133 /**< North button */ #define INPUT_BTN_RIGHT 0x111 /**< Right button */ #define INPUT_BTN_SELECT 0x13a /**< Select button */ #define INPUT_BTN_SIDE 0x113 /**< Side button */ #define INPUT_BTN_SOUTH 0x130 /**< South button */ #define INPUT_BTN_START 0x13b /**< Start button */ #define INPUT_BTN_TASK 0x117 /**< Task button */ #define INPUT_BTN_THUMBL 0x13d /**< Left thumbstick button */ #define INPUT_BTN_THUMBR 0x13e /**< Right thumbstick button */ #define INPUT_BTN_TL 0x136 /**< Left trigger (L1) */ #define INPUT_BTN_TL2 0x138 /**< Left trigger 2 (L2) */ #define INPUT_BTN_TOUCH 0x14a /**< Touchscreen touch */ #define INPUT_BTN_TR 0x137 /**< Right trigger (R1) */ #define INPUT_BTN_TR2 0x139 /**< Right trigger 2 (R2) */ #define INPUT_BTN_WEST 0x134 /**< West button */ #define INPUT_BTN_X INPUT_BTN_NORTH /**< X button */ #define INPUT_BTN_Y INPUT_BTN_WEST /**< Y button */ #define INPUT_BTN_Z 0x135 /**< Z button */ /** @} */ /** * @name Input event ABS codes. * @anchor INPUT_ABS_CODES * @{ */ #define INPUT_ABS_BRAKE 0x0a /**< Absolute brake position */ #define INPUT_ABS_GAS 0x09 /**< Absolute gas position */ #define INPUT_ABS_MT_SLOT 0x2f /**< Absolute multitouch slot identifier */ #define INPUT_ABS_RUDDER 0x07 /**< Absolute rudder position */ #define INPUT_ABS_RX 0x03 /**< Absolute rotation around X axis */ #define INPUT_ABS_RY 0x04 /**< Absolute rotation around Y axis */ #define INPUT_ABS_RZ 0x05 /**< Absolute rotation around Z axis */ #define INPUT_ABS_THROTTLE 0x06 /**< Absolute throttle position */ #define INPUT_ABS_WHEEL 0x08 /**< Absolute wheel position */ #define INPUT_ABS_X 0x00 /**< Absolute X coordinate */ #define INPUT_ABS_Y 0x01 /**< Absolute Y coordinate */ #define INPUT_ABS_Z 0x02 /**< Absolute Z coordinate */ /** @} */ /** * @name Input event REL codes. * @anchor INPUT_REL_CODES * @{ */ #define INPUT_REL_DIAL 0x07 /**< Relative dial coordinate */ #define INPUT_REL_HWHEEL 0x06 /**< Relative horizontal wheel coordinate */ #define INPUT_REL_MISC 0x09 /**< Relative misc coordinate */ #define INPUT_REL_RX 0x03 /**< Relative rotation around X axis */ #define INPUT_REL_RY 0x04 /**< Relative rotation around Y axis */ #define INPUT_REL_RZ 0x05 /**< Relative rotation around Z axis */ #define INPUT_REL_WHEEL 0x08 /**< Relative wheel coordinate */ #define INPUT_REL_X 0x00 /**< Relative X coordinate */ #define INPUT_REL_Y 0x01 /**< Relative Y coordinate */ #define INPUT_REL_Z 0x02 /**< Relative Z coordinate */ /** @} */ /** * @name Input event MSC codes. * @anchor INPUT_MSC_CODES * @{ */ #define INPUT_MSC_SCAN 0x04 /**< Scan code */ /** @} */ /** @} */ #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_INPUT_INPUT_EVENT_CODES_H_ */