Lines Matching refs:ep

99 static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_…
100 static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_t wEPVal);
905 USB_OTG_EPTypeDef *ep; in HAL_PCD_IRQHandler() local
938 ep = &hpcd->OUT_ep[RegVal & USB_OTG_GRXSTSP_EPNUM]; in HAL_PCD_IRQHandler()
944 (void)USB_ReadPacket(USBx, ep->xfer_buff, in HAL_PCD_IRQHandler()
947 ep->xfer_buff += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; in HAL_PCD_IRQHandler()
948 ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; in HAL_PCD_IRQHandler()
954 ep->xfer_count += (RegVal & USB_OTG_GRXSTSP_BCNT) >> 4; in HAL_PCD_IRQHandler()
1003 ep = &hpcd->OUT_ep[epnum]; in HAL_PCD_IRQHandler()
1005 if (ep->is_iso_incomplete == 1U) in HAL_PCD_IRQHandler()
1007 ep->is_iso_incomplete = 0U; in HAL_PCD_IRQHandler()
1078 ep = &hpcd->IN_ep[epnum]; in HAL_PCD_IRQHandler()
1080 if (ep->is_iso_incomplete == 1U) in HAL_PCD_IRQHandler()
1082 ep->is_iso_incomplete = 0U; in HAL_PCD_IRQHandler()
1719 PCD_EPTypeDef *ep; in HAL_PCD_EP_Open() local
1723 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1724 ep->is_in = 1U; in HAL_PCD_EP_Open()
1728 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1729 ep->is_in = 0U; in HAL_PCD_EP_Open()
1732 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Open()
1733 ep->maxpacket = ep_mps; in HAL_PCD_EP_Open()
1734 ep->type = ep_type; in HAL_PCD_EP_Open()
1737 if (ep->is_in != 0U) in HAL_PCD_EP_Open()
1740 ep->tx_fifo_num = ep->num; in HAL_PCD_EP_Open()
1747 ep->data_pid_start = 0U; in HAL_PCD_EP_Open()
1751 (void)USB_ActivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Open()
1765 PCD_EPTypeDef *ep; in HAL_PCD_EP_Close() local
1769 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
1770 ep->is_in = 1U; in HAL_PCD_EP_Close()
1774 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
1775 ep->is_in = 0U; in HAL_PCD_EP_Close()
1777 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Close()
1780 (void)USB_DeactivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Close()
1796 PCD_EPTypeDef *ep; in HAL_PCD_EP_Receive() local
1798 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Receive()
1801 ep->xfer_buff = pBuf; in HAL_PCD_EP_Receive()
1802 ep->xfer_len = len; in HAL_PCD_EP_Receive()
1803 ep->xfer_count = 0U; in HAL_PCD_EP_Receive()
1804 ep->is_in = 0U; in HAL_PCD_EP_Receive()
1805 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Receive()
1807 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Receive()
1832 PCD_EPTypeDef *ep; in HAL_PCD_EP_Transmit() local
1834 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Transmit()
1837 ep->xfer_buff = pBuf; in HAL_PCD_EP_Transmit()
1838 ep->xfer_len = len; in HAL_PCD_EP_Transmit()
1840 ep->xfer_fill_db = 1U; in HAL_PCD_EP_Transmit()
1841 ep->xfer_len_db = len; in HAL_PCD_EP_Transmit()
1843 ep->xfer_count = 0U; in HAL_PCD_EP_Transmit()
1844 ep->is_in = 1U; in HAL_PCD_EP_Transmit()
1845 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_Transmit()
1847 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Transmit()
1860 PCD_EPTypeDef *ep; in HAL_PCD_EP_SetStall() local
1869 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_SetStall()
1870 ep->is_in = 1U; in HAL_PCD_EP_SetStall()
1874 ep = &hpcd->OUT_ep[ep_addr]; in HAL_PCD_EP_SetStall()
1875 ep->is_in = 0U; in HAL_PCD_EP_SetStall()
1878 ep->is_stall = 1U; in HAL_PCD_EP_SetStall()
1879 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_SetStall()
1883 (void)USB_EPSetStall(hpcd->Instance, ep); in HAL_PCD_EP_SetStall()
1903 PCD_EPTypeDef *ep; in HAL_PCD_EP_ClrStall() local
1912 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
1913 ep->is_in = 1U; in HAL_PCD_EP_ClrStall()
1917 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
1918 ep->is_in = 0U; in HAL_PCD_EP_ClrStall()
1921 ep->is_stall = 0U; in HAL_PCD_EP_ClrStall()
1922 ep->num = ep_addr & EP_ADDR_MSK; in HAL_PCD_EP_ClrStall()
1925 (void)USB_EPClearStall(hpcd->Instance, ep); in HAL_PCD_EP_ClrStall()
1940 PCD_EPTypeDef *ep; in HAL_PCD_EP_Abort() local
1944 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Abort()
1948 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Abort()
1952 ret = USB_EPStopXfer(hpcd->Instance, ep); in HAL_PCD_EP_Abort()
2053 USB_OTG_EPTypeDef *ep; in PCD_WriteEmptyTxFifo() local
2058 ep = &hpcd->IN_ep[epnum]; in PCD_WriteEmptyTxFifo()
2060 if (ep->xfer_count > ep->xfer_len) in PCD_WriteEmptyTxFifo()
2065 len = ep->xfer_len - ep->xfer_count; in PCD_WriteEmptyTxFifo()
2067 if (len > ep->maxpacket) in PCD_WriteEmptyTxFifo()
2069 len = ep->maxpacket; in PCD_WriteEmptyTxFifo()
2075 (ep->xfer_count < ep->xfer_len) && (ep->xfer_len != 0U)) in PCD_WriteEmptyTxFifo()
2078 len = ep->xfer_len - ep->xfer_count; in PCD_WriteEmptyTxFifo()
2080 if (len > ep->maxpacket) in PCD_WriteEmptyTxFifo()
2082 len = ep->maxpacket; in PCD_WriteEmptyTxFifo()
2086 (void)USB_WritePacket(USBx, ep->xfer_buff, (uint8_t)epnum, (uint16_t)len); in PCD_WriteEmptyTxFifo()
2088 ep->xfer_buff += len; in PCD_WriteEmptyTxFifo()
2089 ep->xfer_count += len; in PCD_WriteEmptyTxFifo()
2092 if (ep->xfer_len <= ep->xfer_count) in PCD_WriteEmptyTxFifo()
2187 PCD_EPTypeDef *ep; in PCD_EP_ISR_Handler() local
2218 ep = &hpcd->IN_ep[0]; in PCD_EP_ISR_Handler()
2220 ep->xfer_count = PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2221 ep->xfer_buff += ep->xfer_count; in PCD_EP_ISR_Handler()
2230 if ((hpcd->USB_Address > 0U) && (ep->xfer_len == 0U)) in PCD_EP_ISR_Handler()
2242 ep = &hpcd->OUT_ep[0]; in PCD_EP_ISR_Handler()
2248 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2251 ep->pmaadress, (uint16_t)ep->xfer_count); in PCD_EP_ISR_Handler()
2268 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2270 if ((ep->xfer_count != 0U) && (ep->xfer_buff != 0U)) in PCD_EP_ISR_Handler()
2272 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, in PCD_EP_ISR_Handler()
2273 ep->pmaadress, (uint16_t)ep->xfer_count); in PCD_EP_ISR_Handler()
2275 ep->xfer_buff += ep->xfer_count; in PCD_EP_ISR_Handler()
2289 PCD_SET_EP_RX_CNT(hpcd->Instance, PCD_ENDP0, ep->maxpacket); in PCD_EP_ISR_Handler()
2305 ep = &hpcd->OUT_ep[epindex]; in PCD_EP_ISR_Handler()
2308 if (ep->doublebuffer == 0U) in PCD_EP_ISR_Handler()
2310 count = (uint16_t)PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2314 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaadress, count); in PCD_EP_ISR_Handler()
2321 if (ep->type == EP_TYPE_BULK) in PCD_EP_ISR_Handler()
2323 count = HAL_PCD_EP_DB_Receive(hpcd, ep, wEPVal); in PCD_EP_ISR_Handler()
2328 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in PCD_EP_ISR_Handler()
2330 if ((PCD_GET_ENDPOINT(hpcd->Instance, ep->num) & USB_EP_DTOG_RX) != 0U) in PCD_EP_ISR_Handler()
2333 count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2337 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); in PCD_EP_ISR_Handler()
2343 count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2347 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); in PCD_EP_ISR_Handler()
2355 ep->xfer_count += count; in PCD_EP_ISR_Handler()
2356 ep->xfer_buff += count; in PCD_EP_ISR_Handler()
2358 if ((ep->xfer_len == 0U) || (count < ep->maxpacket)) in PCD_EP_ISR_Handler()
2362 hpcd->DataOutStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2364 HAL_PCD_DataOutStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2369 (void)USB_EPStartXfer(hpcd->Instance, ep); in PCD_EP_ISR_Handler()
2375 ep = &hpcd->IN_ep[epindex]; in PCD_EP_ISR_Handler()
2380 if (ep->type == EP_TYPE_ISOC) in PCD_EP_ISR_Handler()
2382 ep->xfer_len = 0U; in PCD_EP_ISR_Handler()
2385 if (ep->doublebuffer != 0U) in PCD_EP_ISR_Handler()
2389 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in PCD_EP_ISR_Handler()
2393 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in PCD_EP_ISR_Handler()
2400 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2402 HAL_PCD_DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2411 TxPctSize = (uint16_t)PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2413 if (ep->xfer_len > TxPctSize) in PCD_EP_ISR_Handler()
2415 ep->xfer_len -= TxPctSize; in PCD_EP_ISR_Handler()
2419 ep->xfer_len = 0U; in PCD_EP_ISR_Handler()
2423 if (ep->xfer_len == 0U) in PCD_EP_ISR_Handler()
2427 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2429 HAL_PCD_DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2435 ep->xfer_buff += TxPctSize; in PCD_EP_ISR_Handler()
2436 ep->xfer_count += TxPctSize; in PCD_EP_ISR_Handler()
2437 (void)USB_EPStartXfer(hpcd->Instance, ep); in PCD_EP_ISR_Handler()
2444 (void)HAL_PCD_EP_DB_Transmit(hpcd, ep, wEPVal); in PCD_EP_ISR_Handler()
2465 PCD_EPTypeDef *ep, uint16_t wEPVal) in HAL_PCD_EP_DB_Receive() argument
2473 count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Receive()
2475 if (ep->xfer_len >= count) in HAL_PCD_EP_DB_Receive()
2477 ep->xfer_len -= count; in HAL_PCD_EP_DB_Receive()
2481 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Receive()
2484 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Receive()
2487 PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); in HAL_PCD_EP_DB_Receive()
2493 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in HAL_PCD_EP_DB_Receive()
2498 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); in HAL_PCD_EP_DB_Receive()
2505 count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Receive()
2507 if (ep->xfer_len >= count) in HAL_PCD_EP_DB_Receive()
2509 ep->xfer_len -= count; in HAL_PCD_EP_DB_Receive()
2513 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Receive()
2516 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Receive()
2519 PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); in HAL_PCD_EP_DB_Receive()
2525 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in HAL_PCD_EP_DB_Receive()
2530 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); in HAL_PCD_EP_DB_Receive()
2546 PCD_EPTypeDef *ep, uint16_t wEPVal) in HAL_PCD_EP_DB_Transmit() argument
2555 TxPctSize = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Transmit()
2557 if (ep->xfer_len > TxPctSize) in HAL_PCD_EP_DB_Transmit()
2559 ep->xfer_len -= TxPctSize; in HAL_PCD_EP_DB_Transmit()
2563 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Transmit()
2567 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Transmit()
2569 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2570 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2574 hpcd->DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2576 HAL_PCD_DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2581 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2589 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2593 if (ep->xfer_fill_db == 1U) in HAL_PCD_EP_DB_Transmit()
2595 ep->xfer_buff += TxPctSize; in HAL_PCD_EP_DB_Transmit()
2596 ep->xfer_count += TxPctSize; in HAL_PCD_EP_DB_Transmit()
2599 if (ep->xfer_len_db >= ep->maxpacket) in HAL_PCD_EP_DB_Transmit()
2601 len = ep->maxpacket; in HAL_PCD_EP_DB_Transmit()
2602 ep->xfer_len_db -= len; in HAL_PCD_EP_DB_Transmit()
2604 else if (ep->xfer_len_db == 0U) in HAL_PCD_EP_DB_Transmit()
2607 ep->xfer_fill_db = 0U; in HAL_PCD_EP_DB_Transmit()
2611 ep->xfer_fill_db = 0U; in HAL_PCD_EP_DB_Transmit()
2612 len = ep->xfer_len_db; in HAL_PCD_EP_DB_Transmit()
2613 ep->xfer_len_db = 0U; in HAL_PCD_EP_DB_Transmit()
2618 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, len); in HAL_PCD_EP_DB_Transmit()
2621 USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, (uint16_t)len); in HAL_PCD_EP_DB_Transmit()
2628 TxPctSize = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Transmit()
2630 if (ep->xfer_len >= TxPctSize) in HAL_PCD_EP_DB_Transmit()
2632 ep->xfer_len -= TxPctSize; in HAL_PCD_EP_DB_Transmit()
2636 ep->xfer_len = 0U; in HAL_PCD_EP_DB_Transmit()
2640 if (ep->xfer_len == 0U) in HAL_PCD_EP_DB_Transmit()
2642 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2643 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2647 hpcd->DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2649 HAL_PCD_DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2655 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2663 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2667 if (ep->xfer_fill_db == 1U) in HAL_PCD_EP_DB_Transmit()
2669 ep->xfer_buff += TxPctSize; in HAL_PCD_EP_DB_Transmit()
2670 ep->xfer_count += TxPctSize; in HAL_PCD_EP_DB_Transmit()
2673 if (ep->xfer_len_db >= ep->maxpacket) in HAL_PCD_EP_DB_Transmit()
2675 len = ep->maxpacket; in HAL_PCD_EP_DB_Transmit()
2676 ep->xfer_len_db -= len; in HAL_PCD_EP_DB_Transmit()
2678 else if (ep->xfer_len_db == 0U) in HAL_PCD_EP_DB_Transmit()
2681 ep->xfer_fill_db = 0U; in HAL_PCD_EP_DB_Transmit()
2685 len = ep->xfer_len_db; in HAL_PCD_EP_DB_Transmit()
2686 ep->xfer_len_db = 0U; in HAL_PCD_EP_DB_Transmit()
2687 ep->xfer_fill_db = 0; in HAL_PCD_EP_DB_Transmit()
2691 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, len); in HAL_PCD_EP_DB_Transmit()
2694 USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, (uint16_t)len); in HAL_PCD_EP_DB_Transmit()
2700 PCD_SET_EP_TX_STATUS(hpcd->Instance, ep->num, USB_EP_TX_VALID); in HAL_PCD_EP_DB_Transmit()