Skip to content

Commit 6b686ae

Browse files
committed
Modeled descriptor exactly after CM108 instead of generic 4 bytes unassigned input/output so that the USB hid host driver will actually start polling the interrupt endpoint
1 parent 7b25bf9 commit 6b686ae

1 file changed

Lines changed: 29 additions & 11 deletions

File tree

stm32/aioc-fw/Src/usb_descriptors.c

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,22 +57,40 @@ uint8_t const* tud_descriptor_device_cb(void) {
5757
//--------------------------------------------------------------------+
5858

5959
uint8_t const desc_hid_report[] = {
60-
/* CM108 emulation */
60+
/* CM108 emulation. */
6161
HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ),
6262
HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ),
6363
HID_COLLECTION ( HID_COLLECTION_APPLICATION ),
64-
/* Input */
65-
HID_USAGE ( 0x00 ),
66-
HID_LOGICAL_MIN ( 0x00 ),
67-
HID_LOGICAL_MAX_N ( 0xff, 2 ),
68-
HID_REPORT_SIZE ( 8 ),
69-
HID_REPORT_COUNT( 4 ),
70-
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
71-
/* Output */
72-
HID_USAGE ( 0x00 ),
64+
/* Volume Up/Dn */
7365
HID_LOGICAL_MIN ( 0x00 ),
74-
HID_LOGICAL_MAX_N ( 0xff, 2 ),
66+
HID_LOGICAL_MAX ( 0x01 ),
67+
HID_USAGE ( 0xE9 /* Volume Inc */ ),
68+
HID_USAGE ( 0xEA /* Volume Dec */ ),
69+
HID_REPORT_SIZE ( 1 ),
70+
HID_REPORT_COUNT( 2 ),
71+
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
72+
/* Mute */
73+
HID_USAGE ( 0xE2 /* Volume Mute */ ),
74+
HID_USAGE ( 0x00 /* Unassigned */ ),
75+
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ),
76+
/* Hook Switch */
77+
HID_USAGE_PAGE ( HID_USAGE_PAGE_TELEPHONY ),
78+
HID_USAGE ( 0x20 /* Hook Switch */ ),
79+
HID_REPORT_COUNT( 1 ),
80+
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE | HID_NULL_STATE),
81+
/* Filler */
82+
HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ),
83+
HID_USAGE ( 0x00 /* Unassigned */ ),
84+
HID_REPORT_COUNT( 3 ),
85+
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
86+
/* GPIO and Status */
87+
HID_LOGICAL_MAX_N ( 0xFF, 2 ),
88+
HID_USAGE ( 0x00 /* Unassigned */ ),
7589
HID_REPORT_SIZE ( 8 ),
90+
HID_REPORT_COUNT( 3 ),
91+
HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
92+
/* Output */
93+
HID_USAGE ( 0x00 /* Unassigned */ ),
7694
HID_REPORT_COUNT( 4 ),
7795
HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ),
7896
HID_COLLECTION_END

0 commit comments

Comments
 (0)