summaryrefslogtreecommitdiff
path: root/components/drivers/include
diff options
context:
space:
mode:
authorzyh <[email protected]>2018-04-24 12:48:05 +0800
committerzyh <[email protected]>2018-04-24 12:48:05 +0800
commit1ed770039c11fd48bd8ad61cf526dc9041fd2cc5 (patch)
treed93c03550248f0f22eb5bdd04b16b1c2cc9f8b6a /components/drivers/include
parent801c3fcef6a1a1e40f2f16e87676031bebe9273e (diff)
[Coponents][USB device]add class register interface
Diffstat (limited to 'components/drivers/include')
-rw-r--r--components/drivers/include/drivers/usb_device.h19
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);