summaryrefslogtreecommitdiff
path: root/common/usb_hc.h
diff options
context:
space:
mode:
Diffstat (limited to 'common/usb_hc.h')
-rw-r--r--common/usb_hc.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/common/usb_hc.h b/common/usb_hc.h
index aa411eef..f24c337e 100644
--- a/common/usb_hc.h
+++ b/common/usb_hc.h
@@ -59,6 +59,23 @@ struct usbh_urb {
};
/**
+ * @brief USB host controller driver.
+ *
+ * Structure containing the USB host controller driver.
+ */
+struct usbh_hc_driver {
+ const char *driver_name;
+ const char *driver_desc;
+ int (*init)(struct usbh_bus *bus);
+ int (*deinit)(struct usbh_bus *bus);
+ uint16_t (*get_frame_number)(struct usbh_bus *bus);
+ int (*roothub_control)(struct usbh_bus *bus, struct usb_setup_packet *setup, uint8_t *buf);
+ int (*submit_urb)(struct usbh_urb *urb);
+ int (*kill_urb)(struct usbh_urb *urb);
+ void (*irq_handler)(uint8_t busid);
+};
+
+/**
* @brief usb host controller hardware init.
*
* @return On success will return 0, and others indicate fail.