1 /* 2 * Copyright 2023 Google LLC 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Input event codes, for codes available in Linux, use the same values as in 7 * https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/input-event-codes.h 8 */ 9 10 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_INPUT_INPUT_EVENT_CODES_H_ 11 #define ZEPHYR_INCLUDE_DT_BINDINGS_INPUT_INPUT_EVENT_CODES_H_ 12 13 /** 14 * @defgroup input_events Input Event Definitions 15 * @ingroup input_interface 16 * @{ 17 */ 18 19 20 /** 21 * @name Input event types. 22 * @anchor INPUT_EV_CODES 23 * @{ 24 */ 25 #define INPUT_EV_KEY 0x01 /**< Key event */ 26 #define INPUT_EV_REL 0x02 /**< Relative coordinate event */ 27 #define INPUT_EV_ABS 0x03 /**< Absolute coordinate event */ 28 #define INPUT_EV_MSC 0x04 /**< Miscellaneous event */ 29 #define INPUT_EV_VENDOR_START 0xf0 /**< Vendor specific event start */ 30 #define INPUT_EV_VENDOR_STOP 0xff /**< Vendor specific event stop */ 31 /** @} */ 32 33 /** 34 * @name Input event KEY codes. 35 * @anchor INPUT_KEY_CODES 36 * @{ 37 */ 38 #define INPUT_KEY_0 11 /**< 0 Key */ 39 #define INPUT_KEY_1 2 /**< 1 Key */ 40 #define INPUT_KEY_2 3 /**< 2 Key */ 41 #define INPUT_KEY_3 4 /**< 3 Key */ 42 #define INPUT_KEY_4 5 /**< 4 Key */ 43 #define INPUT_KEY_5 6 /**< 5 Key */ 44 #define INPUT_KEY_6 7 /**< 6 Key */ 45 #define INPUT_KEY_7 8 /**< 7 Key */ 46 #define INPUT_KEY_8 9 /**< 8 Key */ 47 #define INPUT_KEY_9 10 /**< 9 Key */ 48 #define INPUT_KEY_A 30 /**< A Key */ 49 #define INPUT_KEY_APOSTROPHE 40 /**< Apostrophe Key */ 50 #define INPUT_KEY_B 48 /**< B Key */ 51 #define INPUT_KEY_BACK 158 /**< Back Key */ 52 #define INPUT_KEY_BACKSLASH 43 /**< Backslash Key */ 53 #define INPUT_KEY_BACKSPACE 14 /**< Backspace Key */ 54 #define INPUT_KEY_BLUETOOTH 237 /**< Bluetooth Key */ 55 #define INPUT_KEY_BRIGHTNESSDOWN 224 /**< Brightness Up Key */ 56 #define INPUT_KEY_BRIGHTNESSUP 225 /**< Brightneess Down Key */ 57 #define INPUT_KEY_C 46 /**< C Key */ 58 #define INPUT_KEY_CAPSLOCK 58 /**< Caps Lock Key */ 59 #define INPUT_KEY_COFFEE 152 /**< Screen Saver Key */ 60 #define INPUT_KEY_COMMA 51 /**< Comma Key */ 61 #define INPUT_KEY_COMPOSE 127 /**< Compose Key */ 62 #define INPUT_KEY_CONNECT 218 /**< Connect Key */ 63 #define INPUT_KEY_D 32 /**< D Key */ 64 #define INPUT_KEY_DELETE 111 /**< Delete Key */ 65 #define INPUT_KEY_DOT 52 /**< Dot Key */ 66 #define INPUT_KEY_DOWN 108 /**< Down Key */ 67 #define INPUT_KEY_E 18 /**< E Key */ 68 #define INPUT_KEY_END 107 /**< End Key */ 69 #define INPUT_KEY_ENTER 28 /**< Enter Key */ 70 #define INPUT_KEY_EQUAL 13 /**< Equal Key */ 71 #define INPUT_KEY_ESC 1 /**< Escape Key */ 72 #define INPUT_KEY_F 33 /**< F Key */ 73 #define INPUT_KEY_F1 59 /**< F1 Key */ 74 #define INPUT_KEY_F10 68 /**< F10 Key */ 75 #define INPUT_KEY_F11 87 /**< F11 Key */ 76 #define INPUT_KEY_F12 88 /**< F12 Key */ 77 #define INPUT_KEY_F13 183 /**< F13 Key */ 78 #define INPUT_KEY_F14 184 /**< F14 Key */ 79 #define INPUT_KEY_F15 185 /**< F15 Key */ 80 #define INPUT_KEY_F16 186 /**< F16 Key */ 81 #define INPUT_KEY_F17 187 /**< F17 Key */ 82 #define INPUT_KEY_F18 188 /**< F18 Key */ 83 #define INPUT_KEY_F19 189 /**< F19 Key */ 84 #define INPUT_KEY_F2 60 /**< F2 Key */ 85 #define INPUT_KEY_F20 190 /**< F20 Key */ 86 #define INPUT_KEY_F21 191 /**< F21 Key */ 87 #define INPUT_KEY_F22 192 /**< F22 Key */ 88 #define INPUT_KEY_F23 193 /**< F23 Key */ 89 #define INPUT_KEY_F24 194 /**< F24 Key */ 90 #define INPUT_KEY_F3 61 /**< F3 Key */ 91 #define INPUT_KEY_F4 62 /**< F4 Key */ 92 #define INPUT_KEY_F5 63 /**< F5 Key */ 93 #define INPUT_KEY_F6 64 /**< F6 Key */ 94 #define INPUT_KEY_F7 65 /**< F7 Key */ 95 #define INPUT_KEY_F8 66 /**< F8 Key */ 96 #define INPUT_KEY_F9 67 /**< F9 Key */ 97 #define INPUT_KEY_FASTFORWARD 208 /**< Fast Forward Key */ 98 #define INPUT_KEY_FORWARD 159 /**< Forward Key */ 99 #define INPUT_KEY_G 34 /**< G Key */ 100 #define INPUT_KEY_GRAVE 41 /**< Grave (backtick) Key */ 101 #define INPUT_KEY_H 35 /**< H Key */ 102 #define INPUT_KEY_HOME 102 /**< Home Key */ 103 #define INPUT_KEY_I 23 /**< I Key */ 104 #define INPUT_KEY_INSERT 110 /**< Insert Key */ 105 #define INPUT_KEY_J 36 /**< J Key */ 106 #define INPUT_KEY_K 37 /**< K Key */ 107 #define INPUT_KEY_KP0 82 /**< Keypad 0 Key */ 108 #define INPUT_KEY_KP1 79 /**< Keypad 1 Key */ 109 #define INPUT_KEY_KP2 80 /**< Keypad 2 Key */ 110 #define INPUT_KEY_KP3 81 /**< Keypad 3 Key */ 111 #define INPUT_KEY_KP4 75 /**< Keypad 4 Key */ 112 #define INPUT_KEY_KP5 76 /**< Keypad 5 Key */ 113 #define INPUT_KEY_KP6 77 /**< Keypad 6 Key */ 114 #define INPUT_KEY_KP7 71 /**< Keypad 7 Key */ 115 #define INPUT_KEY_KP8 72 /**< Keypad 8 Key */ 116 #define INPUT_KEY_KP9 73 /**< Keypad 9 Key */ 117 #define INPUT_KEY_KPASTERISK 55 /**< Keypad Asterisk Key */ 118 #define INPUT_KEY_KPCOMMA 121 /**< Keypad Comma Key */ 119 #define INPUT_KEY_KPDOT 83 /**< Keypad Dot Key */ 120 #define INPUT_KEY_KPEQUAL 117 /**< Keypad Equal Key */ 121 #define INPUT_KEY_KPMINUS 74 /**< Keypad Minus Key */ 122 #define INPUT_KEY_KPPLUS 78 /**< Keypad Plus Key */ 123 #define INPUT_KEY_KPPLUSMINUS 118 /**< Keypad Plus Key */ 124 #define INPUT_KEY_L 38 /**< L Key */ 125 #define INPUT_KEY_LEFT 105 /**< Left Key */ 126 #define INPUT_KEY_LEFTALT 56 /**< Left Alt Key */ 127 #define INPUT_KEY_LEFTBRACE 26 /**< Left Brace Key */ 128 #define INPUT_KEY_LEFTCTRL 29 /**< Left Ctrl Key */ 129 #define INPUT_KEY_LEFTMETA 125 /**< Left Meta Key */ 130 #define INPUT_KEY_LEFTSHIFT 42 /**< Left Shift Key */ 131 #define INPUT_KEY_M 50 /**< M Key */ 132 #define INPUT_KEY_MENU 139 /**< Menu Key */ 133 #define INPUT_KEY_MINUS 12 /**< Minus Key */ 134 #define INPUT_KEY_MUTE 113 /**< Mute Key */ 135 #define INPUT_KEY_N 49 /**< N Key */ 136 #define INPUT_KEY_NUMLOCK 69 /**< Num Lock Key */ 137 #define INPUT_KEY_O 24 /**< O Key */ 138 #define INPUT_KEY_P 25 /**< P Key */ 139 #define INPUT_KEY_PAGEDOWN 109 /**< Page Down Key */ 140 #define INPUT_KEY_PAGEUP 104 /**< Page UpKey */ 141 #define INPUT_KEY_PAUSE 119 /**< Pause Key */ 142 #define INPUT_KEY_PLAY 207 /**< Play Key */ 143 #define INPUT_KEY_POWER 116 /**< Power Key */ 144 #define INPUT_KEY_PRINT 210 /**< Print Key */ 145 #define INPUT_KEY_Q 16 /**< Q Key */ 146 #define INPUT_KEY_R 19 /**< R Key */ 147 #define INPUT_KEY_RIGHT 106 /**< Right Key */ 148 #define INPUT_KEY_RIGHTBRACE 27 /**< Right Brace Key */ 149 #define INPUT_KEY_RIGHTMETA 126 /**< Right Meta Key */ 150 #define INPUT_KEY_RIGHTSHIFT 54 /**< Right Shift Key */ 151 #define INPUT_KEY_S 31 /**< S Key */ 152 #define INPUT_KEY_SCALE 120 /**< Scale Key */ 153 #define INPUT_KEY_SCROLLLOCK 70 /**< Scroll Lock Key */ 154 #define INPUT_KEY_SEMICOLON 39 /**< Semicolon Key */ 155 #define INPUT_KEY_SLASH 53 /**< Slash Key */ 156 #define INPUT_KEY_SLEEP 142 /**< System Sleep Key */ 157 #define INPUT_KEY_SPACE 57 /**< Space Key */ 158 #define INPUT_KEY_T 20 /**< T Key */ 159 #define INPUT_KEY_TAB 15 /**< Tab Key*/ 160 #define INPUT_KEY_U 22 /**< U Key */ 161 #define INPUT_KEY_UP 103 /**< Up Key */ 162 #define INPUT_KEY_UWB 239 /**< Ultra-Wideband Key */ 163 #define INPUT_KEY_V 47 /**< V Key */ 164 #define INPUT_KEY_VOLUMEDOWN 114 /**< Volume Down Key */ 165 #define INPUT_KEY_VOLUMEUP 115 /**< Volume Up Key */ 166 #define INPUT_KEY_W 17 /**< W Key */ 167 #define INPUT_KEY_WAKEUP 143 /**< System Wake Up Key */ 168 #define INPUT_KEY_WLAN 238 /**< Wireless LAN Key */ 169 #define INPUT_KEY_X 45 /**< X Key */ 170 #define INPUT_KEY_Y 21 /**< Y Key */ 171 #define INPUT_KEY_Z 44 /**< Z Key */ 172 /** @} */ 173 174 175 /** 176 * @name Input event BTN codes. 177 * @anchor INPUT_BTN_CODES 178 * @{ 179 */ 180 #define INPUT_BTN_0 0x100 /**< 0 button */ 181 #define INPUT_BTN_1 0x101 /**< 1 button */ 182 #define INPUT_BTN_2 0x102 /**< 2 button */ 183 #define INPUT_BTN_3 0x103 /**< 3 button */ 184 #define INPUT_BTN_4 0x104 /**< 4 button */ 185 #define INPUT_BTN_5 0x105 /**< 5 button */ 186 #define INPUT_BTN_6 0x106 /**< 6 button */ 187 #define INPUT_BTN_7 0x107 /**< 7 button */ 188 #define INPUT_BTN_8 0x108 /**< 8 button */ 189 #define INPUT_BTN_9 0x109 /**< 9 button */ 190 #define INPUT_BTN_A BTN_SOUTH /**< A button */ 191 #define INPUT_BTN_B BTN_EAST /**< B button */ 192 #define INPUT_BTN_C 0x132 /**< C button */ 193 #define INPUT_BTN_DPAD_DOWN 0x221 /**< Directional pad Down */ 194 #define INPUT_BTN_DPAD_LEFT 0x222 /**< Directional pad Left */ 195 #define INPUT_BTN_DPAD_RIGHT 0x223 /**< Directional pad Right */ 196 #define INPUT_BTN_DPAD_UP 0x220 /**< Directional pad Up */ 197 #define INPUT_BTN_EAST 0x131 /**< East button */ 198 #define INPUT_BTN_GEAR_DOWN 0x150 /**< Gear Up button */ 199 #define INPUT_BTN_GEAR_UP 0x151 /**< Gear Down button */ 200 #define INPUT_BTN_LEFT 0x110 /**< Left button */ 201 #define INPUT_BTN_MIDDLE 0x112 /**< Middle button */ 202 #define INPUT_BTN_MODE 0x13c /**< Mode button */ 203 #define INPUT_BTN_NORTH 0x133 /**< North button */ 204 #define INPUT_BTN_RIGHT 0x111 /**< Right button */ 205 #define INPUT_BTN_SELECT 0x13a /**< Select button */ 206 #define INPUT_BTN_SOUTH 0x130 /**< South button */ 207 #define INPUT_BTN_START 0x13b /**< Start button */ 208 #define INPUT_BTN_THUMBL 0x13d /**< Left thumbstick button */ 209 #define INPUT_BTN_THUMBR 0x13e /**< Right thumbstick button */ 210 #define INPUT_BTN_TL 0x136 /**< Left trigger (L1) */ 211 #define INPUT_BTN_TL2 0x138 /**< Left trigger 2 (L2) */ 212 #define INPUT_BTN_TOUCH 0x14a /**< Touchscreen touch */ 213 #define INPUT_BTN_TR 0x137 /**< Right trigger (R1) */ 214 #define INPUT_BTN_TR2 0x139 /**< Right trigger 2 (R2) */ 215 #define INPUT_BTN_WEST 0x134 /**< West button */ 216 #define INPUT_BTN_X BTN_NORTH /**< X button */ 217 #define INPUT_BTN_Y BTN_WEST /**< Y button */ 218 #define INPUT_BTN_Z 0x135 /**< Z button */ 219 /** @} */ 220 221 /** 222 * @name Input event ABS codes. 223 * @anchor INPUT_ABS_CODES 224 * @{ 225 */ 226 #define INPUT_ABS_BRAKE 0x0a /**< Absolute brake position */ 227 #define INPUT_ABS_GAS 0x09 /**< Absolute gas position */ 228 #define INPUT_ABS_RUDDER 0x07 /**< Absolute rudder position */ 229 #define INPUT_ABS_RX 0x03 /**< Absolute rotation around X axis */ 230 #define INPUT_ABS_RY 0x04 /**< Absolute rotation around Y axis */ 231 #define INPUT_ABS_RZ 0x05 /**< Absolute rotation around Z axis */ 232 #define INPUT_ABS_THROTTLE 0x06 /**< Absolute throttle position */ 233 #define INPUT_ABS_WHEEL 0x08 /**< Absolute wheel position */ 234 #define INPUT_ABS_X 0x00 /**< Absolute X coordinate */ 235 #define INPUT_ABS_Y 0x01 /**< Absolute Y coordinate */ 236 #define INPUT_ABS_Z 0x02 /**< Absolute Z coordinate */ 237 /** @} */ 238 239 /** 240 * @name Input event REL codes. 241 * @anchor INPUT_REL_CODES 242 * @{ 243 */ 244 #define INPUT_REL_DIAL 0x07 /**< Relative dial coordinate */ 245 #define INPUT_REL_HWHEEL 0x06 /**< Relative horizontal wheel coordinate */ 246 #define INPUT_REL_MISC 0x09 /**< Relative misc coordinate */ 247 #define INPUT_REL_RX 0x03 /**< Relative rotation around X axis */ 248 #define INPUT_REL_RY 0x04 /**< Relative rotation around Y axis */ 249 #define INPUT_REL_RZ 0x05 /**< Relative rotation around Z axis */ 250 #define INPUT_REL_WHEEL 0x08 /**< Relative wheel coordinate */ 251 #define INPUT_REL_X 0x00 /**< Relative X coordinate */ 252 #define INPUT_REL_Y 0x01 /**< Relative Y coordinate */ 253 #define INPUT_REL_Z 0x02 /**< Relative Z coordinate */ 254 /** @} */ 255 256 /** 257 * @name Input event MSC codes. 258 * @anchor INPUT_MSC_CODES 259 * @{ 260 */ 261 #define INPUT_MSC_SCAN 0x04 /**< Scan code */ 262 /** @} */ 263 264 /** @} */ 265 266 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_INPUT_INPUT_EVENT_CODES_H_ */ 267