Lines Matching refs:ep

100 static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_…
101 static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_t wEPVal);
1085 USB_OTG_EPTypeDef *ep; in HAL_PCD_IRQHandler() local
1118 ep = &hpcd->OUT_ep[RegVal & USB_OTG_GRXSTSP_EPNUM]; in HAL_PCD_IRQHandler()
1124 (void)USB_ReadPacket(USBx, ep->xfer_buff, in HAL_PCD_IRQHandler()
1127 ep->xfer_buff += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; in HAL_PCD_IRQHandler()
1128 ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; in HAL_PCD_IRQHandler()
1134 ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; in HAL_PCD_IRQHandler()
1183 ep = &hpcd->OUT_ep[epnum]; in HAL_PCD_IRQHandler()
1185 if (ep->is_iso_incomplete == 1U) in HAL_PCD_IRQHandler()
1187 ep->is_iso_incomplete = 0U; in HAL_PCD_IRQHandler()
1270 ep = &hpcd->IN_ep[epnum]; in HAL_PCD_IRQHandler()
1272 if (ep->is_iso_incomplete == 1U) in HAL_PCD_IRQHandler()
1274 ep->is_iso_incomplete = 0U; in HAL_PCD_IRQHandler()
1954 PCD_EPTypeDef *ep; in HAL_PCD_EP_Open() local
1958 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1959 ep->is_in = 1U; in HAL_PCD_EP_Open()
1963 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1964 ep->is_in = 0U; in HAL_PCD_EP_Open()
1967 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Open()
1968 ep->maxpacket = (uint32_t)ep_mps & 0x7FFU; in HAL_PCD_EP_Open()
1969 ep->type = ep_type; in HAL_PCD_EP_Open()
1972 if (ep->is_in != 0U) in HAL_PCD_EP_Open()
1975 ep->tx_fifo_num = ep->num; in HAL_PCD_EP_Open()
1982 ep->data_pid_start = 0U; in HAL_PCD_EP_Open()
1986 (void)USB_ActivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Open()
2000 PCD_EPTypeDef *ep; in HAL_PCD_EP_Close() local
2004 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
2005 ep->is_in = 1U; in HAL_PCD_EP_Close()
2009 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
2010 ep->is_in = 0U; in HAL_PCD_EP_Close()
2012 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Close()
2015 (void)USB_DeactivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Close()
2031 PCD_EPTypeDef *ep; in HAL_PCD_EP_Receive() local
2033 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Receive()
2036 ep->xfer_buff = pBuf; in HAL_PCD_EP_Receive()
2037 ep->xfer_len = len; in HAL_PCD_EP_Receive()
2038 ep->xfer_count = 0U; in HAL_PCD_EP_Receive()
2039 ep->is_in = 0U; in HAL_PCD_EP_Receive()
2040 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Receive()
2045 ep->dma_addr = (uint32_t)pBuf; in HAL_PCD_EP_Receive()
2048 (void)USB_EPStartXfer(hpcd->Instance, ep, (uint8_t)hpcd->Init.dma_enable); in HAL_PCD_EP_Receive()
2050 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Receive()
2076 PCD_EPTypeDef *ep; in HAL_PCD_EP_Transmit() local
2078 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Transmit()
2081 ep->xfer_buff = pBuf; in HAL_PCD_EP_Transmit()
2082 ep->xfer_len = len; in HAL_PCD_EP_Transmit()
2084 ep->xfer_fill_db = 1U; in HAL_PCD_EP_Transmit()
2085 ep->xfer_len_db = len; in HAL_PCD_EP_Transmit()
2087 ep->xfer_count = 0U; in HAL_PCD_EP_Transmit()
2088 ep->is_in = 1U; in HAL_PCD_EP_Transmit()
2089 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Transmit()
2094 ep->dma_addr = (uint32_t)pBuf; in HAL_PCD_EP_Transmit()
2097 (void)USB_EPStartXfer(hpcd->Instance, ep, (uint8_t)hpcd->Init.dma_enable); in HAL_PCD_EP_Transmit()
2099 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Transmit()
2113 PCD_EPTypeDef *ep; in HAL_PCD_EP_SetStall() local
2122 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_SetStall()
2123 ep->is_in = 1U; in HAL_PCD_EP_SetStall()
2127 ep = &hpcd->OUT_ep[ep_addr]; in HAL_PCD_EP_SetStall()
2128 ep->is_in = 0U; in HAL_PCD_EP_SetStall()
2131 ep->is_stall = 1U; in HAL_PCD_EP_SetStall()
2132 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_SetStall()
2136 (void)USB_EPSetStall(hpcd->Instance, ep); in HAL_PCD_EP_SetStall()
2158 PCD_EPTypeDef *ep; in HAL_PCD_EP_ClrStall() local
2167 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
2168 ep->is_in = 1U; in HAL_PCD_EP_ClrStall()
2172 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
2173 ep->is_in = 0U; in HAL_PCD_EP_ClrStall()
2176 ep->is_stall = 0U; in HAL_PCD_EP_ClrStall()
2177 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_ClrStall()
2180 (void)USB_EPClearStall(hpcd->Instance, ep); in HAL_PCD_EP_ClrStall()
2195 PCD_EPTypeDef *ep; in HAL_PCD_EP_Abort() local
2199 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Abort()
2203 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Abort()
2207 ret = USB_EPStopXfer(hpcd->Instance, ep); in HAL_PCD_EP_Abort()
2337 USB_OTG_EPTypeDef *ep; in PCD_WriteEmptyTxFifo() local
2342 ep = &hpcd->IN_ep[epnum]; in PCD_WriteEmptyTxFifo()
2344 if (ep->xfer_count > ep->xfer_len) in PCD_WriteEmptyTxFifo()
2349 len = ep->xfer_len - ep->xfer_count; in PCD_WriteEmptyTxFifo()
2351 if (len > ep->maxpacket) in PCD_WriteEmptyTxFifo()
2353 len = ep->maxpacket; in PCD_WriteEmptyTxFifo()
2359 (ep->xfer_count < ep->xfer_len) && (ep->xfer_len != 0U)) in PCD_WriteEmptyTxFifo()
2362 len = ep->xfer_len - ep->xfer_count; in PCD_WriteEmptyTxFifo()
2364 if (len > ep->maxpacket) in PCD_WriteEmptyTxFifo()
2366 len = ep->maxpacket; in PCD_WriteEmptyTxFifo()
2370 (void)USB_WritePacket(USBx, ep->xfer_buff, (uint8_t)epnum, (uint16_t)len, in PCD_WriteEmptyTxFifo()
2373 ep->xfer_buff += len; in PCD_WriteEmptyTxFifo()
2374 ep->xfer_count += len; in PCD_WriteEmptyTxFifo()
2377 if (ep->xfer_len <= ep->xfer_count) in PCD_WriteEmptyTxFifo()
2395 USB_OTG_EPTypeDef *ep; in PCD_EP_OutXfrComplete_int() local
2426 ep = &hpcd->OUT_ep[epnum]; in PCD_EP_OutXfrComplete_int()
2429 ep->xfer_count = ep->xfer_size - (USBx_OUTEP(epnum)->DOEPTSIZ & USB_OTG_DOEPTSIZ_XFRSIZ); in PCD_EP_OutXfrComplete_int()
2433 if (ep->xfer_len == 0U) in PCD_EP_OutXfrComplete_int()
2440 ep->xfer_buff += ep->xfer_count; in PCD_EP_OutXfrComplete_int()
2542 PCD_EPTypeDef *ep; in PCD_EP_ISR_Handler() local
2573 ep = &hpcd->IN_ep[0]; in PCD_EP_ISR_Handler()
2575 ep->xfer_count = PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2576 ep->xfer_buff += ep->xfer_count; in PCD_EP_ISR_Handler()
2585 if ((hpcd->USB_Address > 0U) && (ep->xfer_len == 0U)) in PCD_EP_ISR_Handler()
2597 ep = &hpcd->OUT_ep[0]; in PCD_EP_ISR_Handler()
2603 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2606 ep->pmaadress, (uint16_t)ep->xfer_count); in PCD_EP_ISR_Handler()
2623 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2625 if ((ep->xfer_count != 0U) && (ep->xfer_buff != 0U)) in PCD_EP_ISR_Handler()
2627 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, in PCD_EP_ISR_Handler()
2628 ep->pmaadress, (uint16_t)ep->xfer_count); in PCD_EP_ISR_Handler()
2630 ep->xfer_buff += ep->xfer_count; in PCD_EP_ISR_Handler()
2659 ep = &hpcd->OUT_ep[epindex]; in PCD_EP_ISR_Handler()
2662 if (ep->doublebuffer == 0U) in PCD_EP_ISR_Handler()
2664 count = (uint16_t)PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2668 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaadress, count); in PCD_EP_ISR_Handler()
2675 if (ep->type == EP_TYPE_BULK) in PCD_EP_ISR_Handler()
2677 count = HAL_PCD_EP_DB_Receive(hpcd, ep, wEPVal); in PCD_EP_ISR_Handler()
2682 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in PCD_EP_ISR_Handler()
2684 if ((PCD_GET_ENDPOINT(hpcd->Instance, ep->num) & USB_EP_DTOG_RX) != 0U) in PCD_EP_ISR_Handler()
2687 count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2691 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); in PCD_EP_ISR_Handler()
2697 count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2701 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); in PCD_EP_ISR_Handler()
2709 ep->xfer_count += count; in PCD_EP_ISR_Handler()
2710 ep->xfer_buff += count; in PCD_EP_ISR_Handler()
2712 if ((ep->xfer_len == 0U) || (count < ep->maxpacket)) in PCD_EP_ISR_Handler()
2716 hpcd->DataOutStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2718 HAL_PCD_DataOutStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2723 (void)USB_EPStartXfer(hpcd->Instance, ep); in PCD_EP_ISR_Handler()
2729 ep = &hpcd->IN_ep[epindex]; in PCD_EP_ISR_Handler()
2734 if (ep->type == EP_TYPE_ISOC) in PCD_EP_ISR_Handler()
2736 ep->xfer_len = 0U; in PCD_EP_ISR_Handler()
2739 if (ep->doublebuffer != 0U) in PCD_EP_ISR_Handler()
2743 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in PCD_EP_ISR_Handler()
2747 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in PCD_EP_ISR_Handler()
2754 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2756 HAL_PCD_DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2765 TxPctSize = (uint16_t)PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2767 if (ep->xfer_len > TxPctSize) in PCD_EP_ISR_Handler()
2769 ep->xfer_len -= TxPctSize; in PCD_EP_ISR_Handler()
2773 ep->xfer_len = 0U; in PCD_EP_ISR_Handler()
2777 if (ep->xfer_len == 0U) in PCD_EP_ISR_Handler()
2781 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2783 HAL_PCD_DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2789 ep->xfer_buff += TxPctSize; in PCD_EP_ISR_Handler()
2790 ep->xfer_count += TxPctSize; in PCD_EP_ISR_Handler()
2791 (void)USB_EPStartXfer(hpcd->Instance, ep); in PCD_EP_ISR_Handler()
2798 (void)HAL_PCD_EP_DB_Transmit(hpcd, ep, wEPVal); in PCD_EP_ISR_Handler()
2819 PCD_EPTypeDef *ep, uint16_t wEPVal) in HAL_PCD_EP_DB_Receive() argument
2827 count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Receive()
2829 if (ep->xfer_len >= count) in HAL_PCD_EP_DB_Receive()
2831 ep->xfer_len -= count; in HAL_PCD_EP_DB_Receive()
2835 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Receive()
2838 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Receive()
2841 PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); in HAL_PCD_EP_DB_Receive()
2847 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in HAL_PCD_EP_DB_Receive()
2852 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); in HAL_PCD_EP_DB_Receive()
2859 count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Receive()
2861 if (ep->xfer_len >= count) in HAL_PCD_EP_DB_Receive()
2863 ep->xfer_len -= count; in HAL_PCD_EP_DB_Receive()
2867 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Receive()
2870 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Receive()
2873 PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); in HAL_PCD_EP_DB_Receive()
2879 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in HAL_PCD_EP_DB_Receive()
2884 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); in HAL_PCD_EP_DB_Receive()
2900 PCD_EPTypeDef *ep, uint16_t wEPVal) in HAL_PCD_EP_DB_Transmit() argument
2909 TxPctSize = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Transmit()
2911 if (ep->xfer_len > TxPctSize) in HAL_PCD_EP_DB_Transmit()
2913 ep->xfer_len -= TxPctSize; in HAL_PCD_EP_DB_Transmit()
2917 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Transmit()
2921 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Transmit()
2923 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2924 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2926 if (ep->type == EP_TYPE_BULK) in HAL_PCD_EP_DB_Transmit()
2929 PCD_SET_EP_TX_STATUS(hpcd->Instance, ep->num, USB_EP_TX_NAK); in HAL_PCD_EP_DB_Transmit()
2934 hpcd->DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2936 HAL_PCD_DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2941 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2951 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2955 if (ep->xfer_fill_db == 1U) in HAL_PCD_EP_DB_Transmit()
2957 ep->xfer_buff += TxPctSize; in HAL_PCD_EP_DB_Transmit()
2958 ep->xfer_count += TxPctSize; in HAL_PCD_EP_DB_Transmit()
2961 if (ep->xfer_len_db >= ep->maxpacket) in HAL_PCD_EP_DB_Transmit()
2963 len = ep->maxpacket; in HAL_PCD_EP_DB_Transmit()
2964 ep->xfer_len_db -= len; in HAL_PCD_EP_DB_Transmit()
2966 else if (ep->xfer_len_db == 0U) in HAL_PCD_EP_DB_Transmit()
2969 ep->xfer_fill_db = 0U; in HAL_PCD_EP_DB_Transmit()
2973 ep->xfer_fill_db = 0U; in HAL_PCD_EP_DB_Transmit()
2974 len = ep->xfer_len_db; in HAL_PCD_EP_DB_Transmit()
2975 ep->xfer_len_db = 0U; in HAL_PCD_EP_DB_Transmit()
2980 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, len); in HAL_PCD_EP_DB_Transmit()
2983 USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, (uint16_t)len); in HAL_PCD_EP_DB_Transmit()
2990 TxPctSize = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Transmit()
2992 if (ep->xfer_len >= TxPctSize) in HAL_PCD_EP_DB_Transmit()
2994 ep->xfer_len -= TxPctSize; in HAL_PCD_EP_DB_Transmit()
2998 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Transmit()
3002 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Transmit()
3004 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
3005 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
3007 if (ep->type == EP_TYPE_BULK) in HAL_PCD_EP_DB_Transmit()
3010 PCD_SET_EP_TX_STATUS(hpcd->Instance, ep->num, USB_EP_TX_NAK); in HAL_PCD_EP_DB_Transmit()
3015 hpcd->DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
3017 HAL_PCD_DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
3023 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
3033 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
3037 if (ep->xfer_fill_db == 1U) in HAL_PCD_EP_DB_Transmit()
3039 ep->xfer_buff += TxPctSize; in HAL_PCD_EP_DB_Transmit()
3040 ep->xfer_count += TxPctSize; in HAL_PCD_EP_DB_Transmit()
3043 if (ep->xfer_len_db >= ep->maxpacket) in HAL_PCD_EP_DB_Transmit()
3045 len = ep->maxpacket; in HAL_PCD_EP_DB_Transmit()
3046 ep->xfer_len_db -= len; in HAL_PCD_EP_DB_Transmit()
3048 else if (ep->xfer_len_db == 0U) in HAL_PCD_EP_DB_Transmit()
3051 ep->xfer_fill_db = 0U; in HAL_PCD_EP_DB_Transmit()
3055 len = ep->xfer_len_db; in HAL_PCD_EP_DB_Transmit()
3056 ep->xfer_len_db = 0U; in HAL_PCD_EP_DB_Transmit()
3057 ep->xfer_fill_db = 0; in HAL_PCD_EP_DB_Transmit()
3061 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, len); in HAL_PCD_EP_DB_Transmit()
3064 USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, (uint16_t)len); in HAL_PCD_EP_DB_Transmit()
3070 PCD_SET_EP_TX_STATUS(hpcd->Instance, ep->num, USB_EP_TX_VALID); in HAL_PCD_EP_DB_Transmit()