diff options
| author | uestczyh222 <[email protected]> | 2017-11-23 00:37:21 +0800 |
|---|---|---|
| committer | uestczyh222 <[email protected]> | 2017-11-23 00:38:56 +0800 |
| commit | cfc0304be5c87f1cf509bb4201dea52cb50cfaf0 (patch) | |
| tree | 456da2b5d81184328b5bef40ab611104cf875bc8 /components/drivers/usb/usbdevice/core/usbdevice.c | |
| parent | 5b8aa350ac4dda29b2ba0b906e67d2f3bdd63fb7 (diff) | |
[Compinents][USB]增加USB协议栈对微软OS描述符的支持,修复HID class的IAD接口,增加免驱新class WinUSB
Diffstat (limited to 'components/drivers/usb/usbdevice/core/usbdevice.c')
| -rw-r--r-- | components/drivers/usb/usbdevice/core/usbdevice.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/components/drivers/usb/usbdevice/core/usbdevice.c b/components/drivers/usb/usbdevice/core/usbdevice.c index 57a15da648..10ffac8ad0 100644 --- a/components/drivers/usb/usbdevice/core/usbdevice.c +++ b/components/drivers/usb/usbdevice/core/usbdevice.c @@ -39,10 +39,9 @@ const static char* ustring[] = "320219198301", "Configuration", "Interface", + USB_STRING_OS }; -#endif -#ifdef RT_USB_DEVICE_COMPOSITE static struct udevice_descriptor compsit_desc = { USB_DESC_LENGTH_DEVICE, //bLength; @@ -62,6 +61,16 @@ static struct udevice_descriptor compsit_desc = }; #endif +struct usb_os_comp_id_descriptor usb_comp_id_desc = +{ + //head section + USB_DYNAMIC, + 0x0100, + 0x04, + USB_DYNAMIC, + {0x00,0x00,0x00,0x00,0x00,0x00,0x00}, +}; + rt_err_t rt_usb_device_init(void) { rt_device_t udc; @@ -88,6 +97,8 @@ rt_err_t rt_usb_device_init(void) /* create a configuration object */ cfg = rt_usbd_config_new(); + rt_usbd_device_set_os_comp_id_desc(udevice,&usb_comp_id_desc); + #ifdef RT_USB_DEVICE_MSTORAGE { extern ufunction_t rt_usbd_function_mstorage_create(udevice_t device); @@ -142,6 +153,17 @@ rt_err_t rt_usb_device_init(void) rt_usbd_config_add_function(cfg, func); } #endif + +#ifdef RT_USB_DEVICE_WINUSB + { + extern ufunction_t rt_usbd_function_winusb_create(udevice_t device); + /* create a rndis function object */ + func = rt_usbd_function_winusb_create(udevice); + + /* add the function to the configuration */ + rt_usbd_config_add_function(cfg, func); + } +#endif /* set device descriptor to the device */ #ifdef RT_USB_DEVICE_COMPOSITE |
