DM USB: extend the API for struct usb_devemu

For the purpose of USB port mapper, change struct usb_devemu to
common interface between HCD layer and USB device layer.

Besides, implements ue_init/ue_deinit/ue_info for port mapper.

Change-Id: Id4b7345c7b321b9bdab58139c61169d9229cb6f8
Signed-off-by: Wu, Xiaoguang <xiaoguang.wu@intel.com>
Reviewed-by: Shuo Liu <shuo.a.liu@intel.com>
Reviewed-by: Yu Wang <yu1.wang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Wu, Xiaoguang
2018-04-17 22:46:01 +08:00
committed by lijinxia
parent 1816d3e608
commit aa0480f44e
4 changed files with 201 additions and 3 deletions

View File

@@ -49,15 +49,17 @@ struct usb_devemu {
int ue_usbspeed; /* usb device speed */
/* instance creation */
void *(*ue_init)(struct usb_hci *hci, char *opt);
void *(*ue_init)(void *pdata, char *opt);
/* handlers */
int (*ue_request)(void *sc, struct usb_data_xfer *xfer);
int (*ue_data)(void *sc, struct usb_data_xfer *xfer, int dir,
int epctx);
int (*ue_info)(void *sc, int type, void *value, int size);
int (*ue_reset)(void *sc);
int (*ue_remove)(void *sc);
int (*ue_stop)(void *sc);
void (*ue_deinit)(void *pdata);
};
#define USB_EMUL_SET(x) DATA_SET(usb_emu_set, x)

View File

@@ -36,6 +36,15 @@
#define USB_NUM_INTERFACE 16
#define USB_NUM_ENDPOINT 15
enum {
USB_INFO_VERSION,
USB_INFO_SPEED,
USB_INFO_BUS,
USB_INFO_PORT,
USB_INFO_VID,
USB_INFO_PID
};
struct usb_dev_ep {
uint8_t pid;
uint8_t type;
@@ -48,6 +57,9 @@ struct usb_dev {
int speed;
int configuration;
uint8_t port;
uint8_t bus;
uint8_t pid;
uint16_t vid;
/* interface info */
int if_num;
@@ -91,5 +103,7 @@ struct usb_dev_sys_ctx_info {
int usb_dev_sys_init(usb_dev_sys_cb conn_cb, usb_dev_sys_cb disconn_cb,
usb_dev_sys_cb notify_cb, usb_dev_sys_cb intr_cb,
void *hci_data, int log_level);
void *usb_dev_init(void *pdata, char *opt);
void usb_dev_deinit(void *pdata);
int usb_dev_info(void *pdata, int type, void *value, int size);
#endif