Lines Matching refs:hpcd

91 static HAL_StatusTypeDef PCD_WriteEmptyTxFifo(PCD_HandleTypeDef *hpcd, uint32_t epnum);
92 static HAL_StatusTypeDef PCD_EP_OutXfrComplete_int(PCD_HandleTypeDef *hpcd, uint32_t epnum);
93 static HAL_StatusTypeDef PCD_EP_OutSetupPacket_int(PCD_HandleTypeDef *hpcd, uint32_t epnum);
97 static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd);
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);
131 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd) in HAL_PCD_Init() argument
136 if (hpcd == NULL) in HAL_PCD_Init()
142 assert_param(IS_PCD_ALL_INSTANCE(hpcd->Instance)); in HAL_PCD_Init()
144 if (hpcd->State == HAL_PCD_STATE_RESET) in HAL_PCD_Init()
147 hpcd->Lock = HAL_UNLOCKED; in HAL_PCD_Init()
150 hpcd->SOFCallback = HAL_PCD_SOFCallback; in HAL_PCD_Init()
151 hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; in HAL_PCD_Init()
152 hpcd->ResetCallback = HAL_PCD_ResetCallback; in HAL_PCD_Init()
153 hpcd->SuspendCallback = HAL_PCD_SuspendCallback; in HAL_PCD_Init()
154 hpcd->ResumeCallback = HAL_PCD_ResumeCallback; in HAL_PCD_Init()
155 hpcd->ConnectCallback = HAL_PCD_ConnectCallback; in HAL_PCD_Init()
156 hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; in HAL_PCD_Init()
157 hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; in HAL_PCD_Init()
158 hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; in HAL_PCD_Init()
159 hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; in HAL_PCD_Init()
160 hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; in HAL_PCD_Init()
162 if (hpcd->MspInitCallback == NULL) in HAL_PCD_Init()
164 hpcd->MspInitCallback = HAL_PCD_MspInit; in HAL_PCD_Init()
168 hpcd->MspInitCallback(hpcd); in HAL_PCD_Init()
171 HAL_PCD_MspInit(hpcd); in HAL_PCD_Init()
175 hpcd->State = HAL_PCD_STATE_BUSY; in HAL_PCD_Init()
178 hpcd->Init.dma_enable = 0U; in HAL_PCD_Init()
181 __HAL_PCD_DISABLE(hpcd); in HAL_PCD_Init()
184 if (USB_CoreInit(hpcd->Instance, hpcd->Init) != HAL_OK) in HAL_PCD_Init()
186 hpcd->State = HAL_PCD_STATE_ERROR; in HAL_PCD_Init()
191 if (USB_SetCurrentMode(hpcd->Instance, USB_DEVICE_MODE) != HAL_OK) in HAL_PCD_Init()
193 hpcd->State = HAL_PCD_STATE_ERROR; in HAL_PCD_Init()
198 for (i = 0U; i < hpcd->Init.dev_endpoints; i++) in HAL_PCD_Init()
201 hpcd->IN_ep[i].is_in = 1U; in HAL_PCD_Init()
202 hpcd->IN_ep[i].num = i; in HAL_PCD_Init()
204 hpcd->IN_ep[i].tx_fifo_num = i; in HAL_PCD_Init()
207 hpcd->IN_ep[i].type = EP_TYPE_CTRL; in HAL_PCD_Init()
208 hpcd->IN_ep[i].maxpacket = 0U; in HAL_PCD_Init()
209 hpcd->IN_ep[i].xfer_buff = 0U; in HAL_PCD_Init()
210 hpcd->IN_ep[i].xfer_len = 0U; in HAL_PCD_Init()
213 for (i = 0U; i < hpcd->Init.dev_endpoints; i++) in HAL_PCD_Init()
215 hpcd->OUT_ep[i].is_in = 0U; in HAL_PCD_Init()
216 hpcd->OUT_ep[i].num = i; in HAL_PCD_Init()
218 hpcd->OUT_ep[i].type = EP_TYPE_CTRL; in HAL_PCD_Init()
219 hpcd->OUT_ep[i].maxpacket = 0U; in HAL_PCD_Init()
220 hpcd->OUT_ep[i].xfer_buff = 0U; in HAL_PCD_Init()
221 hpcd->OUT_ep[i].xfer_len = 0U; in HAL_PCD_Init()
225 if (USB_DevInit(hpcd->Instance, hpcd->Init) != HAL_OK) in HAL_PCD_Init()
227 hpcd->State = HAL_PCD_STATE_ERROR; in HAL_PCD_Init()
231 hpcd->USB_Address = 0U; in HAL_PCD_Init()
232 hpcd->State = HAL_PCD_STATE_READY; in HAL_PCD_Init()
233 (void)USB_DevDisconnect(hpcd->Instance); in HAL_PCD_Init()
243 HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd) in HAL_PCD_DeInit() argument
246 if (hpcd == NULL) in HAL_PCD_DeInit()
251 hpcd->State = HAL_PCD_STATE_BUSY; in HAL_PCD_DeInit()
254 if (USB_StopDevice(hpcd->Instance) != HAL_OK) in HAL_PCD_DeInit()
260 if (hpcd->MspDeInitCallback == NULL) in HAL_PCD_DeInit()
262 hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PCD_DeInit()
266 hpcd->MspDeInitCallback(hpcd); in HAL_PCD_DeInit()
269 HAL_PCD_MspDeInit(hpcd); in HAL_PCD_DeInit()
272 hpcd->State = HAL_PCD_STATE_RESET; in HAL_PCD_DeInit()
282 __weak void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) in HAL_PCD_MspInit() argument
285 UNUSED(hpcd); in HAL_PCD_MspInit()
297 __weak void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd) in HAL_PCD_MspDeInit() argument
300 UNUSED(hpcd); in HAL_PCD_MspDeInit()
326 HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterCallback() argument
335 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
339 __HAL_LOCK(hpcd); in HAL_PCD_RegisterCallback()
341 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterCallback()
346 hpcd->SOFCallback = pCallback; in HAL_PCD_RegisterCallback()
350 hpcd->SetupStageCallback = pCallback; in HAL_PCD_RegisterCallback()
354 hpcd->ResetCallback = pCallback; in HAL_PCD_RegisterCallback()
358 hpcd->SuspendCallback = pCallback; in HAL_PCD_RegisterCallback()
362 hpcd->ResumeCallback = pCallback; in HAL_PCD_RegisterCallback()
366 hpcd->ConnectCallback = pCallback; in HAL_PCD_RegisterCallback()
370 hpcd->DisconnectCallback = pCallback; in HAL_PCD_RegisterCallback()
374 hpcd->MspInitCallback = pCallback; in HAL_PCD_RegisterCallback()
378 hpcd->MspDeInitCallback = pCallback; in HAL_PCD_RegisterCallback()
383 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
389 else if (hpcd->State == HAL_PCD_STATE_RESET) in HAL_PCD_RegisterCallback()
394 hpcd->MspInitCallback = pCallback; in HAL_PCD_RegisterCallback()
398 hpcd->MspDeInitCallback = pCallback; in HAL_PCD_RegisterCallback()
403 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
412 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
418 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterCallback()
439 HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef Cal… in HAL_PCD_UnRegisterCallback() argument
444 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterCallback()
447 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterCallback()
452 hpcd->SOFCallback = HAL_PCD_SOFCallback; in HAL_PCD_UnRegisterCallback()
456 hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; in HAL_PCD_UnRegisterCallback()
460 hpcd->ResetCallback = HAL_PCD_ResetCallback; in HAL_PCD_UnRegisterCallback()
464 hpcd->SuspendCallback = HAL_PCD_SuspendCallback; in HAL_PCD_UnRegisterCallback()
468 hpcd->ResumeCallback = HAL_PCD_ResumeCallback; in HAL_PCD_UnRegisterCallback()
472 hpcd->ConnectCallback = HAL_PCD_ConnectCallback; in HAL_PCD_UnRegisterCallback()
476 hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; in HAL_PCD_UnRegisterCallback()
480 hpcd->MspInitCallback = HAL_PCD_MspInit; in HAL_PCD_UnRegisterCallback()
484 hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; in HAL_PCD_UnRegisterCallback()
489 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterCallback()
496 else if (hpcd->State == HAL_PCD_STATE_RESET) in HAL_PCD_UnRegisterCallback()
501 hpcd->MspInitCallback = HAL_PCD_MspInit; in HAL_PCD_UnRegisterCallback()
505 hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; in HAL_PCD_UnRegisterCallback()
510 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterCallback()
520 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterCallback()
527 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterCallback()
538 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterDataOutStageCallback() argument
546 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataOutStageCallback()
552 __HAL_LOCK(hpcd); in HAL_PCD_RegisterDataOutStageCallback()
554 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterDataOutStageCallback()
556 hpcd->DataOutStageCallback = pCallback; in HAL_PCD_RegisterDataOutStageCallback()
561 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataOutStageCallback()
568 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterDataOutStageCallback()
579 HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterDataOutStageCallback() argument
584 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterDataOutStageCallback()
586 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterDataOutStageCallback()
588hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; /* Legacy weak DataOutStageCallback */ in HAL_PCD_UnRegisterDataOutStageCallback()
593 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterDataOutStageCallback()
600 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterDataOutStageCallback()
612 HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterDataInStageCallback() argument
620 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataInStageCallback()
626 __HAL_LOCK(hpcd); in HAL_PCD_RegisterDataInStageCallback()
628 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterDataInStageCallback()
630 hpcd->DataInStageCallback = pCallback; in HAL_PCD_RegisterDataInStageCallback()
635 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataInStageCallback()
642 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterDataInStageCallback()
653 HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterDataInStageCallback() argument
658 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterDataInStageCallback()
660 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterDataInStageCallback()
662 hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; /* Legacy weak DataInStageCallback */ in HAL_PCD_UnRegisterDataInStageCallback()
667 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterDataInStageCallback()
674 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterDataInStageCallback()
686 HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterIsoOutIncpltCallback() argument
694 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoOutIncpltCallback()
700 __HAL_LOCK(hpcd); in HAL_PCD_RegisterIsoOutIncpltCallback()
702 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterIsoOutIncpltCallback()
704 hpcd->ISOOUTIncompleteCallback = pCallback; in HAL_PCD_RegisterIsoOutIncpltCallback()
709 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoOutIncpltCallback()
716 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterIsoOutIncpltCallback()
728 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterIsoOutIncpltCallback() argument
733 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterIsoOutIncpltCallback()
735 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterIsoOutIncpltCallback()
737hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; /* Legacy weak ISOOUTIncomplete… in HAL_PCD_UnRegisterIsoOutIncpltCallback()
742 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterIsoOutIncpltCallback()
749 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterIsoOutIncpltCallback()
761 HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterIsoInIncpltCallback() argument
769 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoInIncpltCallback()
775 __HAL_LOCK(hpcd); in HAL_PCD_RegisterIsoInIncpltCallback()
777 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterIsoInIncpltCallback()
779 hpcd->ISOINIncompleteCallback = pCallback; in HAL_PCD_RegisterIsoInIncpltCallback()
784 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoInIncpltCallback()
791 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterIsoInIncpltCallback()
803 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterIsoInIncpltCallback() argument
808 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterIsoInIncpltCallback()
810 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterIsoInIncpltCallback()
812hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; /* Legacy weak ISOINIncompleteCal… in HAL_PCD_UnRegisterIsoInIncpltCallback()
817 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterIsoInIncpltCallback()
824 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterIsoInIncpltCallback()
855 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd) in HAL_PCD_Start() argument
857 __HAL_LOCK(hpcd); in HAL_PCD_Start()
858 __HAL_PCD_ENABLE(hpcd); in HAL_PCD_Start()
861 HAL_PCDEx_SetConnectionState(hpcd, 1U); in HAL_PCD_Start()
864 (void)USB_DevConnect(hpcd->Instance); in HAL_PCD_Start()
865 __HAL_UNLOCK(hpcd); in HAL_PCD_Start()
875 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd) in HAL_PCD_Stop() argument
877 __HAL_LOCK(hpcd); in HAL_PCD_Stop()
878 __HAL_PCD_DISABLE(hpcd); in HAL_PCD_Stop()
881 HAL_PCDEx_SetConnectionState(hpcd, 0U); in HAL_PCD_Stop()
884 (void)USB_DevDisconnect(hpcd->Instance); in HAL_PCD_Stop()
887 (void)USB_FlushTxFifo(hpcd->Instance, 0x10U); in HAL_PCD_Stop()
890 __HAL_UNLOCK(hpcd); in HAL_PCD_Stop()
901 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd) in HAL_PCD_IRQHandler() argument
903 USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; in HAL_PCD_IRQHandler()
914 if (USB_GetMode(hpcd->Instance) == USB_OTG_MODE_DEVICE) in HAL_PCD_IRQHandler()
917 if (__HAL_PCD_IS_INVALID_INTERRUPT(hpcd)) in HAL_PCD_IRQHandler()
923 hpcd->FrameNumber = (USBx_DEVICE->DSTS & USB_OTG_DSTS_FNSOF_Msk) >> USB_OTG_DSTS_FNSOF_Pos; in HAL_PCD_IRQHandler()
925 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_MMIS)) in HAL_PCD_IRQHandler()
928 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_MMIS); in HAL_PCD_IRQHandler()
932 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_RXFLVL)) in HAL_PCD_IRQHandler()
934 USB_MASK_INTERRUPT(hpcd->Instance, USB_OTG_GINTSTS_RXFLVL); in HAL_PCD_IRQHandler()
938 ep = &hpcd->OUT_ep[RegVal & USB_OTG_GRXSTSP_EPNUM]; in HAL_PCD_IRQHandler()
953 (void)USB_ReadPacket(USBx, (uint8_t *)hpcd->Setup, 8U); in HAL_PCD_IRQHandler()
961 USB_UNMASK_INTERRUPT(hpcd->Instance, USB_OTG_GINTSTS_RXFLVL); in HAL_PCD_IRQHandler()
964 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_OEPINT)) in HAL_PCD_IRQHandler()
969 ep_intr = USB_ReadDevAllOutEpInterrupt(hpcd->Instance); in HAL_PCD_IRQHandler()
975 epint = USB_ReadDevOutEPInterrupt(hpcd->Instance, (uint8_t)epnum); in HAL_PCD_IRQHandler()
980 (void)PCD_EP_OutXfrComplete_int(hpcd, epnum); in HAL_PCD_IRQHandler()
987 (void)PCD_EP_OutSetupPacket_int(hpcd, epnum); in HAL_PCD_IRQHandler()
1003 ep = &hpcd->OUT_ep[epnum]; in HAL_PCD_IRQHandler()
1010 hpcd->ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1012 HAL_PCD_ISOOUTIncompleteCallback(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1036 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_IEPINT)) in HAL_PCD_IRQHandler()
1039 ep_intr = USB_ReadDevAllInEpInterrupt(hpcd->Instance); in HAL_PCD_IRQHandler()
1047 epint = USB_ReadDevInEPInterrupt(hpcd->Instance, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1057 hpcd->DataInStageCallback(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1059 HAL_PCD_DataInStageCallback(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1078 ep = &hpcd->IN_ep[epnum]; in HAL_PCD_IRQHandler()
1085 hpcd->ISOINIncompleteCallback(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1087 HAL_PCD_ISOINIncompleteCallback(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1095 (void)PCD_WriteEmptyTxFifo(hpcd, epnum); in HAL_PCD_IRQHandler()
1104 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_WKUINT)) in HAL_PCD_IRQHandler()
1110 hpcd->ResumeCallback(hpcd); in HAL_PCD_IRQHandler()
1112 HAL_PCD_ResumeCallback(hpcd); in HAL_PCD_IRQHandler()
1115 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_WKUINT); in HAL_PCD_IRQHandler()
1119 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_USBSUSP)) in HAL_PCD_IRQHandler()
1124 hpcd->SuspendCallback(hpcd); in HAL_PCD_IRQHandler()
1126 HAL_PCD_SuspendCallback(hpcd); in HAL_PCD_IRQHandler()
1129 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_USBSUSP); in HAL_PCD_IRQHandler()
1132 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_USBRST)) in HAL_PCD_IRQHandler()
1135 (void)USB_FlushTxFifo(hpcd->Instance, 0x10U); in HAL_PCD_IRQHandler()
1137 for (i = 0U; i < hpcd->Init.dev_endpoints; i++) in HAL_PCD_IRQHandler()
1147 if (hpcd->Init.use_dedicated_ep1 != 0U) in HAL_PCD_IRQHandler()
1174 (void)USB_EP0_OutStart(hpcd->Instance, (uint8_t *)hpcd->Setup); in HAL_PCD_IRQHandler()
1176 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_USBRST); in HAL_PCD_IRQHandler()
1180 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_ENUMDNE)) in HAL_PCD_IRQHandler()
1182 (void)USB_ActivateSetup(hpcd->Instance); in HAL_PCD_IRQHandler()
1183 hpcd->Init.speed = USB_GetDevSpeed(hpcd->Instance); in HAL_PCD_IRQHandler()
1186 (void)USB_SetTurnaroundTime(hpcd->Instance, in HAL_PCD_IRQHandler()
1188 (uint8_t)hpcd->Init.speed); in HAL_PCD_IRQHandler()
1191 hpcd->ResetCallback(hpcd); in HAL_PCD_IRQHandler()
1193 HAL_PCD_ResetCallback(hpcd); in HAL_PCD_IRQHandler()
1196 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_ENUMDNE); in HAL_PCD_IRQHandler()
1200 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_SOF)) in HAL_PCD_IRQHandler()
1203 hpcd->SOFCallback(hpcd); in HAL_PCD_IRQHandler()
1205 HAL_PCD_SOFCallback(hpcd); in HAL_PCD_IRQHandler()
1208 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_SOF); in HAL_PCD_IRQHandler()
1212 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_BOUTNAKEFF)) in HAL_PCD_IRQHandler()
1216 for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++) in HAL_PCD_IRQHandler()
1218 if (hpcd->OUT_ep[epnum].is_iso_incomplete == 1U) in HAL_PCD_IRQHandler()
1221 (void)HAL_PCD_EP_Abort(hpcd, (uint8_t)epnum); in HAL_PCD_IRQHandler()
1227 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR)) in HAL_PCD_IRQHandler()
1229 for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++) in HAL_PCD_IRQHandler()
1233 if ((hpcd->IN_ep[epnum].type == EP_TYPE_ISOC) && in HAL_PCD_IRQHandler()
1236 hpcd->IN_ep[epnum].is_iso_incomplete = 1U; in HAL_PCD_IRQHandler()
1239 (void)HAL_PCD_EP_Abort(hpcd, (uint8_t)(epnum | 0x80U)); in HAL_PCD_IRQHandler()
1243 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR); in HAL_PCD_IRQHandler()
1247 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT)) in HAL_PCD_IRQHandler()
1249 for (epnum = 1U; epnum < hpcd->Init.dev_endpoints; epnum++) in HAL_PCD_IRQHandler()
1253 if ((hpcd->OUT_ep[epnum].type == EP_TYPE_ISOC) && in HAL_PCD_IRQHandler()
1255 ((RegVal & (0x1U << 16)) == (hpcd->FrameNumber & 0x1U))) in HAL_PCD_IRQHandler()
1257 hpcd->OUT_ep[epnum].is_iso_incomplete = 1U; in HAL_PCD_IRQHandler()
1269 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT); in HAL_PCD_IRQHandler()
1273 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_SRQINT)) in HAL_PCD_IRQHandler()
1276 hpcd->ConnectCallback(hpcd); in HAL_PCD_IRQHandler()
1278 HAL_PCD_ConnectCallback(hpcd); in HAL_PCD_IRQHandler()
1281 __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_SRQINT); in HAL_PCD_IRQHandler()
1285 if (__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_OTGINT)) in HAL_PCD_IRQHandler()
1287 RegVal = hpcd->Instance->GOTGINT; in HAL_PCD_IRQHandler()
1292 hpcd->DisconnectCallback(hpcd); in HAL_PCD_IRQHandler()
1294 HAL_PCD_DisconnectCallback(hpcd); in HAL_PCD_IRQHandler()
1297 hpcd->Instance->GOTGINT |= RegVal; in HAL_PCD_IRQHandler()
1308 void HAL_PCD_WKUP_IRQHandler(PCD_HandleTypeDef *hpcd) in HAL_PCD_WKUP_IRQHandler() argument
1321 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd) in HAL_PCD_IRQHandler() argument
1323 uint32_t wIstr = USB_ReadInterrupts(hpcd->Instance); in HAL_PCD_IRQHandler()
1331 (void)PCD_EP_ISR_Handler(hpcd); in HAL_PCD_IRQHandler()
1338 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_RESET); in HAL_PCD_IRQHandler()
1341 hpcd->ResetCallback(hpcd); in HAL_PCD_IRQHandler()
1343 HAL_PCD_ResetCallback(hpcd); in HAL_PCD_IRQHandler()
1346 (void)HAL_PCD_SetAddress(hpcd, 0U); in HAL_PCD_IRQHandler()
1353 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_PMAOVR); in HAL_PCD_IRQHandler()
1360 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_ERR); in HAL_PCD_IRQHandler()
1367 hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_LP_MODE); in HAL_PCD_IRQHandler()
1368 hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); in HAL_PCD_IRQHandler()
1371 hpcd->ResumeCallback(hpcd); in HAL_PCD_IRQHandler()
1373 HAL_PCD_ResumeCallback(hpcd); in HAL_PCD_IRQHandler()
1376 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_WKUP); in HAL_PCD_IRQHandler()
1388 store_ep[i] = PCD_GET_ENDPOINT(hpcd->Instance, i); in HAL_PCD_IRQHandler()
1392 hpcd->Instance->CNTR |= (uint16_t)(USB_CNTR_FRES); in HAL_PCD_IRQHandler()
1395 hpcd->Instance->CNTR &= (uint16_t)(~USB_CNTR_FRES); in HAL_PCD_IRQHandler()
1398 while ((hpcd->Instance->ISTR & USB_ISTR_RESET) == 0U) in HAL_PCD_IRQHandler()
1403 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_RESET); in HAL_PCD_IRQHandler()
1408 PCD_SET_ENDPOINT(hpcd->Instance, i, store_ep[i]); in HAL_PCD_IRQHandler()
1412 hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; in HAL_PCD_IRQHandler()
1415 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SUSP); in HAL_PCD_IRQHandler()
1417 hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_LP_MODE; in HAL_PCD_IRQHandler()
1420 hpcd->SuspendCallback(hpcd); in HAL_PCD_IRQHandler()
1422 HAL_PCD_SuspendCallback(hpcd); in HAL_PCD_IRQHandler()
1430 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SOF); in HAL_PCD_IRQHandler()
1433 hpcd->SOFCallback(hpcd); in HAL_PCD_IRQHandler()
1435 HAL_PCD_SOFCallback(hpcd); in HAL_PCD_IRQHandler()
1444 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_ESOF); in HAL_PCD_IRQHandler()
1456 void HAL_PCD_WKUP_IRQHandler(PCD_HandleTypeDef *hpcd) in HAL_PCD_WKUP_IRQHandler() argument
1469 __weak void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_DataOutStageCallback() argument
1472 UNUSED(hpcd); in HAL_PCD_DataOutStageCallback()
1486 __weak void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_DataInStageCallback() argument
1489 UNUSED(hpcd); in HAL_PCD_DataInStageCallback()
1501 __weak void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_SetupStageCallback() argument
1504 UNUSED(hpcd); in HAL_PCD_SetupStageCallback()
1516 __weak void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_SOFCallback() argument
1519 UNUSED(hpcd); in HAL_PCD_SOFCallback()
1531 __weak void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_ResetCallback() argument
1534 UNUSED(hpcd); in HAL_PCD_ResetCallback()
1546 __weak void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_SuspendCallback() argument
1549 UNUSED(hpcd); in HAL_PCD_SuspendCallback()
1561 __weak void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_ResumeCallback() argument
1564 UNUSED(hpcd); in HAL_PCD_ResumeCallback()
1577 __weak void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_ISOOUTIncompleteCallback() argument
1580 UNUSED(hpcd); in HAL_PCD_ISOOUTIncompleteCallback()
1594 __weak void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_ISOINIncompleteCallback() argument
1597 UNUSED(hpcd); in HAL_PCD_ISOINIncompleteCallback()
1610 __weak void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_ConnectCallback() argument
1613 UNUSED(hpcd); in HAL_PCD_ConnectCallback()
1625 __weak void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_DisconnectCallback() argument
1628 UNUSED(hpcd); in HAL_PCD_DisconnectCallback()
1659 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd) in HAL_PCD_DevConnect() argument
1661 __HAL_LOCK(hpcd); in HAL_PCD_DevConnect()
1664 HAL_PCDEx_SetConnectionState(hpcd, 1U); in HAL_PCD_DevConnect()
1667 (void)USB_DevConnect(hpcd->Instance); in HAL_PCD_DevConnect()
1668 __HAL_UNLOCK(hpcd); in HAL_PCD_DevConnect()
1678 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd) in HAL_PCD_DevDisconnect() argument
1680 __HAL_LOCK(hpcd); in HAL_PCD_DevDisconnect()
1683 HAL_PCDEx_SetConnectionState(hpcd, 0U); in HAL_PCD_DevDisconnect()
1686 (void)USB_DevDisconnect(hpcd->Instance); in HAL_PCD_DevDisconnect()
1687 __HAL_UNLOCK(hpcd); in HAL_PCD_DevDisconnect()
1698 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address) in HAL_PCD_SetAddress() argument
1700 __HAL_LOCK(hpcd); in HAL_PCD_SetAddress()
1701 hpcd->USB_Address = address; in HAL_PCD_SetAddress()
1702 (void)USB_SetDevAddress(hpcd->Instance, address); in HAL_PCD_SetAddress()
1703 __HAL_UNLOCK(hpcd); in HAL_PCD_SetAddress()
1715 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, in HAL_PCD_EP_Open() argument
1723 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1728 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1750 __HAL_LOCK(hpcd); in HAL_PCD_EP_Open()
1751 (void)USB_ActivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Open()
1752 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_Open()
1763 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_Close() argument
1769 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
1774 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
1779 __HAL_LOCK(hpcd); in HAL_PCD_EP_Close()
1780 (void)USB_DeactivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Close()
1781 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_Close()
1794 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint3… in HAL_PCD_EP_Receive() argument
1798 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Receive()
1807 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Receive()
1818 uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr) in HAL_PCD_EP_GetRxCount() argument
1820 return hpcd->OUT_ep[ep_addr & EP_ADDR_MSK].xfer_count; in HAL_PCD_EP_GetRxCount()
1830 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint… in HAL_PCD_EP_Transmit() argument
1834 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Transmit()
1847 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Transmit()
1858 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_SetStall() argument
1862 if (((uint32_t)ep_addr & EP_ADDR_MSK) > hpcd->Init.dev_endpoints) in HAL_PCD_EP_SetStall()
1869 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_SetStall()
1874 ep = &hpcd->OUT_ep[ep_addr]; in HAL_PCD_EP_SetStall()
1881 __HAL_LOCK(hpcd); in HAL_PCD_EP_SetStall()
1883 (void)USB_EPSetStall(hpcd->Instance, ep); in HAL_PCD_EP_SetStall()
1887 (void)USB_EP0_OutStart(hpcd->Instance, (uint8_t *)hpcd->Setup); in HAL_PCD_EP_SetStall()
1890 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_SetStall()
1901 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_ClrStall() argument
1905 if (((uint32_t)ep_addr & 0x0FU) > hpcd->Init.dev_endpoints) in HAL_PCD_EP_ClrStall()
1912 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
1917 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
1924 __HAL_LOCK(hpcd); in HAL_PCD_EP_ClrStall()
1925 (void)USB_EPClearStall(hpcd->Instance, ep); in HAL_PCD_EP_ClrStall()
1926 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_ClrStall()
1937 HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_Abort() argument
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()
1963 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_Flush() argument
1965 __HAL_LOCK(hpcd); in HAL_PCD_EP_Flush()
1969 (void)USB_FlushTxFifo(hpcd->Instance, (uint32_t)ep_addr & EP_ADDR_MSK); in HAL_PCD_EP_Flush()
1973 (void)USB_FlushRxFifo(hpcd->Instance); in HAL_PCD_EP_Flush()
1976 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_Flush()
1986 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) in HAL_PCD_ActivateRemoteWakeup() argument
1988 return (USB_ActivateRemoteWakeup(hpcd->Instance)); in HAL_PCD_ActivateRemoteWakeup()
1996 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) in HAL_PCD_DeActivateRemoteWakeup() argument
1998 return (USB_DeActivateRemoteWakeup(hpcd->Instance)); in HAL_PCD_DeActivateRemoteWakeup()
2025 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd) in HAL_PCD_GetState() argument
2027 return hpcd->State; in HAL_PCD_GetState()
2049 static HAL_StatusTypeDef PCD_WriteEmptyTxFifo(PCD_HandleTypeDef *hpcd, uint32_t epnum) in PCD_WriteEmptyTxFifo() argument
2051 USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; in PCD_WriteEmptyTxFifo()
2058 ep = &hpcd->IN_ep[epnum]; in PCD_WriteEmptyTxFifo()
2108 static HAL_StatusTypeDef PCD_EP_OutXfrComplete_int(PCD_HandleTypeDef *hpcd, uint32_t epnum) in PCD_EP_OutXfrComplete_int() argument
2110 const USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; in PCD_EP_OutXfrComplete_int()
2130 hpcd->DataOutStageCallback(hpcd, (uint8_t)epnum); in PCD_EP_OutXfrComplete_int()
2132 HAL_PCD_DataOutStageCallback(hpcd, (uint8_t)epnum); in PCD_EP_OutXfrComplete_int()
2139 hpcd->DataOutStageCallback(hpcd, (uint8_t)epnum); in PCD_EP_OutXfrComplete_int()
2141 HAL_PCD_DataOutStageCallback(hpcd, (uint8_t)epnum); in PCD_EP_OutXfrComplete_int()
2155 static HAL_StatusTypeDef PCD_EP_OutSetupPacket_int(PCD_HandleTypeDef *hpcd, uint32_t epnum) in PCD_EP_OutSetupPacket_int() argument
2157 const USB_OTG_GlobalTypeDef *USBx = hpcd->Instance; in PCD_EP_OutSetupPacket_int()
2170 hpcd->SetupStageCallback(hpcd); in PCD_EP_OutSetupPacket_int()
2172 HAL_PCD_SetupStageCallback(hpcd); in PCD_EP_OutSetupPacket_int()
2185 static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) in PCD_EP_ISR_Handler() argument
2199 while ((hpcd->Instance->ISTR & USB_ISTR_CTR) != 0U) in PCD_EP_ISR_Handler()
2201 wIstr = hpcd->Instance->ISTR; in PCD_EP_ISR_Handler()
2217 PCD_CLEAR_TX_EP_CTR(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
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()
2225 hpcd->DataInStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
2227 HAL_PCD_DataInStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
2230 if ((hpcd->USB_Address > 0U) && (ep->xfer_len == 0U)) in PCD_EP_ISR_Handler()
2232 hpcd->Instance->DADDR = ((uint16_t)hpcd->USB_Address | USB_DADDR_EF); in PCD_EP_ISR_Handler()
2233 hpcd->USB_Address = 0U; in PCD_EP_ISR_Handler()
2242 ep = &hpcd->OUT_ep[0]; in PCD_EP_ISR_Handler()
2243 wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
2248 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2250 USB_ReadPMA(hpcd->Instance, (uint8_t *)hpcd->Setup, in PCD_EP_ISR_Handler()
2254 PCD_CLEAR_RX_EP_CTR(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
2258 hpcd->SetupStageCallback(hpcd); in PCD_EP_ISR_Handler()
2260 HAL_PCD_SetupStageCallback(hpcd); in PCD_EP_ISR_Handler()
2265 PCD_CLEAR_RX_EP_CTR(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
2268 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
2272 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, in PCD_EP_ISR_Handler()
2279 hpcd->DataOutStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
2281 HAL_PCD_DataOutStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
2285 wEPVal = (uint16_t)PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
2289 PCD_SET_EP_RX_CNT(hpcd->Instance, PCD_ENDP0, ep->maxpacket); in PCD_EP_ISR_Handler()
2290 PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); in PCD_EP_ISR_Handler()
2299 wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, epindex); in PCD_EP_ISR_Handler()
2304 PCD_CLEAR_RX_EP_CTR(hpcd->Instance, epindex); in PCD_EP_ISR_Handler()
2305 ep = &hpcd->OUT_ep[epindex]; 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()
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()
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()
2378 PCD_CLEAR_TX_EP_CTR(hpcd->Instance, epindex); 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()
2427 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
2429 HAL_PCD_DataInStageCallback(hpcd, ep->num); 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()
2464 static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, 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()
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()
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()
2545 static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, 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()
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()
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()
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()
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()