29#ifndef _USB_CONTROLLER_H_
30#define _USB_CONTROLLER_H_
34#define USB_BUS_DMA_TAG_MAX 8
44struct usb_fs_isoc_schedule;
74#define USB_HW_POWER_CONTROL 0x01
79#define USB_HW_POWER_BULK 0x02
84#define USB_HW_POWER_INTERRUPT 0x04
89#define USB_HW_POWER_ISOC 0x08
94#define USB_HW_POWER_NON_ROOT_HUB 0x10
98#define USB_HW_POWER_SUSPEND 0x20
102#define USB_HW_POWER_RESUME 0x40
106#define USB_HW_POWER_SHUTDOWN 0x60
195#if USB_HAVE_TT_SUPPORT
196uint8_t usbd_fs_isoc_schedule_alloc_slot(
struct usb_xfer *isoc_xfer, uint16_t isoc_time);
void(* device_resume)(struct usb_device *)
usb_error_t(* set_endpoint_mode)(struct usb_device *, struct usb_endpoint *, uint8_t)
void(* get_power_mode)(struct usb_device *udev, int8_t *pmode)
void(* xfer_stall)(struct usb_xfer *xfer)
void(* get_dma_delay)(struct usb_device *, uint32_t *)
void(* set_stall)(struct usb_device *udev, struct usb_endpoint *ep, uint8_t *did_stall)
usb_handle_req_t * roothub_exec
void(* clear_stall)(struct usb_device *udev, struct usb_endpoint *ep)
void(* get_hw_ep_profile)(struct usb_device *udev, const struct usb_hw_ep_profile **ppf, uint8_t ep_addr)
void(* device_uninit)(struct usb_device *)
void(* device_state_change)(struct usb_device *)
usb_error_t(* device_init)(struct usb_device *)
void(* endpoint_uninit)(struct usb_device *, struct usb_endpoint *)
void(* xfer_poll)(struct usb_bus *)
void(* device_suspend)(struct usb_device *)
void(* xfer_unsetup)(struct usb_xfer *)
usb_error_t(* set_address)(struct usb_device *, struct mtx *, uint16_t)
void(* xfer_setup)(struct usb_setup_params *)
void(* set_hw_power)(struct usb_bus *)
void(* endpoint_init)(struct usb_device *, struct usb_endpoint_descriptor *, struct usb_endpoint *)
void(* set_hw_power_sleep)(struct usb_bus *, uint32_t)
void(* start_dma_delay)(struct usb_xfer *)
uint16_t max_in_frame_size
uint16_t max_out_frame_size
uint8_t support_interrupt
uint8_t support_multi_buffer
uint8_t support_isochronous
void(* enter)(struct usb_xfer *)
void(* close)(struct usb_xfer *)
void(* open)(struct usb_xfer *)
void(* start)(struct usb_xfer *)
void usb_bus_mem_free_all(struct usb_bus *bus, usb_bus_mem_cb_t *cb)
void usb_bus_mem_flush_all(struct usb_bus *bus, usb_bus_mem_cb_t *cb)
uint8_t usb_bus_mem_alloc_all(struct usb_bus *bus, bus_dma_tag_t dmat, usb_bus_mem_cb_t *cb)
void() usb_bus_mem_cb_t(struct usb_bus *bus, usb_bus_mem_sub_cb_t *scb)
void() usb_bus_mem_sub_cb_t(struct usb_bus *bus, struct usb_page_cache *pc, struct usb_page *pg, usb_size_t size, usb_size_t align)
uint16_t usb_isoc_time_expand(struct usb_bus *bus, uint16_t isoc_time_curr)
void usb_bus_reset_async_locked(struct usb_bus *bus)
usb_error_t() usb_handle_req_t(struct usb_device *, struct usb_device_request *, const void **, uint16_t *)