aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/usb/usb_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/usb/usb_controller.h')
-rw-r--r--sys/dev/usb/usb_controller.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/sys/dev/usb/usb_controller.h b/sys/dev/usb/usb_controller.h
index 0f7ffac5d210..6b15dab993d5 100644
--- a/sys/dev/usb/usb_controller.h
+++ b/sys/dev/usb/usb_controller.h
@@ -97,6 +97,9 @@ struct usb_bus_methods {
void (*get_hw_ep_profile) (struct usb_device *udev, const struct usb_hw_ep_profile **ppf, uint8_t ep_addr);
void (*set_stall) (struct usb_device *udev, struct usb_xfer *xfer, struct usb_endpoint *ep, uint8_t *did_stall);
+
+ /* USB Device mode mandatory. USB Host mode optional. */
+
void (*clear_stall) (struct usb_device *udev, struct usb_endpoint *ep);
/* Optional transfer polling support */
@@ -106,6 +109,28 @@ struct usb_bus_methods {
/* Optional fixed power mode support */
void (*get_power_mode) (struct usb_device *udev, int8_t *pmode);
+
+ /* Optional endpoint uninit */
+
+ void (*endpoint_uninit) (struct usb_device *, struct usb_endpoint *);
+
+ /* Optional device init */
+
+ usb_error_t (*device_init) (struct usb_device *);
+
+ /* Optional device uninit */
+
+ void (*device_uninit) (struct usb_device *);
+
+ /* Optional for device and host mode */
+
+ void (*start_dma_delay) (struct usb_xfer *);
+
+ void (*device_state_change) (struct usb_device *);
+
+ /* Optional for host mode */
+
+ usb_error_t (*set_address) (struct usb_device *, struct mtx *, uint16_t);
};
/*