12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * @file hv_drv_UsbMusbHost.h
- * @brief Header file of musb Host driver.
- *
- * @author HiView SoC Software Team
- * @version 1.0.0
- * @date 2022-06-15
- */
- #ifndef __HV_DRV_USB_MUSB_HOST_H
- #define __HV_DRV_USB_MUSB_HOST_H
- #include "hv_drv_UsbCoreHcd.h"
- #include "hv_drv_UsbCoreCommonUsb.h"
- struct musb_xfer {
- struct usb_host_endpoint *hep; /* usbcore info */
- struct usb_device *dev;
- struct musb_hw_ep *hw_ep; /* current binding */
- u8 epnum;
- u8 hb_mult; /* high bandwidth pkts per uf */
- u32 offset;
- u32 segsize;
- u8 type_reg;
- u8 intv_reg;
- u8 addr_reg;
- u8 type;
- u16 maxpacket;
- u16 frame;
- u8 is_ready;
- u8 rx_stall_cnt;
- u8 error_cnt;
- };
- #include "hv_drv_UsbMusbCore.h"
- #include "hv_drv_UsbMusbDma.h"
- INLINE void musb_set_vbus(struct musb *musb, int is_on) {
- musb->ops->set_vbus(musb, is_on);
- }
- INLINE struct musb *hcd_to_musb(struct usb_hcd *hcd) {
- return (struct musb *) hcd->hcd_priv;
- }
- extern void musb_h_ep0_irq(struct musb *musb);
- extern void musb_host_tx(struct musb *musb, u8 epnum);
- extern void musb_host_rx(struct musb *musb, u8 epnum);
- extern void musb_host_tx_dma(struct musb *musb, u8 epnum);
- extern void musb_host_rx_dma(struct musb *musb, u8 epnum);
- extern u32 musb_abort_xfer(struct musb *musb);
- extern int musb_host_alloc(struct musb *musb);
- extern int musb_host_setup(struct musb *musb);
- extern void musb_host_free(struct musb *musb);
- extern int musb_hub_status_data(struct usb_hcd *hcd, char *buf);
- extern void musb_host_cleanup(struct musb *musb);
- extern int musb_hub_control(struct usb_hcd *hcd,
- u16 typeReq, u16 wValue, u16 wIndex,
- char *buf, u16 wLength);
- extern int musb_hub_port1_connect_state(void);
- INLINE
- struct urb *current_urb(struct musb_xfer *xfer) {
- if (!xfer)
- return NULL;
- return xfer->hep->xfer_urb;
- }
- #endif /* _MUSB_HOST_H */
|