/* ******************************************************************************* * WriteDataStatusComplete * * Description: * void * * Parameters: * void * * Return value: * void * * note: * void * ******************************************************************************* */ static void WriteDataStatusComplete(__hdle hUSB, u32 ep_type, u32 complete) { USBC_Dev_WriteDataStatus(hUSB, ep_type, complete); /* wait for tx packet sent out */ while(USBC_Dev_IsWriteDataReady(hUSB, ep_type)){ udelay(1); } if(ep_type == USBC_EP_TYPE_EP0){ /* clear data end */ if(complete){ USBC_Dev_Ctrl_ClearSetupEnd(hUSB); } /* clear irq */ USBC_INT_ClearEpPending(hUSB, USBC_EP_TYPE_TX, 0); } return; }
/* ******************************************************************************* * __usb_writecomplete * * Description: * void * * Parameters: * void * * Return value: * void * * note: * void * ******************************************************************************* */ static void __usb_writecomplete(__hdle hUSB, u32 ep_type, u32 complete) { USBC_Dev_WriteDataStatus(hUSB, ep_type, complete); /* wait for tx packet sent out */ while(USBC_Dev_IsWriteDataReady(hUSB, ep_type)); if(ep_type == USBC_EP_TYPE_EP0) { /* clear data end */ if(complete) { USBC_Dev_Ctrl_ClearSetupEnd(hUSB); } /* clear irq */ USBC_INT_ClearEpPending(hUSB, USBC_EP_TYPE_TX, SUNXI_USB_CTRL_EP_INDEX); } return; }