#include "usb_desc.h" const USB_StrDesc_lang_id lang_id = { /* String descriptor */ 0x4, // bLength UD_String, // bDescriptorType 0x409, // bString }; const USB_StrDesc_vendor_string vendor_string = { /* String descriptor */ 0x10, // bLength UD_String, // bDescriptorType { 'E', 'p', 'a', 'g', 'r', 'i', 's', }, // bString }; const USB_StrDesc_product_string product_string = { /* String descriptor */ 0x16, // bLength UD_String, // bDescriptorType { 'T', 'e', 's', 't', 'd', 'e', 'v', 'i', 'c', 'e', }, // bString }; const USB_StrDesc_serial_number serial_number = { /* String descriptor */ 0xa, // bLength UD_String, // bDescriptorType { '1', '5', '5', '2', }, // bString }; const StringDescs strDescs = { (USB_StringDesc *)&lang_id, // lang_id (USB_StringDesc *)&vendor_string, // vendor_string (USB_StringDesc *)&product_string, // product_string (USB_StringDesc *)&serial_number, // serial_number }; const USB_DeviceDesc devDesc = { /* Device Descriptor */ 0x12, // bLength UD_Device, // bDescriptorType 0x200, // bcdUSB 0x2, // bDeviceClass 0x0, // bDeviceSubclass 0x0, // bDeviceProtocol 0x40, // bMaxPacketSize0 0x925, // idVendor 0x9050, // idProduct 0x100, // bcdDevice 0x1, // iManufacturer 0x2, // iProduct 0x3, // iSerialNumber 0x1, // bNumConfigurations }; const USB_DeviceQualifierDesc devQualDesc = { /* Device Qualifier descriptor */ 0x9, // bLength UD_DeviceQualifier, // bDescriptorType 0x200, // bcdUSB 0x2, // bDeviceClass 0x0, // bDeviceSubclass 0x0, // bDeviceProtocol 0x40, // bMaxPacketSize 0x1, // bNumConfigurations }; const FullConfigurations0 fullConfDescs0 = { { /* Configuration descriptor */ 0x9, // bLength UD_Configuration, // bDescriptorType sizeof(struct _FullConfigurations0), // wTotalLength 0x2, // bNumInterfaces 0x1, // bConfigurationValue 0x0, // iConfiguration USB_CONFIG_ATTR_USB1_1_FLAG, // bmAttributes 0x32, // bMaxPower }, // config { /* Interface descriptor : 0 */ 0x9, // bLength UD_Interface, // bDescriptorType 0x0, // bInterfaceNumber 0x0, // bAlternateSetting 0x1, // bNumEndpoints 0x2, // bInterfaceClass 0x2, // bInterfaceSubclass 0x1, // bInterfaceProtocol 0x0, // iInterface }, // intf0 { /* Header Functional descriptor */ 0x5, // bLength 0x24, // bDescriptorType 0x0, // bDescriptorSubType 0x110, // bcdCDC }, // intf0hfd { /* Abstract Control Management Functional descriptor */ 0x4, // bLength 0x24, // bDescriptorType 0x2, // bDescriptorSubType 0x2, // bmCapabilities }, // intf0acmfd { /* Abstract Control Management Functional descriptor */ 0x5, // bLength 0x24, // bDescriptorType 0x6, // bDescriptorSubType 0x0, // bMasterInterface 0x1, // bSlaveInterface0 }, // intf0ufd { /* Call Management Functional descriptor */ 0x5, // bLength 0x24, // bDescriptorType 0x1, // bDescriptorSubType 0x0, // bmCapabilities 0x1, // dDataInterface }, // intf0cmfd { /* Endpoint descriptor : 2 in */ 0x7, // bLength UD_Endpoint, // bDescriptorType (USB_IN << 7) | (2), // bEndpointAddress UT_Interrupt, // bmAttributes 0x40, // wMaxPacketSize 0x2, // bInterval }, // ep2in { /* Interface descriptor : 1 */ 0x9, // bLength UD_Interface, // bDescriptorType 0x1, // bInterfaceNumber 0x0, // bAlternateSetting 0x2, // bNumEndpoints 0xa, // bInterfaceClass 0x0, // bInterfaceSubclass 0x0, // bInterfaceProtocol 0x0, // iInterface }, // intf1 { /* Endpoint descriptor : 1 in */ 0x7, // bLength UD_Endpoint, // bDescriptorType (USB_IN << 7) | (1), // bEndpointAddress UT_Bulk, // bmAttributes 0x40, // wMaxPacketSize 0x0, // bInterval }, // ep1in { /* Endpoint descriptor : 1 out */ 0x7, // bLength UD_Endpoint, // bDescriptorType (USB_OUT << 7) | (1), // bEndpointAddress UT_Bulk, // bmAttributes 0x40, // wMaxPacketSize 0x0, // bInterval }, // ep1out }; const ConfDescs confDescs = { (USB_ConfigurationDesc *)&fullConfDescs0, // fullConfDescs0 };