diff options
| author | zyh <[email protected]> | 2018-04-24 12:48:05 +0800 |
|---|---|---|
| committer | zyh <[email protected]> | 2018-04-24 12:48:05 +0800 |
| commit | 1ed770039c11fd48bd8ad61cf526dc9041fd2cc5 (patch) | |
| tree | d93c03550248f0f22eb5bdd04b16b1c2cc9f8b6a /components/drivers/include | |
| parent | 801c3fcef6a1a1e40f2f16e87676031bebe9273e (diff) | |
[Coponents][USB device]add class register interface
Diffstat (limited to 'components/drivers/include')
| -rw-r--r-- | components/drivers/include/drivers/usb_device.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/components/drivers/include/drivers/usb_device.h b/components/drivers/include/drivers/usb_device.h index caa171079b..572c7d0dff 100644 --- a/components/drivers/include/drivers/usb_device.h +++ b/components/drivers/include/drivers/usb_device.h @@ -213,6 +213,13 @@ struct udevice }; typedef struct udevice* udevice_t; +struct udclass +{ + rt_list_t list; + ufunction_t (*rt_usbd_function_create)(udevice_t device); +}; +typedef struct udclass* udclass_t; + enum udev_msg_type { USB_MSG_SETUP_NOTIFY, @@ -248,6 +255,7 @@ struct udev_msg }; typedef struct udev_msg* udev_msg_t; +int rt_usbd_class_list_init(void); udevice_t rt_usbd_device_new(void); uconfig_t rt_usbd_config_new(void); ufunction_t rt_usbd_function_new(udevice_t device, udev_desc_t dev_desc, @@ -266,6 +274,7 @@ rt_err_t rt_usbd_device_set_qualifier(udevice_t device, struct usb_qualifier_des rt_err_t rt_usbd_device_set_os_comp_id_desc(udevice_t device, usb_os_comp_id_desc_t os_comp_id_desc); rt_err_t rt_usbd_device_add_config(udevice_t device, uconfig_t cfg); rt_err_t rt_usbd_config_add_function(uconfig_t cfg, ufunction_t func); +rt_err_t rt_usbd_class_register(udclass_t udclass); rt_err_t rt_usbd_function_add_interface(ufunction_t func, uintf_t intf); rt_err_t rt_usbd_interface_add_altsetting(uintf_t intf, ualtsetting_t setting); rt_err_t rt_usbd_altsetting_add_endpoint(ualtsetting_t setting, uep_t ep); @@ -283,10 +292,12 @@ rt_size_t rt_usbd_ep0_write(udevice_t device, void *buffer, rt_size_t size); rt_size_t rt_usbd_ep0_read(udevice_t device, void *buffer, rt_size_t size, rt_err_t (*rx_ind)(udevice_t device, rt_size_t size)); -ufunction_t rt_usbd_function_mstorage_create(udevice_t device); -ufunction_t rt_usbd_function_cdc_create(udevice_t device); -ufunction_t rt_usbd_function_rndis_create(udevice_t device); -ufunction_t rt_usbd_function_dap_create(udevice_t device); +int rt_usbd_vcom_class_register(void); +int rt_usbd_ecm_class_register(void); +int rt_usbd_hid_class_register(void); +int rt_usbd_msc_class_register(void); +int rt_usbd_rndis_class_register(void); +int rt_usbd_winusb_class_register(void); #ifdef RT_USB_DEVICE_COMPOSITE rt_err_t rt_usbd_function_set_iad(ufunction_t func, uiad_desc_t iad_desc); |
