diff --git a/platform/samd11/usb_descriptors.c b/platform/samd11/usb_descriptors.c index b5936f4..4fe3b30 100644 --- a/platform/samd11/usb_descriptors.c +++ b/platform/samd11/usb_descriptors.c @@ -110,23 +110,21 @@ const alignas(4) usb_configuration_hierarchy_t usb_configuration_hierarchy = }, }; -const alignas(4) uint8_t usb_hid_report_descriptor[33] = +const alignas(4) uint8_t usb_hid_report_descriptor[28] = { - 0x06, 0x00, 0xff, // Usage Page (Vendor Defined 0xFF00) - 0x09, 0x01, // Usage (0x01) + 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) + 0x09, 0x00, // Usage (Undefined) 0xa1, 0x01, // Collection (Application) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xff, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) - 0x09, 0x01, // Usage (0x01) - 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x09, 0x00, // Usage (Undefined) + 0x81, 0x82, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) - 0x09, 0x01, // Usage (0x01) - 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) - 0x95, 0x01, // Report Count (1) - 0x09, 0x01, // Usage (0x01) - 0xb1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0x09, 0x00, // Usage (Undefined) + 0x91, 0x82, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) 0xc0, // End Collection }; diff --git a/platform/samd11/usb_descriptors.h b/platform/samd11/usb_descriptors.h index b2fbb43..4a16c0a 100644 --- a/platform/samd11/usb_descriptors.h +++ b/platform/samd11/usb_descriptors.h @@ -76,7 +76,7 @@ typedef struct PACK //----------------------------------------------------------------------------- extern const usb_device_descriptor_t usb_device_descriptor; extern const usb_configuration_hierarchy_t usb_configuration_hierarchy; -extern const uint8_t usb_hid_report_descriptor[33]; +extern const uint8_t usb_hid_report_descriptor[28]; extern const usb_string_descriptor_zero_t usb_string_descriptor_zero; extern const char *const usb_strings[]; diff --git a/platform/samd11_vcp/usb_descriptors.c b/platform/samd11_vcp/usb_descriptors.c index e2bb905..7d54785 100644 --- a/platform/samd11_vcp/usb_descriptors.c +++ b/platform/samd11_vcp/usb_descriptors.c @@ -212,23 +212,21 @@ const alignas(4) usb_configuration_hierarchy_t usb_configuration_hierarchy = }, }; -const alignas(4) uint8_t usb_hid_report_descriptor[33] = +const alignas(4) uint8_t usb_hid_report_descriptor[28] = { - 0x06, 0x00, 0xff, // Usage Page (Vendor Defined 0xFF00) - 0x09, 0x01, // Usage (0x01) + 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) + 0x09, 0x00, // Usage (Undefined) 0xa1, 0x01, // Collection (Application) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xff, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) - 0x09, 0x01, // Usage (0x01) - 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x09, 0x00, // Usage (Undefined) + 0x81, 0x82, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) - 0x09, 0x01, // Usage (0x01) - 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) - 0x95, 0x01, // Report Count (1) - 0x09, 0x01, // Usage (0x01) - 0xb1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0x09, 0x00, // Usage (Undefined) + 0x91, 0x82, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) 0xc0, // End Collection }; diff --git a/platform/samd11_vcp/usb_descriptors.h b/platform/samd11_vcp/usb_descriptors.h index e6d3638..cc9b05b 100644 --- a/platform/samd11_vcp/usb_descriptors.h +++ b/platform/samd11_vcp/usb_descriptors.h @@ -79,7 +79,7 @@ typedef struct PACK //----------------------------------------------------------------------------- extern const usb_device_descriptor_t usb_device_descriptor; extern const usb_configuration_hierarchy_t usb_configuration_hierarchy; -extern const uint8_t usb_hid_report_descriptor[33]; +extern const uint8_t usb_hid_report_descriptor[28]; extern const usb_string_descriptor_zero_t usb_string_descriptor_zero; extern const char *usb_strings[]; extern char usb_serial_number[16]; diff --git a/platform/samd21/usb_descriptors.c b/platform/samd21/usb_descriptors.c index b5e140b..ba35608 100644 --- a/platform/samd21/usb_descriptors.c +++ b/platform/samd21/usb_descriptors.c @@ -110,23 +110,21 @@ const alignas(4) usb_configuration_hierarchy_t usb_configuration_hierarchy = }, }; -const alignas(4) uint8_t usb_hid_report_descriptor[33] = +const alignas(4) uint8_t usb_hid_report_descriptor[28] = { - 0x06, 0x00, 0xff, // Usage Page (Vendor Defined 0xFF00) - 0x09, 0x01, // Usage (0x01) + 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) + 0x09, 0x00, // Usage (Undefined) 0xa1, 0x01, // Collection (Application) 0x15, 0x00, // Logical Minimum (0) 0x26, 0xff, 0x00, // Logical Maximum (255) 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) - 0x09, 0x01, // Usage (0x01) - 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x09, 0x00, // Usage (Undefined) + 0x81, 0x82, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x75, 0x08, // Report Size (8) 0x95, 0x40, // Report Count (64) - 0x09, 0x01, // Usage (0x01) - 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) - 0x95, 0x01, // Report Count (1) - 0x09, 0x01, // Usage (0x01) - 0xb1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0x09, 0x00, // Usage (Undefined) + 0x91, 0x82, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Volatile) 0xc0, // End Collection }; diff --git a/platform/samd21/usb_descriptors.h b/platform/samd21/usb_descriptors.h index b2fbb43..4a16c0a 100644 --- a/platform/samd21/usb_descriptors.h +++ b/platform/samd21/usb_descriptors.h @@ -76,7 +76,7 @@ typedef struct PACK //----------------------------------------------------------------------------- extern const usb_device_descriptor_t usb_device_descriptor; extern const usb_configuration_hierarchy_t usb_configuration_hierarchy; -extern const uint8_t usb_hid_report_descriptor[33]; +extern const uint8_t usb_hid_report_descriptor[28]; extern const usb_string_descriptor_zero_t usb_string_descriptor_zero; extern const char *const usb_strings[];