unsigned char mouse_report[] = { HID_USAGE_PAGE_1B (HUP_GENERIC_DESKTOP), HID_USAGE_1B (HU_MOUSE), HID_COLLECTION (HID_APPLICATION), HID_USAGE_1B (HU_POINTER), HID_COLLECTION (HID_PHYSICAL), HID_USAGE_PAGE_1B (HUP_BUTTONS), HID_USAGE_MINIMUM (1), HID_USAGE_MAXIMUM (3), HID_LOGICAL_MINIMUM_1B (0), HID_LOGICAL_MAXIMUM_1B (1), HID_REPORT_COUNT (3), HID_REPORT_SIZE (1), HID_INPUT (HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_REPORT_COUNT (1), HID_REPORT_SIZE (5), HID_INPUT (HID_CONSTANT), HID_USAGE_PAGE_1B (HUP_GENERIC_DESKTOP), HID_USAGE_1B (HU_X), HID_USAGE_1B (HU_Y), HID_LOGICAL_MINIMUM_1B (-127), HID_LOGICAL_MAXIMUM_1B (127), HID_REPORT_SIZE (8), HID_REPORT_COUNT (2), HID_INPUT (HID_DATA | HID_VARIABLE | HID_RELATIVE), HID_END_COLLECTION, HID_END_COLLECTION };
.iProduct = 2, .iSerialNumber = 3, .bNumConfigurations = 1, }; static const uint8_t hid_report_descriptor[] = { 0x06, 0x00, 0xff, HID_USAGE (0x01), HID_COLLECTION (HID_COLLECTION_APPLICATION), HID_REPORT_ID(1), HID_LOGICAL_MINIMUM (0), HID_LOGICAL_MAXIMUM (255), HID_REPORT_SIZE (8), HID_REPORT_COUNT (9), HID_USAGE (0x01), HID_INPUT (0x02), HID_END_COLLECTION, 0x06, 0x00, 0xff, HID_USAGE (0x01), HID_COLLECTION (HID_COLLECTION_APPLICATION), HID_REPORT_ID(2), HID_LOGICAL_MINIMUM (0), HID_LOGICAL_MAXIMUM (255), HID_REPORT_SIZE (8), HID_REPORT_COUNT (MAX_PACKET_SIZE), HID_USAGE (0x01), HID_INPUT (0x02), HID_END_COLLECTION, }; static const struct {
item must start on a byte boundary to satisfy this condition. - USB HID 1.11 Specification, p. 57 */ local const u8 PROGMEM NkroKeyboardReportDescriptor[] = { HID_USAGE_PAGE (8, HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS), HID_USAGE (8, HID_DESKTOP_KEYBOARD), HID_COLLECTION (8, HID_COLLECTION_APPLICATION), HID_USAGE_PAGE (8, HID_USAGE_PAGE_KEYBOARD_KEYPAD), HID_LOGICAL_MINIMUM (8, 0x00), HID_LOGICAL_MAXIMUM (8, 0x01), HID_REPORT_SIZE (8, 0x01), HID_REPORT_COUNT (8, 0x20), HID_USAGE_MINIMUM (8, 0x00), HID_USAGE_MAXIMUM (8, 0x1F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x20), HID_USAGE_MAXIMUM (8, 0x3F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x40), HID_USAGE_MAXIMUM (8, 0x5F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x60), HID_USAGE_MAXIMUM (8, 0x7F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x80), HID_USAGE_MAXIMUM (8, 0x9F),
HID_USAGE_PAGE_SENSOR, HID_USAGE_SENSOR_STATE, HID_LOGICAL_MIN_8(0), HID_LOGICAL_MAX_8(6), HID_REPORT_SIZE(8), HID_REPORT_COUNT(1), HID_COLLECTION(Logical), HID_USAGE_SENSOR_STATE_UNKNOWN_SEL_SEL, HID_USAGE_SENSOR_STATE_READY_SEL_SEL, HID_USAGE_SENSOR_STATE_NOT_AVAILABLE_SEL_SEL, HID_USAGE_SENSOR_STATE_NO_DATA_SEL_SEL, HID_USAGE_SENSOR_STATE_INITIALIZING_SEL_SEL, HID_USAGE_SENSOR_STATE_ACCESS_DENIED_SEL_SEL, HID_USAGE_SENSOR_STATE_ERROR_SEL_SEL, HID_INPUT(Data_Arr_Abs), HID_END_COLLECTION, HID_USAGE_SENSOR_EVENT, HID_LOGICAL_MIN_8(0), HID_LOGICAL_MAX_8(5), HID_REPORT_SIZE(8), HID_REPORT_COUNT(1), HID_COLLECTION(Logical), HID_USAGE_SENSOR_EVENT_UNKNOWN_SEL_SEL, HID_USAGE_SENSOR_EVENT_STATE_CHANGED_SEL_SEL, HID_USAGE_SENSOR_EVENT_PROPERTY_CHANGED_SEL_SEL, HID_USAGE_SENSOR_EVENT_DATA_UPDATED_SEL_SEL, HID_USAGE_SENSOR_EVENT_POLL_RESPONSE_SEL_SEL, HID_USAGE_SENSOR_EVENT_CHANGE_SENSITIVITY_SEL_SEL, HID_INPUT(Data_Arr_Abs),