|
|
@@ -114,7 +114,7 @@ enum
|
|
|
|
|
|
#endif
|
|
|
|
|
|
-uint8_t const desc_configuration[] =
|
|
|
+uint8_t const desc_fs_configuration[] =
|
|
|
{
|
|
|
// Config number, interface count, string index, total length, attribute, power in mA
|
|
|
TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
|
|
|
@@ -123,9 +123,22 @@ uint8_t const desc_configuration[] =
|
|
|
TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, EPNUM_CDC_NOTIF, 8, EPNUM_CDC_OUT, EPNUM_CDC_IN, 64),
|
|
|
|
|
|
// Interface number, string index, EP Out & EP In address, EP size
|
|
|
- TUD_MSC_DESCRIPTOR(ITF_NUM_MSC, 5, EPNUM_MSC_OUT, EPNUM_MSC_IN, TUD_OPT_HIGH_SPEED ? 512 : 64),
|
|
|
+ TUD_MSC_DESCRIPTOR(ITF_NUM_MSC, 5, EPNUM_MSC_OUT, EPNUM_MSC_IN, 64),
|
|
|
};
|
|
|
|
|
|
+#if TUD_OPT_HIGH_SPEED
|
|
|
+uint8_t const desc_hs_configuration[] =
|
|
|
+{
|
|
|
+ // Config number, interface count, string index, total length, attribute, power in mA
|
|
|
+ TUD_CONFIG_DESCRIPTOR(1, ITF_NUM_TOTAL, 0, CONFIG_TOTAL_LEN, TUSB_DESC_CONFIG_ATT_REMOTE_WAKEUP, 100),
|
|
|
+
|
|
|
+ // Interface number, string index, EP notification address and size, EP data address (out, in) and size.
|
|
|
+ TUD_CDC_DESCRIPTOR(ITF_NUM_CDC, 4, EPNUM_CDC_NOTIF, 8, EPNUM_CDC_OUT, EPNUM_CDC_IN, 512),
|
|
|
+
|
|
|
+ // Interface number, string index, EP Out & EP In address, EP size
|
|
|
+ TUD_MSC_DESCRIPTOR(ITF_NUM_MSC, 5, EPNUM_MSC_OUT, EPNUM_MSC_IN, 512),
|
|
|
+};
|
|
|
+#endif
|
|
|
|
|
|
// Invoked when received GET CONFIGURATION DESCRIPTOR
|
|
|
// Application return pointer to descriptor
|
|
|
@@ -133,7 +146,13 @@ uint8_t const desc_configuration[] =
|
|
|
uint8_t const * tud_descriptor_configuration_cb(uint8_t index)
|
|
|
{
|
|
|
(void) index; // for multiple configurations
|
|
|
- return desc_configuration;
|
|
|
+
|
|
|
+#if TUD_OPT_HIGH_SPEED
|
|
|
+ // Although we are highspeed, host may be fullspeed.
|
|
|
+ return (tud_speed_get() == TUSB_SPEED_HIGH ) ? desc_hs_configuration : desc_fs_configuration;
|
|
|
+#else
|
|
|
+ return desc_fs_configuration;
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------------+
|