Lines Matching refs:hhcd
78 static void HCD_HC_IN_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum);
79 static void HCD_HC_OUT_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum);
80 static void HCD_RXQLVL_IRQHandler(HCD_HandleTypeDef *hhcd);
81 static void HCD_Port_IRQHandler(HCD_HandleTypeDef *hhcd);
109 HAL_StatusTypeDef HAL_HCD_Init(HCD_HandleTypeDef *hhcd) in HAL_HCD_Init() argument
116 if (hhcd == NULL) in HAL_HCD_Init()
122 assert_param(IS_HCD_ALL_INSTANCE(hhcd->Instance)); in HAL_HCD_Init()
125 USBx = hhcd->Instance; in HAL_HCD_Init()
128 if (hhcd->State == HAL_HCD_STATE_RESET) in HAL_HCD_Init()
131 hhcd->Lock = HAL_UNLOCKED; in HAL_HCD_Init()
134 hhcd->SOFCallback = HAL_HCD_SOF_Callback; in HAL_HCD_Init()
135 hhcd->ConnectCallback = HAL_HCD_Connect_Callback; in HAL_HCD_Init()
136 hhcd->DisconnectCallback = HAL_HCD_Disconnect_Callback; in HAL_HCD_Init()
137 hhcd->PortEnabledCallback = HAL_HCD_PortEnabled_Callback; in HAL_HCD_Init()
138 hhcd->PortDisabledCallback = HAL_HCD_PortDisabled_Callback; in HAL_HCD_Init()
139 hhcd->HC_NotifyURBChangeCallback = HAL_HCD_HC_NotifyURBChange_Callback; in HAL_HCD_Init()
141 if (hhcd->MspInitCallback == NULL) in HAL_HCD_Init()
143 hhcd->MspInitCallback = HAL_HCD_MspInit; in HAL_HCD_Init()
147 hhcd->MspInitCallback(hhcd); in HAL_HCD_Init()
150 HAL_HCD_MspInit(hhcd); in HAL_HCD_Init()
154 hhcd->State = HAL_HCD_STATE_BUSY; in HAL_HCD_Init()
160 hhcd->Init.dma_enable = 0U; in HAL_HCD_Init()
165 __HAL_HCD_DISABLE(hhcd); in HAL_HCD_Init()
168 if (USB_CoreInit(hhcd->Instance, hhcd->Init) != HAL_OK) in HAL_HCD_Init()
170 hhcd->State = HAL_HCD_STATE_ERROR; in HAL_HCD_Init()
175 if (USB_SetCurrentMode(hhcd->Instance, USB_HOST_MODE) != HAL_OK) in HAL_HCD_Init()
177 hhcd->State = HAL_HCD_STATE_ERROR; in HAL_HCD_Init()
182 if (USB_HostInit(hhcd->Instance, hhcd->Init) != HAL_OK) in HAL_HCD_Init()
184 hhcd->State = HAL_HCD_STATE_ERROR; in HAL_HCD_Init()
188 hhcd->State = HAL_HCD_STATE_READY; in HAL_HCD_Init()
217 HAL_StatusTypeDef HAL_HCD_HC_Init(HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t epnum, in HAL_HCD_HC_Init() argument
224 __HAL_LOCK(hhcd); in HAL_HCD_HC_Init()
225 hhcd->hc[ch_num].do_ping = 0U; in HAL_HCD_HC_Init()
226 hhcd->hc[ch_num].dev_addr = dev_address; in HAL_HCD_HC_Init()
227 hhcd->hc[ch_num].ch_num = ch_num; in HAL_HCD_HC_Init()
228 hhcd->hc[ch_num].ep_type = ep_type; in HAL_HCD_HC_Init()
229 hhcd->hc[ch_num].ep_num = epnum & 0x7FU; in HAL_HCD_HC_Init()
231 (void)HAL_HCD_HC_ClearHubInfo(hhcd, ch_num); in HAL_HCD_HC_Init()
235 hhcd->hc[ch_num].ep_is_in = 1U; in HAL_HCD_HC_Init()
239 hhcd->hc[ch_num].ep_is_in = 0U; in HAL_HCD_HC_Init()
242 HostCoreSpeed = USB_GetHostSpeed(hhcd->Instance); in HAL_HCD_HC_Init()
257 hhcd->hc[ch_num].speed = speed; in HAL_HCD_HC_Init()
258 hhcd->hc[ch_num].max_packet = (uint16_t)HCcharMps; in HAL_HCD_HC_Init()
260 status = USB_HC_Init(hhcd->Instance, ch_num, epnum, in HAL_HCD_HC_Init()
263 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
275 HAL_StatusTypeDef HAL_HCD_HC_Halt(HCD_HandleTypeDef *hhcd, uint8_t ch_num) in HAL_HCD_HC_Halt() argument
279 __HAL_LOCK(hhcd); in HAL_HCD_HC_Halt()
280 (void)USB_HC_Halt(hhcd->Instance, ch_num); in HAL_HCD_HC_Halt()
281 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Halt()
291 HAL_StatusTypeDef HAL_HCD_DeInit(HCD_HandleTypeDef *hhcd) in HAL_HCD_DeInit() argument
294 if (hhcd == NULL) in HAL_HCD_DeInit()
299 hhcd->State = HAL_HCD_STATE_BUSY; in HAL_HCD_DeInit()
302 if (hhcd->MspDeInitCallback == NULL) in HAL_HCD_DeInit()
304 hhcd->MspDeInitCallback = HAL_HCD_MspDeInit; /* Legacy weak MspDeInit */ in HAL_HCD_DeInit()
308 hhcd->MspDeInitCallback(hhcd); in HAL_HCD_DeInit()
311 HAL_HCD_MspDeInit(hhcd); in HAL_HCD_DeInit()
314 __HAL_HCD_DISABLE(hhcd); in HAL_HCD_DeInit()
316 hhcd->State = HAL_HCD_STATE_RESET; in HAL_HCD_DeInit()
326 __weak void HAL_HCD_MspInit(HCD_HandleTypeDef *hhcd) in HAL_HCD_MspInit() argument
329 UNUSED(hhcd); in HAL_HCD_MspInit()
341 __weak void HAL_HCD_MspDeInit(HCD_HandleTypeDef *hhcd) in HAL_HCD_MspDeInit() argument
344 UNUSED(hhcd); in HAL_HCD_MspDeInit()
393 HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd, in HAL_HCD_HC_SubmitRequest() argument
402 hhcd->hc[ch_num].ep_is_in = direction; in HAL_HCD_HC_SubmitRequest()
403 hhcd->hc[ch_num].ep_type = ep_type; in HAL_HCD_HC_SubmitRequest()
407 hhcd->hc[ch_num].data_pid = HC_PID_SETUP; in HAL_HCD_HC_SubmitRequest()
408 hhcd->hc[ch_num].do_ping = do_ping; in HAL_HCD_HC_SubmitRequest()
412 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
426 hhcd->hc[ch_num].toggle_out = 1U; in HAL_HCD_HC_SubmitRequest()
430 if (hhcd->hc[ch_num].toggle_out == 0U) in HAL_HCD_HC_SubmitRequest()
433 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
438 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
443 if (hhcd->hc[ch_num].do_ssplit == 1U) in HAL_HCD_HC_SubmitRequest()
445 if (hhcd->hc[ch_num].toggle_in == 0U) in HAL_HCD_HC_SubmitRequest()
447 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
451 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
462 if (hhcd->hc[ch_num].toggle_out == 0U) in HAL_HCD_HC_SubmitRequest()
465 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
470 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
475 if (hhcd->hc[ch_num].toggle_in == 0U) in HAL_HCD_HC_SubmitRequest()
477 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
481 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
490 if (hhcd->hc[ch_num].toggle_out == 0U) in HAL_HCD_HC_SubmitRequest()
493 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
498 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
503 if (hhcd->hc[ch_num].toggle_in == 0U) in HAL_HCD_HC_SubmitRequest()
505 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
509 hhcd->hc[ch_num].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
515 hhcd->hc[ch_num].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
522 hhcd->hc[ch_num].xfer_buff = pbuff; in HAL_HCD_HC_SubmitRequest()
523 hhcd->hc[ch_num].xfer_len = length; in HAL_HCD_HC_SubmitRequest()
524 hhcd->hc[ch_num].urb_state = URB_IDLE; in HAL_HCD_HC_SubmitRequest()
525 hhcd->hc[ch_num].xfer_count = 0U; in HAL_HCD_HC_SubmitRequest()
526 hhcd->hc[ch_num].ch_num = ch_num; in HAL_HCD_HC_SubmitRequest()
527 hhcd->hc[ch_num].state = HC_IDLE; in HAL_HCD_HC_SubmitRequest()
529 return USB_HC_StartXfer(hhcd->Instance, &hhcd->hc[ch_num], (uint8_t)hhcd->Init.dma_enable); in HAL_HCD_HC_SubmitRequest()
537 void HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd) in HAL_HCD_IRQHandler() argument
539 USB_OTG_GlobalTypeDef *USBx = hhcd->Instance; in HAL_HCD_IRQHandler()
545 if (USB_GetMode(hhcd->Instance) == USB_OTG_MODE_HOST) in HAL_HCD_IRQHandler()
548 if (__HAL_HCD_IS_INVALID_INTERRUPT(hhcd)) in HAL_HCD_IRQHandler()
553 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT)) in HAL_HCD_IRQHandler()
556 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT); in HAL_HCD_IRQHandler()
559 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_IISOIXFR)) in HAL_HCD_IRQHandler()
562 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_IISOIXFR); in HAL_HCD_IRQHandler()
565 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_PTXFE)) in HAL_HCD_IRQHandler()
568 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_PTXFE); in HAL_HCD_IRQHandler()
571 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_MMIS)) in HAL_HCD_IRQHandler()
574 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_MMIS); in HAL_HCD_IRQHandler()
578 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_DISCINT)) in HAL_HCD_IRQHandler()
580 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_DISCINT); in HAL_HCD_IRQHandler()
588 if (hhcd->Init.phy_itface == USB_OTG_EMBEDDED_PHY) in HAL_HCD_IRQHandler()
591 (void)USB_InitFSLSPClkSel(hhcd->Instance, HCFG_48_MHZ); in HAL_HCD_IRQHandler()
596 hhcd->DisconnectCallback(hhcd); in HAL_HCD_IRQHandler()
598 HAL_HCD_Disconnect_Callback(hhcd); in HAL_HCD_IRQHandler()
604 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_HPRTINT)) in HAL_HCD_IRQHandler()
606 HCD_Port_IRQHandler(hhcd); in HAL_HCD_IRQHandler()
610 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_SOF)) in HAL_HCD_IRQHandler()
613 hhcd->SOFCallback(hhcd); in HAL_HCD_IRQHandler()
615 HAL_HCD_SOF_Callback(hhcd); in HAL_HCD_IRQHandler()
618 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_SOF); in HAL_HCD_IRQHandler()
622 if (__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_HCINT)) in HAL_HCD_IRQHandler()
624 interrupt = USB_HC_ReadInterrupt(hhcd->Instance); in HAL_HCD_IRQHandler()
625 for (i = 0U; i < hhcd->Init.Host_channels; i++) in HAL_HCD_IRQHandler()
631 HCD_HC_IN_IRQHandler(hhcd, (uint8_t)i); in HAL_HCD_IRQHandler()
635 HCD_HC_OUT_IRQHandler(hhcd, (uint8_t)i); in HAL_HCD_IRQHandler()
639 __HAL_HCD_CLEAR_FLAG(hhcd, USB_OTG_GINTSTS_HCINT); in HAL_HCD_IRQHandler()
643 if ((__HAL_HCD_GET_FLAG(hhcd, USB_OTG_GINTSTS_RXFLVL)) != 0U) in HAL_HCD_IRQHandler()
645 USB_MASK_INTERRUPT(hhcd->Instance, USB_OTG_GINTSTS_RXFLVL); in HAL_HCD_IRQHandler()
647 HCD_RXQLVL_IRQHandler(hhcd); in HAL_HCD_IRQHandler()
649 USB_UNMASK_INTERRUPT(hhcd->Instance, USB_OTG_GINTSTS_RXFLVL); in HAL_HCD_IRQHandler()
660 __weak void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_SOF_Callback() argument
663 UNUSED(hhcd); in HAL_HCD_SOF_Callback()
675 __weak void HAL_HCD_Connect_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_Connect_Callback() argument
678 UNUSED(hhcd); in HAL_HCD_Connect_Callback()
690 __weak void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_Disconnect_Callback() argument
693 UNUSED(hhcd); in HAL_HCD_Disconnect_Callback()
705 __weak void HAL_HCD_PortEnabled_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_PortEnabled_Callback() argument
708 UNUSED(hhcd); in HAL_HCD_PortEnabled_Callback()
720 __weak void HAL_HCD_PortDisabled_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_PortDisabled_Callback() argument
723 UNUSED(hhcd); in HAL_HCD_PortDisabled_Callback()
745 __weak void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef *hhcd, uint8_t chnum, HCD_URBStat… in HAL_HCD_HC_NotifyURBChange_Callback() argument
748 UNUSED(hhcd); in HAL_HCD_HC_NotifyURBChange_Callback()
774 HAL_StatusTypeDef HAL_HCD_RegisterCallback(HCD_HandleTypeDef *hhcd, in HAL_HCD_RegisterCallback() argument
783 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
787 __HAL_LOCK(hhcd); in HAL_HCD_RegisterCallback()
789 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_RegisterCallback()
794 hhcd->SOFCallback = pCallback; in HAL_HCD_RegisterCallback()
798 hhcd->ConnectCallback = pCallback; in HAL_HCD_RegisterCallback()
802 hhcd->DisconnectCallback = pCallback; in HAL_HCD_RegisterCallback()
806 hhcd->PortEnabledCallback = pCallback; in HAL_HCD_RegisterCallback()
810 hhcd->PortDisabledCallback = pCallback; in HAL_HCD_RegisterCallback()
814 hhcd->MspInitCallback = pCallback; in HAL_HCD_RegisterCallback()
818 hhcd->MspDeInitCallback = pCallback; in HAL_HCD_RegisterCallback()
823 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
829 else if (hhcd->State == HAL_HCD_STATE_RESET) in HAL_HCD_RegisterCallback()
834 hhcd->MspInitCallback = pCallback; in HAL_HCD_RegisterCallback()
838 hhcd->MspDeInitCallback = pCallback; in HAL_HCD_RegisterCallback()
843 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
852 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
858 __HAL_UNLOCK(hhcd); in HAL_HCD_RegisterCallback()
877 HAL_StatusTypeDef HAL_HCD_UnRegisterCallback(HCD_HandleTypeDef *hhcd, HAL_HCD_CallbackIDTypeDef Cal… in HAL_HCD_UnRegisterCallback() argument
882 __HAL_LOCK(hhcd); in HAL_HCD_UnRegisterCallback()
885 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_UnRegisterCallback()
890 hhcd->SOFCallback = HAL_HCD_SOF_Callback; in HAL_HCD_UnRegisterCallback()
894 hhcd->ConnectCallback = HAL_HCD_Connect_Callback; in HAL_HCD_UnRegisterCallback()
898 hhcd->DisconnectCallback = HAL_HCD_Disconnect_Callback; in HAL_HCD_UnRegisterCallback()
902 hhcd->PortEnabledCallback = HAL_HCD_PortEnabled_Callback; in HAL_HCD_UnRegisterCallback()
906 hhcd->PortDisabledCallback = HAL_HCD_PortDisabled_Callback; in HAL_HCD_UnRegisterCallback()
910 hhcd->MspInitCallback = HAL_HCD_MspInit; in HAL_HCD_UnRegisterCallback()
914 hhcd->MspDeInitCallback = HAL_HCD_MspDeInit; in HAL_HCD_UnRegisterCallback()
919 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterCallback()
926 else if (hhcd->State == HAL_HCD_STATE_RESET) in HAL_HCD_UnRegisterCallback()
931 hhcd->MspInitCallback = HAL_HCD_MspInit; in HAL_HCD_UnRegisterCallback()
935 hhcd->MspDeInitCallback = HAL_HCD_MspDeInit; in HAL_HCD_UnRegisterCallback()
940 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterCallback()
950 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterCallback()
957 __HAL_UNLOCK(hhcd); in HAL_HCD_UnRegisterCallback()
968 HAL_StatusTypeDef HAL_HCD_RegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd, in HAL_HCD_RegisterHC_NotifyURBChangeCallback() argument
976 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
982 __HAL_LOCK(hhcd); in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
984 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
986 hhcd->HC_NotifyURBChangeCallback = pCallback; in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
991 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
998 __HAL_UNLOCK(hhcd); in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1010 HAL_StatusTypeDef HAL_HCD_UnRegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd) in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback() argument
1015 __HAL_LOCK(hhcd); in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1017 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1019 …hhcd->HC_NotifyURBChangeCallback = HAL_HCD_HC_NotifyURBChange_Callback; /* Legacy weak DataOutStag… in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1024 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1031 __HAL_UNLOCK(hhcd); in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1061 HAL_StatusTypeDef HAL_HCD_Start(HCD_HandleTypeDef *hhcd) in HAL_HCD_Start() argument
1063 __HAL_LOCK(hhcd); in HAL_HCD_Start()
1065 (void)USB_DriveVbus(hhcd->Instance, 1U); in HAL_HCD_Start()
1068 __HAL_HCD_ENABLE(hhcd); in HAL_HCD_Start()
1069 __HAL_UNLOCK(hhcd); in HAL_HCD_Start()
1080 HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd) in HAL_HCD_Stop() argument
1082 __HAL_LOCK(hhcd); in HAL_HCD_Stop()
1083 (void)USB_StopHost(hhcd->Instance); in HAL_HCD_Stop()
1084 __HAL_UNLOCK(hhcd); in HAL_HCD_Stop()
1094 HAL_StatusTypeDef HAL_HCD_ResetPort(HCD_HandleTypeDef *hhcd) in HAL_HCD_ResetPort() argument
1096 return (USB_ResetPort(hhcd->Instance)); in HAL_HCD_ResetPort()
1123 HCD_StateTypeDef HAL_HCD_GetState(HCD_HandleTypeDef const *hhcd) in HAL_HCD_GetState() argument
1125 return hhcd->State; in HAL_HCD_GetState()
1142 HCD_URBStateTypeDef HAL_HCD_HC_GetURBState(HCD_HandleTypeDef const *hhcd, uint8_t chnum) in HAL_HCD_HC_GetURBState() argument
1144 return hhcd->hc[chnum].urb_state; in HAL_HCD_HC_GetURBState()
1155 uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef const *hhcd, uint8_t chnum) in HAL_HCD_HC_GetXferCount() argument
1157 return hhcd->hc[chnum].xfer_count; in HAL_HCD_HC_GetXferCount()
1177 HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef const *hhcd, uint8_t chnum) in HAL_HCD_HC_GetState() argument
1179 return hhcd->hc[chnum].state; in HAL_HCD_HC_GetState()
1187 uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd) in HAL_HCD_GetCurrentFrame() argument
1189 return (USB_GetCurrentFrame(hhcd->Instance)); in HAL_HCD_GetCurrentFrame()
1197 uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd) in HAL_HCD_GetCurrentSpeed() argument
1199 return (USB_GetHostSpeed(hhcd->Instance)); in HAL_HCD_GetCurrentSpeed()
1211 HAL_StatusTypeDef HAL_HCD_HC_SetHubInfo(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HAL_HCD_HC_SetHubInfo() argument
1214 uint32_t HostCoreSpeed = USB_GetHostSpeed(hhcd->Instance); in HAL_HCD_HC_SetHubInfo()
1217 …if ((hhcd->hc[ch_num].speed != HCD_DEVICE_SPEED_HIGH) && (HostCoreSpeed == HPRT0_PRTSPD_HIGH_SPEED… in HAL_HCD_HC_SetHubInfo()
1219 hhcd->hc[ch_num].do_ssplit = 1U; in HAL_HCD_HC_SetHubInfo()
1221 if ((hhcd->hc[ch_num].ep_type == EP_TYPE_CTRL) && (hhcd->hc[ch_num].ep_is_in != 0U)) in HAL_HCD_HC_SetHubInfo()
1223 hhcd->hc[ch_num].toggle_in = 1U; in HAL_HCD_HC_SetHubInfo()
1227 hhcd->hc[ch_num].hub_addr = addr; in HAL_HCD_HC_SetHubInfo()
1228 hhcd->hc[ch_num].hub_port_nbr = PortNbr; in HAL_HCD_HC_SetHubInfo()
1241 HAL_StatusTypeDef HAL_HCD_HC_ClearHubInfo(HCD_HandleTypeDef *hhcd, uint8_t ch_num) in HAL_HCD_HC_ClearHubInfo() argument
1243 hhcd->hc[ch_num].do_ssplit = 0U; in HAL_HCD_HC_ClearHubInfo()
1244 hhcd->hc[ch_num].do_csplit = 0U; in HAL_HCD_HC_ClearHubInfo()
1245 hhcd->hc[ch_num].hub_addr = 0U; in HAL_HCD_HC_ClearHubInfo()
1246 hhcd->hc[ch_num].hub_port_nbr = 0U; in HAL_HCD_HC_ClearHubInfo()
1268 static void HCD_HC_IN_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum) in HCD_HC_IN_IRQHandler() argument
1270 const USB_OTG_GlobalTypeDef *USBx = hhcd->Instance; in HCD_HC_IN_IRQHandler()
1274 if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_AHBERR)) in HCD_HC_IN_IRQHandler()
1277 hhcd->hc[chnum].state = HC_XACTERR; in HCD_HC_IN_IRQHandler()
1278 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1280 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_BBERR)) in HCD_HC_IN_IRQHandler()
1283 hhcd->hc[chnum].state = HC_BBLERR; in HCD_HC_IN_IRQHandler()
1284 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1286 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_STALL)) in HCD_HC_IN_IRQHandler()
1289 hhcd->hc[chnum].state = HC_STALL; in HCD_HC_IN_IRQHandler()
1290 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1292 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_DTERR)) in HCD_HC_IN_IRQHandler()
1295 hhcd->hc[chnum].state = HC_DATATGLERR; in HCD_HC_IN_IRQHandler()
1296 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1298 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_TXERR)) in HCD_HC_IN_IRQHandler()
1301 hhcd->hc[chnum].state = HC_XACTERR; in HCD_HC_IN_IRQHandler()
1302 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1309 if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_FRMOR)) in HCD_HC_IN_IRQHandler()
1311 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1314 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_XFRC)) in HCD_HC_IN_IRQHandler()
1319 if (hhcd->hc[chnum].do_csplit == 1U) in HCD_HC_IN_IRQHandler()
1321 hhcd->hc[chnum].do_csplit = 0U; in HCD_HC_IN_IRQHandler()
1325 if (hhcd->Init.dma_enable != 0U) in HCD_HC_IN_IRQHandler()
1327 …hhcd->hc[chnum].xfer_count = hhcd->hc[chnum].XferSize - (USBx_HC(chnum)->HCTSIZ & USB_OTG_HCTSIZ_X… in HCD_HC_IN_IRQHandler()
1330 hhcd->hc[chnum].state = HC_XFRC; in HCD_HC_IN_IRQHandler()
1331 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1334 if ((hhcd->hc[chnum].ep_type == EP_TYPE_CTRL) || in HCD_HC_IN_IRQHandler()
1335 (hhcd->hc[chnum].ep_type == EP_TYPE_BULK)) in HCD_HC_IN_IRQHandler()
1337 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1340 else if ((hhcd->hc[chnum].ep_type == EP_TYPE_INTR) || in HCD_HC_IN_IRQHandler()
1341 (hhcd->hc[chnum].ep_type == EP_TYPE_ISOC)) in HCD_HC_IN_IRQHandler()
1344 hhcd->hc[chnum].urb_state = URB_DONE; in HCD_HC_IN_IRQHandler()
1347 hhcd->HC_NotifyURBChangeCallback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_IN_IRQHandler()
1349 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_IN_IRQHandler()
1357 if (hhcd->Init.dma_enable == 1U) in HCD_HC_IN_IRQHandler()
1359 …if ((((hhcd->hc[chnum].xfer_count + hhcd->hc[chnum].max_packet - 1U) / hhcd->hc[chnum].max_packet)… in HCD_HC_IN_IRQHandler()
1361 hhcd->hc[chnum].toggle_in ^= 1U; in HCD_HC_IN_IRQHandler()
1366 hhcd->hc[chnum].toggle_in ^= 1U; in HCD_HC_IN_IRQHandler()
1369 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_ACK)) in HCD_HC_IN_IRQHandler()
1373 if (hhcd->hc[chnum].do_ssplit == 1U) in HCD_HC_IN_IRQHandler()
1375 hhcd->hc[chnum].do_csplit = 1U; in HCD_HC_IN_IRQHandler()
1376 hhcd->hc[chnum].state = HC_ACK; in HCD_HC_IN_IRQHandler()
1378 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1381 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_CHH)) in HCD_HC_IN_IRQHandler()
1385 if (hhcd->hc[chnum].state == HC_XFRC) in HCD_HC_IN_IRQHandler()
1387 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1388 hhcd->hc[chnum].urb_state = URB_DONE; in HCD_HC_IN_IRQHandler()
1390 else if (hhcd->hc[chnum].state == HC_STALL) in HCD_HC_IN_IRQHandler()
1392 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1393 hhcd->hc[chnum].urb_state = URB_STALL; in HCD_HC_IN_IRQHandler()
1395 else if ((hhcd->hc[chnum].state == HC_XACTERR) || in HCD_HC_IN_IRQHandler()
1396 (hhcd->hc[chnum].state == HC_DATATGLERR)) in HCD_HC_IN_IRQHandler()
1398 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1399 hhcd->hc[chnum].ErrCnt++; in HCD_HC_IN_IRQHandler()
1400 if (hhcd->hc[chnum].ErrCnt > 2U) in HCD_HC_IN_IRQHandler()
1402 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1404 if (hhcd->hc[chnum].do_ssplit == 1U) in HCD_HC_IN_IRQHandler()
1406 hhcd->hc[chnum].do_csplit = 0U; in HCD_HC_IN_IRQHandler()
1407 hhcd->hc[chnum].ep_ss_schedule = 0U; in HCD_HC_IN_IRQHandler()
1411 hhcd->hc[chnum].urb_state = URB_ERROR; in HCD_HC_IN_IRQHandler()
1415 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1417 if ((hhcd->hc[chnum].ep_type == EP_TYPE_CTRL) || in HCD_HC_IN_IRQHandler()
1418 (hhcd->hc[chnum].ep_type == EP_TYPE_BULK)) in HCD_HC_IN_IRQHandler()
1428 else if (hhcd->hc[chnum].state == HC_NYET) in HCD_HC_IN_IRQHandler()
1430 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1432 if (hhcd->hc[chnum].do_csplit == 1U) in HCD_HC_IN_IRQHandler()
1434 if (hhcd->hc[chnum].ep_type == EP_TYPE_INTR) in HCD_HC_IN_IRQHandler()
1436 hhcd->hc[chnum].NyetErrCnt++; in HCD_HC_IN_IRQHandler()
1437 if (hhcd->hc[chnum].NyetErrCnt > 2U) in HCD_HC_IN_IRQHandler()
1439 hhcd->hc[chnum].NyetErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1440 hhcd->hc[chnum].do_csplit = 0U; in HCD_HC_IN_IRQHandler()
1442 if (hhcd->hc[chnum].ErrCnt < 3U) in HCD_HC_IN_IRQHandler()
1444 hhcd->hc[chnum].ep_ss_schedule = 1U; in HCD_HC_IN_IRQHandler()
1447 hhcd->hc[chnum].urb_state = URB_ERROR; in HCD_HC_IN_IRQHandler()
1451 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1456 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1459 if ((hhcd->hc[chnum].ep_type == EP_TYPE_CTRL) || in HCD_HC_IN_IRQHandler()
1460 (hhcd->hc[chnum].ep_type == EP_TYPE_BULK)) in HCD_HC_IN_IRQHandler()
1470 else if (hhcd->hc[chnum].state == HC_ACK) in HCD_HC_IN_IRQHandler()
1472 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1474 if (hhcd->hc[chnum].do_csplit == 1U) in HCD_HC_IN_IRQHandler()
1476 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1483 if ((hhcd->hc[chnum].ep_type == EP_TYPE_CTRL) || in HCD_HC_IN_IRQHandler()
1484 (hhcd->hc[chnum].ep_type == EP_TYPE_BULK)) in HCD_HC_IN_IRQHandler()
1494 else if (hhcd->hc[chnum].state == HC_NAK) in HCD_HC_IN_IRQHandler()
1496 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1497 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1499 if ((hhcd->hc[chnum].ep_type == EP_TYPE_CTRL) || in HCD_HC_IN_IRQHandler()
1500 (hhcd->hc[chnum].ep_type == EP_TYPE_BULK)) in HCD_HC_IN_IRQHandler()
1509 else if (hhcd->hc[chnum].state == HC_BBLERR) in HCD_HC_IN_IRQHandler()
1511 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_IN_IRQHandler()
1512 hhcd->hc[chnum].ErrCnt++; in HCD_HC_IN_IRQHandler()
1513 hhcd->hc[chnum].urb_state = URB_ERROR; in HCD_HC_IN_IRQHandler()
1517 if (hhcd->hc[chnum].state == HC_HALTED) in HCD_HC_IN_IRQHandler()
1524 hhcd->HC_NotifyURBChangeCallback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_IN_IRQHandler()
1526 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_IN_IRQHandler()
1529 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_NYET)) in HCD_HC_IN_IRQHandler()
1532 hhcd->hc[chnum].state = HC_NYET; in HCD_HC_IN_IRQHandler()
1534 if (hhcd->hc[chnum].do_ssplit == 0U) in HCD_HC_IN_IRQHandler()
1536 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1539 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1541 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_NAK)) in HCD_HC_IN_IRQHandler()
1543 if (hhcd->hc[chnum].ep_type == EP_TYPE_INTR) in HCD_HC_IN_IRQHandler()
1545 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1546 hhcd->hc[chnum].state = HC_NAK; in HCD_HC_IN_IRQHandler()
1547 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1549 else if ((hhcd->hc[chnum].ep_type == EP_TYPE_CTRL) || in HCD_HC_IN_IRQHandler()
1550 (hhcd->hc[chnum].ep_type == EP_TYPE_BULK)) in HCD_HC_IN_IRQHandler()
1552 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1554 if ((hhcd->Init.dma_enable == 0U) || (hhcd->hc[chnum].do_csplit == 1U)) in HCD_HC_IN_IRQHandler()
1556 hhcd->hc[chnum].state = HC_NAK; in HCD_HC_IN_IRQHandler()
1557 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_IN_IRQHandler()
1565 if (hhcd->hc[chnum].do_csplit == 1U) in HCD_HC_IN_IRQHandler()
1567 hhcd->hc[chnum].do_csplit = 0U; in HCD_HC_IN_IRQHandler()
1587 static void HCD_HC_OUT_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum) in HCD_HC_OUT_IRQHandler() argument
1589 const USB_OTG_GlobalTypeDef *USBx = hhcd->Instance; in HCD_HC_OUT_IRQHandler()
1594 if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_AHBERR)) in HCD_HC_OUT_IRQHandler()
1597 hhcd->hc[chnum].state = HC_XACTERR; in HCD_HC_OUT_IRQHandler()
1598 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1600 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_ACK)) in HCD_HC_OUT_IRQHandler()
1604 if (hhcd->hc[chnum].do_ping == 1U) in HCD_HC_OUT_IRQHandler()
1606 hhcd->hc[chnum].do_ping = 0U; in HCD_HC_OUT_IRQHandler()
1607 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
1608 hhcd->hc[chnum].state = HC_ACK; in HCD_HC_OUT_IRQHandler()
1609 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1612 if ((hhcd->hc[chnum].do_ssplit == 1U) && (hhcd->hc[chnum].do_csplit == 0U)) in HCD_HC_OUT_IRQHandler()
1614 if (hhcd->hc[chnum].ep_type != EP_TYPE_ISOC) in HCD_HC_OUT_IRQHandler()
1616 hhcd->hc[chnum].do_csplit = 1U; in HCD_HC_OUT_IRQHandler()
1619 hhcd->hc[chnum].state = HC_ACK; in HCD_HC_OUT_IRQHandler()
1620 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1623 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
1626 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_FRMOR)) in HCD_HC_OUT_IRQHandler()
1629 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1631 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_XFRC)) in HCD_HC_OUT_IRQHandler()
1633 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
1636 if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_NYET)) in HCD_HC_OUT_IRQHandler()
1638 hhcd->hc[chnum].do_ping = 1U; in HCD_HC_OUT_IRQHandler()
1642 if (hhcd->hc[chnum].do_csplit != 0U) in HCD_HC_OUT_IRQHandler()
1644 hhcd->hc[chnum].do_csplit = 0U; in HCD_HC_OUT_IRQHandler()
1649 hhcd->hc[chnum].state = HC_XFRC; in HCD_HC_OUT_IRQHandler()
1650 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1652 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_NYET)) in HCD_HC_OUT_IRQHandler()
1654 hhcd->hc[chnum].state = HC_NYET; in HCD_HC_OUT_IRQHandler()
1656 if (hhcd->hc[chnum].do_ssplit == 0U) in HCD_HC_OUT_IRQHandler()
1658 hhcd->hc[chnum].do_ping = 1U; in HCD_HC_OUT_IRQHandler()
1661 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
1662 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1665 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_STALL)) in HCD_HC_OUT_IRQHandler()
1668 hhcd->hc[chnum].state = HC_STALL; in HCD_HC_OUT_IRQHandler()
1669 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1671 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_NAK)) in HCD_HC_OUT_IRQHandler()
1673 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
1674 hhcd->hc[chnum].state = HC_NAK; in HCD_HC_OUT_IRQHandler()
1676 if (hhcd->hc[chnum].do_ping == 0U) in HCD_HC_OUT_IRQHandler()
1678 if (hhcd->hc[chnum].speed == HCD_DEVICE_SPEED_HIGH) in HCD_HC_OUT_IRQHandler()
1680 hhcd->hc[chnum].do_ping = 1U; in HCD_HC_OUT_IRQHandler()
1684 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1687 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_TXERR)) in HCD_HC_OUT_IRQHandler()
1689 if (hhcd->Init.dma_enable == 0U) in HCD_HC_OUT_IRQHandler()
1691 hhcd->hc[chnum].state = HC_XACTERR; in HCD_HC_OUT_IRQHandler()
1692 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1696 hhcd->hc[chnum].ErrCnt++; in HCD_HC_OUT_IRQHandler()
1697 if (hhcd->hc[chnum].ErrCnt > 2U) in HCD_HC_OUT_IRQHandler()
1699 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
1700 hhcd->hc[chnum].urb_state = URB_ERROR; in HCD_HC_OUT_IRQHandler()
1703 hhcd->HC_NotifyURBChangeCallback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_OUT_IRQHandler()
1705 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_OUT_IRQHandler()
1710 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
1715 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_DTERR)) in HCD_HC_OUT_IRQHandler()
1717 hhcd->hc[chnum].state = HC_DATATGLERR; in HCD_HC_OUT_IRQHandler()
1718 (void)USB_HC_Halt(hhcd->Instance, chnum); in HCD_HC_OUT_IRQHandler()
1721 else if (__HAL_HCD_GET_CH_FLAG(hhcd, chnum, USB_OTG_HCINT_CHH)) in HCD_HC_OUT_IRQHandler()
1725 if (hhcd->hc[chnum].state == HC_XFRC) in HCD_HC_OUT_IRQHandler()
1727 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_OUT_IRQHandler()
1728 hhcd->hc[chnum].urb_state = URB_DONE; in HCD_HC_OUT_IRQHandler()
1730 if ((hhcd->hc[chnum].ep_type == EP_TYPE_BULK) || in HCD_HC_OUT_IRQHandler()
1731 (hhcd->hc[chnum].ep_type == EP_TYPE_INTR)) in HCD_HC_OUT_IRQHandler()
1733 if (hhcd->Init.dma_enable == 0U) in HCD_HC_OUT_IRQHandler()
1735 hhcd->hc[chnum].toggle_out ^= 1U; in HCD_HC_OUT_IRQHandler()
1738 if ((hhcd->Init.dma_enable == 1U) && (hhcd->hc[chnum].xfer_len > 0U)) in HCD_HC_OUT_IRQHandler()
1740 …num_packets = (hhcd->hc[chnum].xfer_len + hhcd->hc[chnum].max_packet - 1U) / hhcd->hc[chnum].max_p… in HCD_HC_OUT_IRQHandler()
1744 hhcd->hc[chnum].toggle_out ^= 1U; in HCD_HC_OUT_IRQHandler()
1749 else if (hhcd->hc[chnum].state == HC_ACK) in HCD_HC_OUT_IRQHandler()
1751 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_OUT_IRQHandler()
1753 if (hhcd->hc[chnum].do_csplit == 1U) in HCD_HC_OUT_IRQHandler()
1755 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
1758 else if (hhcd->hc[chnum].state == HC_NAK) in HCD_HC_OUT_IRQHandler()
1760 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_OUT_IRQHandler()
1761 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
1763 if (hhcd->hc[chnum].do_csplit == 1U) in HCD_HC_OUT_IRQHandler()
1765 hhcd->hc[chnum].do_csplit = 0U; in HCD_HC_OUT_IRQHandler()
1769 else if (hhcd->hc[chnum].state == HC_NYET) in HCD_HC_OUT_IRQHandler()
1771 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_OUT_IRQHandler()
1772 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
1774 else if (hhcd->hc[chnum].state == HC_STALL) in HCD_HC_OUT_IRQHandler()
1776 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_OUT_IRQHandler()
1777 hhcd->hc[chnum].urb_state = URB_STALL; in HCD_HC_OUT_IRQHandler()
1779 else if ((hhcd->hc[chnum].state == HC_XACTERR) || in HCD_HC_OUT_IRQHandler()
1780 (hhcd->hc[chnum].state == HC_DATATGLERR)) in HCD_HC_OUT_IRQHandler()
1782 hhcd->hc[chnum].state = HC_HALTED; in HCD_HC_OUT_IRQHandler()
1783 hhcd->hc[chnum].ErrCnt++; in HCD_HC_OUT_IRQHandler()
1784 if (hhcd->hc[chnum].ErrCnt > 2U) in HCD_HC_OUT_IRQHandler()
1786 hhcd->hc[chnum].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
1787 hhcd->hc[chnum].urb_state = URB_ERROR; in HCD_HC_OUT_IRQHandler()
1791 hhcd->hc[chnum].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
1806 hhcd->HC_NotifyURBChangeCallback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_OUT_IRQHandler()
1808 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, chnum, hhcd->hc[chnum].urb_state); in HCD_HC_OUT_IRQHandler()
1822 static void HCD_RXQLVL_IRQHandler(HCD_HandleTypeDef *hhcd) in HCD_RXQLVL_IRQHandler() argument
1824 const USB_OTG_GlobalTypeDef *USBx = hhcd->Instance; in HCD_RXQLVL_IRQHandler()
1833 GrxstspReg = hhcd->Instance->GRXSTSP; in HCD_RXQLVL_IRQHandler()
1842 if ((pktcnt > 0U) && (hhcd->hc[chnum].xfer_buff != (void *)0)) in HCD_RXQLVL_IRQHandler()
1844 if ((hhcd->hc[chnum].xfer_count + pktcnt) <= hhcd->hc[chnum].xfer_len) in HCD_RXQLVL_IRQHandler()
1846 (void)USB_ReadPacket(hhcd->Instance, in HCD_RXQLVL_IRQHandler()
1847 hhcd->hc[chnum].xfer_buff, (uint16_t)pktcnt); in HCD_RXQLVL_IRQHandler()
1850 hhcd->hc[chnum].xfer_buff += pktcnt; in HCD_RXQLVL_IRQHandler()
1851 hhcd->hc[chnum].xfer_count += pktcnt; in HCD_RXQLVL_IRQHandler()
1856 if ((hhcd->hc[chnum].max_packet == pktcnt) && (xferSizePktCnt > 0U)) in HCD_RXQLVL_IRQHandler()
1863 hhcd->hc[chnum].toggle_in ^= 1U; in HCD_RXQLVL_IRQHandler()
1868 hhcd->hc[chnum].urb_state = URB_ERROR; in HCD_RXQLVL_IRQHandler()
1888 static void HCD_Port_IRQHandler(HCD_HandleTypeDef *hhcd) in HCD_Port_IRQHandler() argument
1890 const USB_OTG_GlobalTypeDef *USBx = hhcd->Instance; in HCD_Port_IRQHandler()
1908 hhcd->ConnectCallback(hhcd); in HCD_Port_IRQHandler()
1910 HAL_HCD_Connect_Callback(hhcd); in HCD_Port_IRQHandler()
1923 if (hhcd->Init.phy_itface == USB_OTG_EMBEDDED_PHY) in HCD_Port_IRQHandler()
1927 (void)USB_InitFSLSPClkSel(hhcd->Instance, HCFG_6_MHZ); in HCD_Port_IRQHandler()
1931 (void)USB_InitFSLSPClkSel(hhcd->Instance, HCFG_48_MHZ); in HCD_Port_IRQHandler()
1936 if (hhcd->Init.speed == HCD_SPEED_FULL) in HCD_Port_IRQHandler()
1942 hhcd->PortEnabledCallback(hhcd); in HCD_Port_IRQHandler()
1944 HAL_HCD_PortEnabled_Callback(hhcd); in HCD_Port_IRQHandler()
1951 hhcd->PortDisabledCallback(hhcd); in HCD_Port_IRQHandler()
1953 HAL_HCD_PortDisabled_Callback(hhcd); in HCD_Port_IRQHandler()