Human Interface Devices (HID)
Common USB HID part that can be used outside of USB support, defined in header file include/zephyr/usb/class/hid.h.
HID types reference
- group usb_hid_definitions
hid.h API
USB HID types and values
-
USB_HID_VERSION
HID Specification release v1.11.
-
USB_DESC_HID
USB HID Class HID descriptor type.
-
USB_DESC_HID_REPORT
USB HID Class Report descriptor type.
-
USB_DESC_HID_PHYSICAL
USB HID Class physical descriptor type.
-
USB_HID_GET_REPORT
USB HID Class GetReport bRequest value.
-
USB_HID_GET_IDLE
USB HID Class GetIdle bRequest value.
-
USB_HID_GET_PROTOCOL
USB HID Class GetProtocol bRequest value.
-
USB_HID_SET_REPORT
USB HID Class SetReport bRequest value.
-
USB_HID_SET_IDLE
USB HID Class SetIdle bRequest value.
-
USB_HID_SET_PROTOCOL
USB HID Class SetProtocol bRequest value.
-
HID_BOOT_IFACE_CODE_NONE
USB HID Boot Interface Protocol (bInterfaceProtocol) Code None.
-
HID_BOOT_IFACE_CODE_KEYBOARD
USB HID Boot Interface Protocol (bInterfaceProtocol) Code Keyboard.
-
HID_BOOT_IFACE_CODE_MOUSE
USB HID Boot Interface Protocol (bInterfaceProtocol) Code Mouse.
-
HID_PROTOCOL_BOOT
USB HID Class Boot protocol code.
-
HID_PROTOCOL_REPORT
USB HID Class Report protocol code.
-
HID_ITEM_TYPE_MAIN
HID Main item type.
-
HID_ITEM_TYPE_GLOBAL
HID Global item type.
-
HID_ITEM_TYPE_LOCAL
HID Local item type.
-
HID_ITEM_TAG_INPUT
HID Input item tag.
-
HID_ITEM_TAG_OUTPUT
HID Output item tag.
-
HID_ITEM_TAG_COLLECTION
HID Collection item tag.
-
HID_ITEM_TAG_FEATURE
HID Feature item tag.
-
HID_ITEM_TAG_COLLECTION_END
HID End Collection item tag.
-
HID_ITEM_TAG_USAGE_PAGE
HID Usage Page item tag.
-
HID_ITEM_TAG_LOGICAL_MIN
HID Logical Minimum item tag.
-
HID_ITEM_TAG_LOGICAL_MAX
HID Logical Maximum item tag.
-
HID_ITEM_TAG_PHYSICAL_MIN
HID Physical Minimum item tag.
-
HID_ITEM_TAG_PHYSICAL_MAX
HID Physical Maximum item tag.
-
HID_ITEM_TAG_UNIT_EXPONENT
HID Unit Exponent item tag.
-
HID_ITEM_TAG_UNIT
HID Unit item tag.
-
HID_ITEM_TAG_REPORT_SIZE
HID Report Size item tag.
-
HID_ITEM_TAG_REPORT_ID
HID Report ID item tag.
-
HID_ITEM_TAG_REPORT_COUNT
HID Report count item tag.
-
HID_ITEM_TAG_USAGE
HID Usage item tag.
-
HID_ITEM_TAG_USAGE_MIN
HID Usage Minimum item tag.
-
HID_ITEM_TAG_USAGE_MAX
HID Usage Maximum item tag.
-
HID_COLLECTION_PHYSICAL
Physical collection type.
-
HID_COLLECTION_APPLICATION
Application collection type.
-
HID_COLLECTION_LOGICAL
Logical collection type.
-
HID_COLLECTION_REPORT
Report collection type.
-
HID_COLLECTION_NAMED_ARRAY
Named Array collection type.
-
HID_COLLECTION_USAGE_SWITCH
Usage Switch collection type.
-
HID_COLLECTION_MODIFIER
Modifier collection type.
-
HID_USAGE_GEN_DESKTOP
HID Generic Desktop Controls Usage page.
-
HID_USAGE_GEN_KEYBOARD
HID Keyboard Usage page.
-
HID_USAGE_GEN_LEDS
HID LEDs Usage page.
-
HID_USAGE_GEN_BUTTON
HID Button Usage page.
-
HID_USAGE_GEN_DESKTOP_UNDEFINED
HID Generic Desktop Undefined Usage ID.
-
HID_USAGE_GEN_DESKTOP_POINTER
HID Generic Desktop Pointer Usage ID.
-
HID_USAGE_GEN_DESKTOP_MOUSE
HID Generic Desktop Mouse Usage ID.
-
HID_USAGE_GEN_DESKTOP_JOYSTICK
HID Generic Desktop Joystick Usage ID.
-
HID_USAGE_GEN_DESKTOP_GAMEPAD
HID Generic Desktop Gamepad Usage ID.
-
HID_USAGE_GEN_DESKTOP_KEYBOARD
HID Generic Desktop Keyboard Usage ID.
-
HID_USAGE_GEN_DESKTOP_KEYPAD
HID Generic Desktop Keypad Usage ID.
-
HID_USAGE_GEN_DESKTOP_X
HID Generic Desktop X Usage ID.
-
HID_USAGE_GEN_DESKTOP_Y
HID Generic Desktop Y Usage ID.
-
HID_USAGE_GEN_DESKTOP_WHEEL
HID Generic Desktop Wheel Usage ID.
-
USB_HID_VERSION
HID items reference
- group usb_hid_items
Defines
-
HID_ITEM(bTag, bType, bSize)
Define HID short item.
- Parameters:
bTag – Item tag
bType – Item type
bSize – Item data size
- Returns:
HID Input item
-
HID_INPUT(a)
Define HID Input item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Input item data
- Returns:
HID Input item
-
HID_OUTPUT(a)
Define HID Output item with the data length of one byte.
For usage examples, see HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Output item data
- Returns:
HID Output item
-
HID_FEATURE(a)
Define HID Feature item with the data length of one byte.
- Parameters:
a – Feature item data
- Returns:
HID Feature item
-
HID_COLLECTION(a)
Define HID Collection item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Collection item data
- Returns:
HID Collection item
-
HID_END_COLLECTION
Define HID End Collection (non-data) item.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Returns:
HID End Collection item
-
HID_USAGE_PAGE(page)
Define HID Usage Page item.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
page – Usage Page
- Returns:
HID Usage Page item
-
HID_LOGICAL_MIN8(a)
Define HID Logical Minimum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Minimum value in logical units
- Returns:
HID Logical Minimum item
-
HID_LOGICAL_MAX8(a)
Define HID Logical Maximum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Maximum value in logical units
- Returns:
HID Logical Maximum item
-
HID_LOGICAL_MIN16(a, b)
Define HID Logical Minimum item with the data length of two bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value higher byte
- Returns:
HID Logical Minimum item
-
HID_LOGICAL_MAX16(a, b)
Define HID Logical Maximum item with the data length of two bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value higher byte
- Returns:
HID Logical Maximum item
-
HID_LOGICAL_MIN32(a, b, c, d)
Define HID Logical Minimum item with the data length of four bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value low middle byte
c – Minimum value high middle byte
d – Minimum value higher byte
- Returns:
HID Logical Minimum item
-
HID_LOGICAL_MAX32(a, b, c, d)
Define HID Logical Maximum item with the data length of four bytes.
- Parameters:
a – Minimum value lower byte
b – Minimum value low middle byte
c – Minimum value high middle byte
d – Minimum value higher byte
- Returns:
HID Logical Maximum item
-
HID_REPORT_SIZE(size)
Define HID Report Size item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
size – Report field size in bits
- Returns:
HID Report Size item
-
HID_REPORT_ID(id)
Define HID Report ID item with the data length of one byte.
- Parameters:
id – Report ID
- Returns:
HID Report ID item
-
HID_REPORT_COUNT(count)
Define HID Report Count item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
count – Number of data fields included in the report
- Returns:
HID Report Count item
-
HID_USAGE(idx)
Define HID Usage Index item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
idx – Number of data fields included in the report
- Returns:
HID Usage Index item
-
HID_USAGE_MIN8(a)
Define HID Usage Minimum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Starting Usage
- Returns:
HID Usage Minimum item
-
HID_USAGE_MAX8(a)
Define HID Usage Maximum item with the data length of one byte.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Ending Usage
- Returns:
HID Usage Maximum item
-
HID_USAGE_MIN16(a, b)
Define HID Usage Minimum item with the data length of two bytes.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Starting Usage lower byte
b – Starting Usage higher byte
- Returns:
HID Usage Minimum item
-
HID_USAGE_MAX16(a, b)
Define HID Usage Maximum item with the data length of two bytes.
For usage examples, see HID_MOUSE_REPORT_DESC(), HID_KEYBOARD_REPORT_DESC()
- Parameters:
a – Ending Usage lower byte
b – Ending Usage higher byte
- Returns:
HID Usage Maximum item
-
HID_ITEM(bTag, bType, bSize)
HID Mouse and Keyboard report descriptors
The pre-defined Mouse and Keyboard report descriptors can be used by a HID device implementation or simply as examples.
- group usb_hid_mk_report_desc
Defines
-
HID_MOUSE_REPORT_DESC(bcnt)
Simple HID mouse report descriptor for n button mouse.
- Parameters:
bcnt – Button count. Allowed values from 1 to 8.
-
HID_KEYBOARD_REPORT_DESC()
Simple HID keyboard report descriptor.
Enums
-
enum hid_kbd_code
HID keyboard button codes.
Values:
-
enumerator HID_KEY_A = 4
-
enumerator HID_KEY_B = 5
-
enumerator HID_KEY_C = 6
-
enumerator HID_KEY_D = 7
-
enumerator HID_KEY_E = 8
-
enumerator HID_KEY_F = 9
-
enumerator HID_KEY_G = 10
-
enumerator HID_KEY_H = 11
-
enumerator HID_KEY_I = 12
-
enumerator HID_KEY_J = 13
-
enumerator HID_KEY_K = 14
-
enumerator HID_KEY_L = 15
-
enumerator HID_KEY_M = 16
-
enumerator HID_KEY_N = 17
-
enumerator HID_KEY_O = 18
-
enumerator HID_KEY_P = 19
-
enumerator HID_KEY_Q = 20
-
enumerator HID_KEY_R = 21
-
enumerator HID_KEY_S = 22
-
enumerator HID_KEY_T = 23
-
enumerator HID_KEY_U = 24
-
enumerator HID_KEY_V = 25
-
enumerator HID_KEY_W = 26
-
enumerator HID_KEY_X = 27
-
enumerator HID_KEY_Y = 28
-
enumerator HID_KEY_Z = 29
-
enumerator HID_KEY_1 = 30
-
enumerator HID_KEY_2 = 31
-
enumerator HID_KEY_3 = 32
-
enumerator HID_KEY_4 = 33
-
enumerator HID_KEY_5 = 34
-
enumerator HID_KEY_6 = 35
-
enumerator HID_KEY_7 = 36
-
enumerator HID_KEY_8 = 37
-
enumerator HID_KEY_9 = 38
-
enumerator HID_KEY_0 = 39
-
enumerator HID_KEY_ENTER = 40
-
enumerator HID_KEY_ESC = 41
-
enumerator HID_KEY_BACKSPACE = 42
-
enumerator HID_KEY_TAB = 43
-
enumerator HID_KEY_SPACE = 44
-
enumerator HID_KEY_MINUS = 45
-
enumerator HID_KEY_EQUAL = 46
-
enumerator HID_KEY_LEFTBRACE = 47
-
enumerator HID_KEY_RIGHTBRACE = 48
-
enumerator HID_KEY_BACKSLASH = 49
-
enumerator HID_KEY_HASH = 50
-
enumerator HID_KEY_SEMICOLON = 51
-
enumerator HID_KEY_APOSTROPHE = 52
-
enumerator HID_KEY_GRAVE = 53
-
enumerator HID_KEY_COMMA = 54
-
enumerator HID_KEY_DOT = 55
-
enumerator HID_KEY_SLASH = 56
-
enumerator HID_KEY_CAPSLOCK = 57
-
enumerator HID_KEY_F1 = 58
-
enumerator HID_KEY_F2 = 59
-
enumerator HID_KEY_F3 = 60
-
enumerator HID_KEY_F4 = 61
-
enumerator HID_KEY_F5 = 62
-
enumerator HID_KEY_F6 = 63
-
enumerator HID_KEY_F7 = 64
-
enumerator HID_KEY_F8 = 65
-
enumerator HID_KEY_F9 = 66
-
enumerator HID_KEY_F10 = 67
-
enumerator HID_KEY_F11 = 68
-
enumerator HID_KEY_F12 = 69
-
enumerator HID_KEY_SYSRQ = 70
-
enumerator HID_KEY_SCROLLLOCK = 71
-
enumerator HID_KEY_PAUSE = 72
-
enumerator HID_KEY_INSERT = 73
-
enumerator HID_KEY_HOME = 74
-
enumerator HID_KEY_PAGEUP = 75
-
enumerator HID_KEY_DELETE = 76
-
enumerator HID_KEY_END = 77
-
enumerator HID_KEY_PAGEDOWN = 78
-
enumerator HID_KEY_RIGHT = 79
-
enumerator HID_KEY_LEFT = 80
-
enumerator HID_KEY_DOWN = 81
-
enumerator HID_KEY_UP = 82
-
enumerator HID_KEY_NUMLOCK = 83
-
enumerator HID_KEY_KPSLASH = 84
-
enumerator HID_KEY_KPASTERISK = 85
-
enumerator HID_KEY_KPMINUS = 86
-
enumerator HID_KEY_KPPLUS = 87
-
enumerator HID_KEY_KPENTER = 88
-
enumerator HID_KEY_KP_1 = 89
-
enumerator HID_KEY_KP_2 = 90
-
enumerator HID_KEY_KP_3 = 91
-
enumerator HID_KEY_KP_4 = 92
-
enumerator HID_KEY_KP_5 = 93
-
enumerator HID_KEY_KP_6 = 94
-
enumerator HID_KEY_KP_7 = 95
-
enumerator HID_KEY_KP_8 = 96
-
enumerator HID_KEY_KP_9 = 97
-
enumerator HID_KEY_KP_0 = 98
-
enumerator HID_KEY_A = 4
-
enum hid_kbd_modifier
HID keyboard modifiers.
Values:
-
enumerator HID_KBD_MODIFIER_NONE = 0x00
-
enumerator HID_KBD_MODIFIER_LEFT_CTRL = 0x01
-
enumerator HID_KBD_MODIFIER_LEFT_SHIFT = 0x02
-
enumerator HID_KBD_MODIFIER_LEFT_ALT = 0x04
-
enumerator HID_KBD_MODIFIER_LEFT_UI = 0x08
-
enumerator HID_KBD_MODIFIER_RIGHT_CTRL = 0x10
-
enumerator HID_KBD_MODIFIER_RIGHT_SHIFT = 0x20
-
enumerator HID_KBD_MODIFIER_RIGHT_ALT = 0x40
-
enumerator HID_KBD_MODIFIER_RIGHT_UI = 0x80
-
enumerator HID_KBD_MODIFIER_NONE = 0x00
-
HID_MOUSE_REPORT_DESC(bcnt)