Remove MSC related code from usb_descriptor.[ch]
This commit is contained in:
@@ -78,43 +78,6 @@ usb_device_class_struct_t g_hid_generic_class = {
|
|||||||
USB_CONFIGURE_COUNT, /* The configuration count */
|
USB_CONFIGURE_COUNT, /* The configuration count */
|
||||||
};
|
};
|
||||||
|
|
||||||
/* msc disk information */
|
|
||||||
/* Define endpoint for MSC class */
|
|
||||||
usb_device_endpoint_struct_t g_msc_disk_endpoints[USB_MSC_ENDPOINT_COUNT] = {
|
|
||||||
{
|
|
||||||
USB_MSC_BULK_IN_ENDPOINT | (USB_IN << 7), USB_ENDPOINT_BULK, FS_BULK_IN_PACKET_SIZE,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
USB_MSC_BULK_OUT_ENDPOINT | (USB_OUT << 7), USB_ENDPOINT_BULK, FS_BULK_OUT_PACKET_SIZE,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Define interface for MSC class */
|
|
||||||
usb_device_interface_struct_t g_msc_disk_interface[] = { {
|
|
||||||
0,
|
|
||||||
{
|
|
||||||
USB_MSC_ENDPOINT_COUNT, g_msc_disk_endpoints,
|
|
||||||
},
|
|
||||||
} };
|
|
||||||
|
|
||||||
/* Define interfaces for MSC disk */
|
|
||||||
usb_device_interfaces_struct_t g_msc_disk_interfaces[USB_MSC_INTERFACE_COUNT] = { {
|
|
||||||
USB_MSC_CLASS, USB_MSC_SUBCLASS, USB_MSC_PROTOCOL, USB_MSC_INTERFACE_INDEX, g_msc_disk_interface,
|
|
||||||
sizeof(g_msc_disk_interface) / sizeof(usb_device_interfaces_struct_t),
|
|
||||||
} };
|
|
||||||
|
|
||||||
/* Define configurations for MSC disk */
|
|
||||||
usb_device_interface_list_t g_msc_disk_interface_list[USB_CONFIGURE_COUNT] = {
|
|
||||||
{
|
|
||||||
USB_MSC_INTERFACE_COUNT, g_msc_disk_interfaces,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Define class information for MSC disk */
|
|
||||||
usb_device_class_struct_t g_msc_class = {
|
|
||||||
g_msc_disk_interface_list, kUSB_DeviceClassTypeMsc, USB_CONFIGURE_COUNT,
|
|
||||||
};
|
|
||||||
|
|
||||||
uint8_t g_hid_generic_report_descriptor[USB_HID_REPORT_DESC_SIZE] = {
|
uint8_t g_hid_generic_report_descriptor[USB_HID_REPORT_DESC_SIZE] = {
|
||||||
0x06,
|
0x06,
|
||||||
0x00,
|
0x00,
|
||||||
@@ -157,11 +120,7 @@ uint8_t g_device_descriptor[USB_DEVICE_DESCRIPTOR_LENGTH] = {
|
|||||||
/* Product string index */
|
/* Product string index */
|
||||||
0x02,
|
0x02,
|
||||||
/* Serial number string index */
|
/* Serial number string index */
|
||||||
#if (USB_DEVICE_CONFIG_MSC > 0)
|
|
||||||
0x03,
|
|
||||||
#else
|
|
||||||
0x00,
|
0x00,
|
||||||
#endif
|
|
||||||
/* Number of configurations */
|
/* Number of configurations */
|
||||||
USB_CONFIGURE_COUNT,
|
USB_CONFIGURE_COUNT,
|
||||||
};
|
};
|
||||||
@@ -187,7 +146,6 @@ uint8_t g_config_descriptor[USB_CONFIGURE_DESCRIPTOR_LENGTH] = {
|
|||||||
/* Current draw from bus */
|
/* Current draw from bus */
|
||||||
USB_CONFIGURE_DRAWN,
|
USB_CONFIGURE_DRAWN,
|
||||||
|
|
||||||
#if USB_DEVICE_CONFIG_HID
|
|
||||||
/* Interface Descriptor */
|
/* Interface Descriptor */
|
||||||
USB_INTERFACE_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_INTERFACE, USB_HID_GENERIC_INTERFACE_INDEX, 0x00,
|
USB_INTERFACE_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_INTERFACE, USB_HID_GENERIC_INTERFACE_INDEX, 0x00,
|
||||||
USB_HID_GENERIC_ENDPOINT_COUNT, USB_HID_GENERIC_CLASS, USB_HID_GENERIC_SUBCLASS, USB_HID_GENERIC_PROTOCOL, 0x03,
|
USB_HID_GENERIC_ENDPOINT_COUNT, USB_HID_GENERIC_CLASS, USB_HID_GENERIC_SUBCLASS, USB_HID_GENERIC_PROTOCOL, 0x03,
|
||||||
@@ -203,27 +161,6 @@ uint8_t g_config_descriptor[USB_CONFIGURE_DESCRIPTOR_LENGTH] = {
|
|||||||
/*Endpoint descriptor */
|
/*Endpoint descriptor */
|
||||||
USB_ENDPOINT_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_ENDPOINT, USB_HID_GENERIC_ENDPOINT_OUT | (USB_OUT << 7),
|
USB_ENDPOINT_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_ENDPOINT, USB_HID_GENERIC_ENDPOINT_OUT | (USB_OUT << 7),
|
||||||
USB_ENDPOINT_INTERRUPT, FS_HID_GENERIC_INTERRUPT_OUT_PACKET_SIZE, 0x00, FS_HID_GENERIC_INTERRUPT_OUT_INTERVAL,
|
USB_ENDPOINT_INTERRUPT, FS_HID_GENERIC_INTERRUPT_OUT_PACKET_SIZE, 0x00, FS_HID_GENERIC_INTERRUPT_OUT_INTERVAL,
|
||||||
|
|
||||||
#endif // USB_DEVICE_CONFIG_HID
|
|
||||||
|
|
||||||
#if USB_DEVICE_CONFIG_MSC
|
|
||||||
/* MSC Interface Descriptor */
|
|
||||||
USB_INTERFACE_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_INTERFACE, USB_MSC_INTERFACE_INDEX, 0x00,
|
|
||||||
USB_MSC_ENDPOINT_COUNT, USB_MSC_CLASS, USB_MSC_SUBCLASS, USB_MSC_PROTOCOL,
|
|
||||||
0x03, /* Interface Description String Index*/
|
|
||||||
|
|
||||||
/*Bulk IN Endpoint descriptor */
|
|
||||||
USB_ENDPOINT_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_ENDPOINT, USB_MSC_BULK_IN_ENDPOINT | (USB_IN << 7),
|
|
||||||
USB_ENDPOINT_BULK,
|
|
||||||
|
|
||||||
USB_SHORT_GET_LOW(FS_BULK_IN_PACKET_SIZE), USB_SHORT_GET_HIGH(FS_BULK_IN_PACKET_SIZE),
|
|
||||||
0x00, /* This value is ignored for Bulk ENDPOINT */
|
|
||||||
|
|
||||||
/*Bulk OUT Endpoint descriptor */
|
|
||||||
USB_ENDPOINT_DESCRIPTOR_LENGTH, USB_DESCRIPTOR_TYPE_ENDPOINT, USB_MSC_BULK_OUT_ENDPOINT | (USB_OUT << 7),
|
|
||||||
USB_ENDPOINT_BULK, USB_SHORT_GET_LOW(FS_BULK_OUT_PACKET_SIZE), USB_SHORT_GET_HIGH(FS_BULK_OUT_PACKET_SIZE),
|
|
||||||
0x00 /* This value is ignored for Bulk ENDPOINT */
|
|
||||||
#endif // USB_DEVICE_CONFIG_HID
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Define string descriptor */
|
/* Define string descriptor */
|
||||||
@@ -337,72 +274,7 @@ uint8_t g_usb_str_2[USB_STRING_DESCRIPTOR_2_LENGTH + USB_STRING_DESCRIPTOR_HEADE
|
|||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
#if ((USB_DEVICE_CONFIG_MSC > 0U) && (USB_DEVICE_CONFIG_HID > 0U)) // MSC + HID
|
|
||||||
uint8_t g_usb_str_3[USB_STRING_DESCRIPTOR_3_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
|
||||||
sizeof(g_usb_str_3),
|
|
||||||
USB_DESCRIPTOR_TYPE_STRING,
|
|
||||||
'M',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
'U',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'M',
|
|
||||||
0,
|
|
||||||
'S',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'A',
|
|
||||||
0,
|
|
||||||
'N',
|
|
||||||
0,
|
|
||||||
'D',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'H',
|
|
||||||
0,
|
|
||||||
'I',
|
|
||||||
0,
|
|
||||||
'D',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'G',
|
|
||||||
0,
|
|
||||||
'E',
|
|
||||||
0,
|
|
||||||
'N',
|
|
||||||
0,
|
|
||||||
'E',
|
|
||||||
0,
|
|
||||||
'R',
|
|
||||||
0,
|
|
||||||
'I',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'D',
|
|
||||||
0,
|
|
||||||
'E',
|
|
||||||
0,
|
|
||||||
'V',
|
|
||||||
0,
|
|
||||||
'I',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
'E',
|
|
||||||
0
|
|
||||||
};
|
|
||||||
#elif((USB_DEVICE_CONFIG_MSC == 0U) && (USB_DEVICE_CONFIG_HID > 0U)) // Only HID
|
|
||||||
uint8_t g_usb_str_3[USB_STRING_DESCRIPTOR_3_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
uint8_t g_usb_str_3[USB_STRING_DESCRIPTOR_3_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
||||||
sizeof(g_usb_str_3),
|
sizeof(g_usb_str_3),
|
||||||
USB_DESCRIPTOR_TYPE_STRING,
|
USB_DESCRIPTOR_TYPE_STRING,
|
||||||
@@ -451,44 +323,6 @@ uint8_t g_usb_str_3[USB_STRING_DESCRIPTOR_3_LENGTH + USB_STRING_DESCRIPTOR_HEADE
|
|||||||
'E',
|
'E',
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
#elif((USB_DEVICE_CONFIG_MSC > 0U) && (USB_DEVICE_CONFIG_HID == 0U)) // Only MSC
|
|
||||||
uint8_t g_usb_str_3[USB_STRING_DESCRIPTOR_3_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
|
||||||
sizeof(g_usb_str_3),
|
|
||||||
USB_DESCRIPTOR_TYPE_STRING,
|
|
||||||
'M',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
'U',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'M',
|
|
||||||
0,
|
|
||||||
'S',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
' ',
|
|
||||||
0,
|
|
||||||
'D',
|
|
||||||
0,
|
|
||||||
'E',
|
|
||||||
0,
|
|
||||||
'V',
|
|
||||||
0,
|
|
||||||
'I',
|
|
||||||
0,
|
|
||||||
'C',
|
|
||||||
0,
|
|
||||||
'E',
|
|
||||||
0
|
|
||||||
};
|
|
||||||
#else // None
|
|
||||||
uint8_t g_usb_str_3[USB_STRING_DESCRIPTOR_3_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
|
||||||
sizeof(g_usb_str_3), USB_DESCRIPTOR_TYPE_STRING, ' ', 0,
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint8_t g_usb_str_n[USB_STRING_DESCRIPTOR_ERROR_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
uint8_t g_usb_str_n[USB_STRING_DESCRIPTOR_ERROR_LENGTH + USB_STRING_DESCRIPTOR_HEADER_LENGTH] = {
|
||||||
sizeof(g_usb_str_n),
|
sizeof(g_usb_str_n),
|
||||||
@@ -662,60 +496,30 @@ usb_status_t usb_device_get_string_descriptor(usb_device_handle handle,
|
|||||||
usb_status_t usb_device_set_speed(usb_device_handle handle, uint8_t speed)
|
usb_status_t usb_device_set_speed(usb_device_handle handle, uint8_t speed)
|
||||||
{
|
{
|
||||||
usb_hid_config_descriptor_t *ptr_hid = NULL;
|
usb_hid_config_descriptor_t *ptr_hid = NULL;
|
||||||
usb_msc_config_descriptor_t *ptr_msc = NULL;
|
|
||||||
|
|
||||||
#if (USB_DEVICE_CONFIG_HID == 1) && (USB_DEVICE_CONFIG_MSC == 1)
|
|
||||||
ptr_hid = (usb_hid_config_descriptor_t *)&g_config_descriptor[USB_HID_CONFIG_INDEX];
|
ptr_hid = (usb_hid_config_descriptor_t *)&g_config_descriptor[USB_HID_CONFIG_INDEX];
|
||||||
ptr_msc = (usb_msc_config_descriptor_t *)&g_config_descriptor[USB_MSC_CONFIG_INDEX];
|
|
||||||
#elif(USB_DEVICE_CONFIG_HID == 1) && (USB_DEVICE_CONFIG_MSC == 0)
|
|
||||||
// HID only
|
|
||||||
// ptr_msc = NULL;
|
|
||||||
ptr_hid = (usb_hid_config_descriptor_t *)&g_config_descriptor[USB_HID_CONFIG_INDEX];
|
|
||||||
#elif(USB_DEVICE_CONFIG_HID == 0) && (USB_DEVICE_CONFIG_MSC == 1)
|
|
||||||
// MSC only
|
|
||||||
// ptr_hid = NULL;
|
|
||||||
ptr_msc = (usb_msc_config_descriptor_t *)&g_config_descriptor[USB_MSC_CONFIG_INDEX];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (USB_SPEED_HIGH == speed)
|
if (USB_SPEED_HIGH == speed)
|
||||||
{
|
{
|
||||||
if (ptr_hid != NULL)
|
// HID interface
|
||||||
{
|
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(HS_HID_GENERIC_INTERRUPT_IN_PACKET_SIZE,
|
||||||
// HID interface
|
ptr_hid->endpoint_in.wMaxPacketSize);
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(HS_HID_GENERIC_INTERRUPT_IN_PACKET_SIZE,
|
ptr_hid->endpoint_in.bInterval = HS_HID_GENERIC_INTERRUPT_IN_INTERVAL;
|
||||||
ptr_hid->endpoint_in.wMaxPacketSize);
|
|
||||||
ptr_hid->endpoint_in.bInterval = HS_HID_GENERIC_INTERRUPT_IN_INTERVAL;
|
|
||||||
|
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(HS_HID_GENERIC_INTERRUPT_OUT_PACKET_SIZE,
|
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(HS_HID_GENERIC_INTERRUPT_OUT_PACKET_SIZE,
|
||||||
ptr_hid->endpoint_out.wMaxPacketSize);
|
ptr_hid->endpoint_out.wMaxPacketSize);
|
||||||
ptr_hid->endpoint_out.bInterval = HS_HID_GENERIC_INTERRUPT_OUT_INTERVAL;
|
ptr_hid->endpoint_out.bInterval = HS_HID_GENERIC_INTERRUPT_OUT_INTERVAL;
|
||||||
}
|
|
||||||
if (ptr_msc != NULL)
|
|
||||||
{
|
|
||||||
// MSC interface
|
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(HS_BULK_IN_PACKET_SIZE, ptr_msc->endpoint_in.wMaxPacketSize);
|
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(HS_BULK_OUT_PACKET_SIZE, ptr_msc->endpoint_out.wMaxPacketSize);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (ptr_hid != NULL)
|
// HID interface
|
||||||
{
|
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(FS_HID_GENERIC_INTERRUPT_IN_PACKET_SIZE,
|
||||||
// HID interface
|
ptr_hid->endpoint_in.wMaxPacketSize);
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(FS_HID_GENERIC_INTERRUPT_IN_PACKET_SIZE,
|
ptr_hid->endpoint_in.bInterval = FS_HID_GENERIC_INTERRUPT_IN_INTERVAL;
|
||||||
ptr_hid->endpoint_in.wMaxPacketSize);
|
|
||||||
ptr_hid->endpoint_in.bInterval = FS_HID_GENERIC_INTERRUPT_IN_INTERVAL;
|
|
||||||
|
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(FS_HID_GENERIC_INTERRUPT_OUT_PACKET_SIZE,
|
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(FS_HID_GENERIC_INTERRUPT_OUT_PACKET_SIZE,
|
||||||
ptr_hid->endpoint_out.wMaxPacketSize);
|
ptr_hid->endpoint_out.wMaxPacketSize);
|
||||||
ptr_hid->endpoint_out.bInterval = FS_HID_GENERIC_INTERRUPT_OUT_INTERVAL;
|
ptr_hid->endpoint_out.bInterval = FS_HID_GENERIC_INTERRUPT_OUT_INTERVAL;
|
||||||
}
|
|
||||||
if (ptr_msc != NULL)
|
|
||||||
{
|
|
||||||
// MSC interface
|
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(FS_BULK_IN_PACKET_SIZE, ptr_msc->endpoint_in.wMaxPacketSize);
|
|
||||||
USB_SHORT_TO_LITTLE_ENDIAN_ADDRESS(FS_BULK_OUT_PACKET_SIZE, ptr_msc->endpoint_out.wMaxPacketSize);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint32_t i = 0; i < USB_HID_GENERIC_ENDPOINT_COUNT; i++)
|
for (uint32_t i = 0; i < USB_HID_GENERIC_ENDPOINT_COUNT; i++)
|
||||||
@@ -744,32 +548,5 @@ usb_status_t usb_device_set_speed(usb_device_handle handle, uint8_t speed)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint32_t i = 0; i < USB_MSC_ENDPOINT_COUNT; i++)
|
|
||||||
{
|
|
||||||
if (USB_SPEED_HIGH == speed)
|
|
||||||
{
|
|
||||||
if ((USB_IN << USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT) ==
|
|
||||||
(g_msc_disk_endpoints[i].endpointAddress & USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_MASK))
|
|
||||||
{
|
|
||||||
g_msc_disk_endpoints[i].maxPacketSize = HS_BULK_IN_PACKET_SIZE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_msc_disk_endpoints[i].maxPacketSize = HS_BULK_OUT_PACKET_SIZE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((USB_IN << USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT) ==
|
|
||||||
(g_msc_disk_endpoints[i].endpointAddress & USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_MASK))
|
|
||||||
{
|
|
||||||
g_msc_disk_endpoints[i].maxPacketSize = FS_BULK_IN_PACKET_SIZE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_msc_disk_endpoints[i].maxPacketSize = FS_BULK_OUT_PACKET_SIZE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return kStatus_USB_Success;
|
return kStatus_USB_Success;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,21 +42,7 @@
|
|||||||
#define FS_BULK_IN_PACKET_SIZE (64)
|
#define FS_BULK_IN_PACKET_SIZE (64)
|
||||||
#define FS_BULK_OUT_PACKET_SIZE (64)
|
#define FS_BULK_OUT_PACKET_SIZE (64)
|
||||||
|
|
||||||
// MSC
|
|
||||||
#define USB_MSC_CLASS (0x08)
|
|
||||||
/* scsi command set */
|
|
||||||
#define USB_MSC_SUBCLASS (0x06)
|
|
||||||
/* bulk only transport protocol */
|
|
||||||
#define USB_MSC_PROTOCOL (0x50)
|
|
||||||
|
|
||||||
#define USB_MSC_CONFIGURE_INDEX (1)
|
|
||||||
#define USB_MSC_ENDPOINT_COUNT (2)
|
|
||||||
#define USB_MSC_BULK_IN_ENDPOINT (3)
|
|
||||||
#define USB_MSC_BULK_OUT_ENDPOINT (4)
|
|
||||||
#define USB_MSC_INTERFACE_COUNT (1)
|
|
||||||
|
|
||||||
#define USB_HID_GENERIC_INTERFACE_INDEX (0)
|
#define USB_HID_GENERIC_INTERFACE_INDEX (0)
|
||||||
#define USB_MSC_INTERFACE_INDEX (0)
|
|
||||||
|
|
||||||
// HID
|
// HID
|
||||||
#define USB_HID_GENERIC_CONFIGURE_INDEX (1)
|
#define USB_HID_GENERIC_CONFIGURE_INDEX (1)
|
||||||
@@ -114,13 +100,6 @@ typedef struct _usb_hid_config_descriptor
|
|||||||
usb_descriptor_endpoint_t endpoint_out; /* Endpoint descriptor */
|
usb_descriptor_endpoint_t endpoint_out; /* Endpoint descriptor */
|
||||||
} usb_hid_config_descriptor_t;
|
} usb_hid_config_descriptor_t;
|
||||||
|
|
||||||
typedef struct _usb_msc_config_descriptor
|
|
||||||
{
|
|
||||||
usb_descriptor_interface_t interface; /* Interface descriptor */
|
|
||||||
usb_descriptor_endpoint_t endpoint_in; /* Endpoint descriptor */
|
|
||||||
usb_descriptor_endpoint_t endpoint_out; /* Endpoint descriptor */
|
|
||||||
} usb_msc_config_descriptor_t;
|
|
||||||
|
|
||||||
extern usb_device_class_struct_t g_hid_generic_class;
|
extern usb_device_class_struct_t g_hid_generic_class;
|
||||||
extern usb_device_class_struct_t g_msc_class;
|
extern usb_device_class_struct_t g_msc_class;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user