diff --git a/components/drivers/usb/usbdevice/core/usbdevice.c b/components/drivers/usb/usbdevice/core/usbdevice.c index 10ffac8ad0f6fae0a17334d1e955eb91129f960a..453084990b28d85ab7a533cbb148f3d518fa86ba 100644 --- a/components/drivers/usb/usbdevice/core/usbdevice.c +++ b/components/drivers/usb/usbdevice/core/usbdevice.c @@ -59,6 +59,20 @@ static struct udevice_descriptor compsit_desc = USB_STRING_SERIAL_INDEX, //iSerialNumber; USB_DYNAMIC, //bNumConfigurations; }; + +//FS and HS needed +static struct usb_qualifier_descriptor dev_qualifier = +{ + sizeof(dev_qualifier), //bLength + USB_DESC_TYPE_DEVICEQUALIFIER, //bDescriptorType + 0x0200, //bcdUSB + USB_CLASS_MISC, //bDeviceClass + 0x02, //bDeviceSubClass + 0x01, //bDeviceProtocol + 64, //bMaxPacketSize0 + 0x01, //bNumConfigurations + 0, +}; #endif struct usb_os_comp_id_descriptor usb_comp_id_desc = @@ -169,6 +183,7 @@ rt_err_t rt_usb_device_init(void) #ifdef RT_USB_DEVICE_COMPOSITE rt_usbd_device_set_descriptor(udevice, &compsit_desc); rt_usbd_device_set_string(udevice, ustring); + rt_usbd_device_set_qualifier(device, &dev_qualifier); #else rt_usbd_device_set_descriptor(udevice, func->dev_desc); #endif