diff options
| author | heyuanjie87 <[email protected]> | 2013-01-24 20:59:43 +0800 |
|---|---|---|
| committer | heyuanjie87 <[email protected]> | 2013-01-24 20:59:43 +0800 |
| commit | 34d531578ec9912de0521cf1c5ce18934f5eccd2 (patch) | |
| tree | 6cc9aec39747eca663bdacd8ba3403526d537f90 /components/drivers/usb/usbdevice/core | |
| parent | b91271d490fb9d1f909e8096a507f05d142f88ac (diff) | |
class driver can custom string description
Diffstat (limited to 'components/drivers/usb/usbdevice/core')
| -rw-r--r-- | components/drivers/usb/usbdevice/core/core.c | 28 | ||||
| -rw-r--r-- | components/drivers/usb/usbdevice/core/usbdevice.c | 19 |
2 files changed, 32 insertions, 15 deletions
diff --git a/components/drivers/usb/usbdevice/core/core.c b/components/drivers/usb/usbdevice/core/core.c index 9f1738ed33..c79820642a 100644 --- a/components/drivers/usb/usbdevice/core/core.c +++ b/components/drivers/usb/usbdevice/core/core.c @@ -612,13 +612,10 @@ rt_err_t _sof_notify(udevice_t device) * * @return an usb device object on success, RT_NULL on fail. */ -udevice_t rt_usbd_device_create(const char** ustring) +udevice_t rt_usbd_device_create(void) { udevice_t udevice; - /* parameter check */ - RT_ASSERT(ustring != RT_NULL); - RT_DEBUG_LOG(RT_DEBUG_USB, ("rt_usbd_device_create\n")); /* allocate memory for the object */ @@ -630,9 +627,6 @@ udevice_t rt_usbd_device_create(const char** ustring) } rt_memset(udevice, 0, sizeof(struct udevice)); - /* set string descriptor array to the device object */ - udevice->str = ustring; - /* to initialize configuration list */ rt_list_init(&udevice->cfg_list); @@ -643,6 +637,26 @@ udevice_t rt_usbd_device_create(const char** ustring) } /** + * This function will set usb device string description. + * + * @param device the usb device object. + * @param ustring pointer to string pointer array. + * + * @return RT_EOK. + */ +rt_err_t rt_usbd_device_set_string(udevice_t device, const char** ustring) +{ + /* parameter check */ + RT_ASSERT(device != RT_NULL); + RT_ASSERT(ustring != RT_NULL); + + /* set string descriptor array to the device object */ + device->str = ustring; + + return RT_EOK; +} + +/** * This function will set an usb controller driver to a device. * * @param device the usb device object. diff --git a/components/drivers/usb/usbdevice/core/usbdevice.c b/components/drivers/usb/usbdevice/core/usbdevice.c index 01ee065a2b..e4f5097045 100644 --- a/components/drivers/usb/usbdevice/core/usbdevice.c +++ b/components/drivers/usb/usbdevice/core/usbdevice.c @@ -18,15 +18,17 @@ #ifdef RT_USING_USB_DEVICE -const static char* ustring[] = +#ifdef RT_USB_DEVICE_COMPOSITE +const static char* ustring[] = { "Language", "RT-Thread Team.", - "RT-Thread Device", + "RTT Composite Device", "1.1.0", "Configuration", "Interface", }; +#endif #ifdef RT_USB_DEVICE_COMPOSITE static struct udevice_descriptor compsit_desc = @@ -44,7 +46,7 @@ static struct udevice_descriptor compsit_desc = USB_STRING_MANU_INDEX, //iManufacturer; USB_STRING_PRODUCT_INDEX, //iProduct; USB_STRING_SERIAL_INDEX, //iSerialNumber; - USB_DYNAMIC, //bNumConfigurations; + USB_DYNAMIC, //bNumConfigurations; }; #endif @@ -53,7 +55,7 @@ rt_err_t rt_usb_device_init(const char* udc_name) rt_device_t udc; udevice_t udevice; uconfig_t cfg; - uclass_t cls; + uclass_t cls; RT_ASSERT(udc_name != RT_NULL); @@ -68,8 +70,8 @@ rt_err_t rt_usb_device_init(const char* udc_name) rt_usbd_core_init(); /* create a device object */ - udevice = rt_usbd_device_create(ustring); - + udevice = rt_usbd_device_create(); + /* set usb controller driver to the device */ rt_usbd_device_set_controller(udevice, (udcd_t)udc); @@ -78,7 +80,7 @@ rt_err_t rt_usb_device_init(const char* udc_name) #ifdef RT_USB_DEVICE_MSTORAGE /* create a mass storage class object */ - cls = rt_usbd_class_mstorage_create(udevice); + cls = rt_usbd_class_mstorage_create(udevice); /* add the class to the configuration */ rt_usbd_config_add_class(cfg, cls); @@ -101,13 +103,14 @@ rt_err_t rt_usb_device_init(const char* udc_name) /* set device descriptor to the device */ #ifdef RT_USB_DEVICE_COMPOSITE rt_usbd_device_set_descriptor(udevice, &compsit_desc); + rt_usbd_device_set_string(udevice, ustring); #else rt_usbd_device_set_descriptor(udevice, cls->dev_desc); #endif /* add the configuration to the device */ rt_usbd_device_add_config(udevice, cfg); - + /* set default configuration to 1 */ rt_usbd_set_config(udevice, 1); |
