Lines Matching refs:hhcd
76 static void HCD_HC_IN_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum);
77 static void HCD_HC_OUT_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum);
78 static void HCD_Port_IRQHandler(HCD_HandleTypeDef *hhcd);
79 static void HAL_HCD_ClearPhyChannel(HCD_HandleTypeDef *hhcd);
80 static uint8_t HAL_HCD_GetLogical_Channel(HCD_HandleTypeDef const *hhcd, uint8_t phy_chnum, uint8_t…
81 static uint8_t HAL_HCD_Check_usedChannel(HCD_HandleTypeDef const *hhcd, uint8_t ch_num);
82 static uint8_t HAL_HCD_Get_FreePhyChannel(HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t epnum, u…
85 static void HCD_HC_IN_BulkDb(HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t phy_chnum, uint32_t r…
86 static void HCD_HC_OUT_BulkDb(HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t phy_chnum, uint32_t …
89 static uint16_t HAL_HCD_GetFreePMA(HCD_HandleTypeDef *hhcd, uint16_t mps);
90 static HAL_StatusTypeDef HAL_HCD_PMAFree(HCD_HandleTypeDef *hhcd, uint32_t pma_base, uint16_t mps);
91 static void inline HCD_HC_IN_ISO(HCD_HandleTypeDef *hhcd, uint8_t ch_num, uint8_t phy_chnum, uint32…
119 HAL_StatusTypeDef HAL_HCD_Init(HCD_HandleTypeDef *hhcd) in HAL_HCD_Init() argument
122 if (hhcd == NULL) in HAL_HCD_Init()
128 assert_param(IS_HCD_ALL_INSTANCE(hhcd->Instance)); in HAL_HCD_Init()
130 if (hhcd->State == HAL_HCD_STATE_RESET) in HAL_HCD_Init()
133 hhcd->Lock = HAL_UNLOCKED; in HAL_HCD_Init()
136 hhcd->SOFCallback = HAL_HCD_SOF_Callback; in HAL_HCD_Init()
137 hhcd->ConnectCallback = HAL_HCD_Connect_Callback; in HAL_HCD_Init()
138 hhcd->DisconnectCallback = HAL_HCD_Disconnect_Callback; in HAL_HCD_Init()
139 hhcd->PortEnabledCallback = HAL_HCD_PortEnabled_Callback; in HAL_HCD_Init()
140 hhcd->PortDisabledCallback = HAL_HCD_PortDisabled_Callback; in HAL_HCD_Init()
141 hhcd->HC_NotifyURBChangeCallback = HAL_HCD_HC_NotifyURBChange_Callback; in HAL_HCD_Init()
143 if (hhcd->MspInitCallback == NULL) in HAL_HCD_Init()
145 hhcd->MspInitCallback = HAL_HCD_MspInit; in HAL_HCD_Init()
149 hhcd->MspInitCallback(hhcd); in HAL_HCD_Init()
152 HAL_HCD_MspInit(hhcd); in HAL_HCD_Init()
155 hhcd->State = HAL_HCD_STATE_BUSY; in HAL_HCD_Init()
158 (void)__HAL_HCD_DISABLE(hhcd); in HAL_HCD_Init()
161 hhcd->Init.dma_enable = 0U; in HAL_HCD_Init()
164 (void)USB_CoreInit(hhcd->Instance, hhcd->Init); in HAL_HCD_Init()
167 (void)USB_SetCurrentMode(hhcd->Instance, USB_HOST_MODE); in HAL_HCD_Init()
170 (void)USB_HostInit(hhcd->Instance, hhcd->Init); in HAL_HCD_Init()
172 hhcd->State = HAL_HCD_STATE_READY; in HAL_HCD_Init()
175 hhcd->HostState = HCD_HCD_STATE_DISCONNECTED; in HAL_HCD_Init()
178 (void)HAL_HCD_PMAReset(hhcd); in HAL_HCD_Init()
180 hhcd->State = HAL_HCD_STATE_READY; in HAL_HCD_Init()
209 HAL_StatusTypeDef HAL_HCD_HC_Init(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HAL_HCD_HC_Init() argument
217 __HAL_LOCK(hhcd); in HAL_HCD_HC_Init()
221 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
225 if (((epnum & 0xFU) == 0U) && ((hhcd->ep0_PmaAllocState & 0xF000U) != 0U)) in HAL_HCD_HC_Init()
227 hhcd->hc[ch_num & 0xFU].pmaadress = hhcd->hc[0U].pmaadress; in HAL_HCD_HC_Init()
228 hhcd->hc[ch_num & 0xFU].pmaaddr0 = hhcd->hc[0U].pmaaddr0; in HAL_HCD_HC_Init()
229 hhcd->hc[ch_num & 0xFU].pmaaddr1 = hhcd->hc[0U].pmaaddr1; in HAL_HCD_HC_Init()
231 hhcd->phy_chin_state[0U] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_HC_Init()
235 hhcd->phy_chout_state[0U] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_HC_Init()
241 used_channel = HAL_HCD_Check_usedChannel(hhcd, ch_num); in HAL_HCD_HC_Init()
247 hhcd->hc[ch_num & 0xFU].phy_ch_num = HAL_HCD_Get_FreePhyChannel(hhcd, ch_num, epnum, ep_type); in HAL_HCD_HC_Init()
250 if (hhcd->hc[ch_num & 0xFU].phy_ch_num == HCD_FREE_CH_NOT_FOUND) in HAL_HCD_HC_Init()
252 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
260 hhcd->hc[ch_num & 0xFU].phy_ch_num = (used_channel & 0xF0U) >> 4U; in HAL_HCD_HC_Init()
265 hhcd->hc[ch_num & 0xFU].ch_dir = CH_IN_DIR; in HAL_HCD_HC_Init()
269 hhcd->hc[ch_num & 0xFU].ch_dir = CH_OUT_DIR; in HAL_HCD_HC_Init()
272 hhcd->hc[ch_num & 0xFU].dev_addr = dev_address; in HAL_HCD_HC_Init()
273 hhcd->hc[ch_num & 0xFU].max_packet = mps; in HAL_HCD_HC_Init()
274 hhcd->hc[ch_num & 0xFU].ep_type = ep_type; in HAL_HCD_HC_Init()
275 hhcd->hc[ch_num & 0xFU].ep_num = epnum & 0x7FU; in HAL_HCD_HC_Init()
276 hhcd->hc[ch_num & 0xFU].speed = speed; in HAL_HCD_HC_Init()
281 if (((ep_type == EP_TYPE_ISOC) && (hhcd->Init.iso_singlebuffer_enable == 0U)) || in HAL_HCD_HC_Init()
282 ((ep_type == EP_TYPE_BULK) && (hhcd->Init.bulk_doublebuffer_enable == 1U))) in HAL_HCD_HC_Init()
285 status = HAL_HCD_PMAlloc(hhcd, ch_num, HCD_DBL_BUF, mps); in HAL_HCD_HC_Init()
289 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
294 HCD_CLEAR_TX_DTOG(hhcd->Instance, hhcd->hc[ch_num & 0xFU].phy_ch_num); in HAL_HCD_HC_Init()
297 HCD_CLEAR_RX_DTOG(hhcd->Instance, hhcd->hc[ch_num & 0xFU].phy_ch_num); in HAL_HCD_HC_Init()
302 if (hhcd->hc[ch_num & 0xFU].ep_num != 0U) in HAL_HCD_HC_Init()
304 status = HAL_HCD_PMAlloc(hhcd, ch_num, HCD_SNG_BUF, mps); in HAL_HCD_HC_Init()
308 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
316 ep0_virtual_channel = (uint8_t)(hhcd->ep0_PmaAllocState & 0xFU); in HAL_HCD_HC_Init()
318 … if ((ep0_virtual_channel != 0U) && (((hhcd->ep0_PmaAllocState & 0xF0U) >> 4) == CH_IN_DIR)) in HAL_HCD_HC_Init()
320 if (hhcd->hc[ch_num & 0xFU].ch_dir == CH_OUT_DIR) in HAL_HCD_HC_Init()
322 status = HAL_HCD_PMAlloc(hhcd, ch_num, HCD_SNG_BUF, 64U); in HAL_HCD_HC_Init()
326 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
332 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
339 hhcd->ep0_PmaAllocState |= (0x1U << 12); in HAL_HCD_HC_Init()
342 hhcd->hc[ch_num & 0xFU].ch_dir = CH_OUT_DIR; in HAL_HCD_HC_Init()
343 status = HAL_HCD_PMAlloc(hhcd, ch_num, HCD_SNG_BUF, 64U); in HAL_HCD_HC_Init()
347 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
352 hhcd->hc[ch_num & 0xFU].ch_dir = CH_IN_DIR; in HAL_HCD_HC_Init()
353 status = HAL_HCD_PMAlloc(hhcd, ch_num, HCD_SNG_BUF, 64U); in HAL_HCD_HC_Init()
357 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
364 if (((hhcd->ep0_PmaAllocState & 0xF00U) >> 8) == 1U) in HAL_HCD_HC_Init()
366 ep0_virtual_channel = (uint8_t)(hhcd->ep0_PmaAllocState & 0xFU); in HAL_HCD_HC_Init()
368 if (((hhcd->ep0_PmaAllocState & 0xF0U) >> 4) == CH_IN_DIR) in HAL_HCD_HC_Init()
370 hhcd->hc[ch_num & 0xFU].pmaaddr1 = hhcd->hc[ep0_virtual_channel & 0xFU].pmaaddr1; in HAL_HCD_HC_Init()
374 hhcd->hc[ch_num & 0xFU].pmaaddr0 = hhcd->hc[ep0_virtual_channel & 0xFU].pmaaddr0; in HAL_HCD_HC_Init()
379 status = HAL_HCD_PMAlloc(hhcd, ch_num, HCD_SNG_BUF, 64U); in HAL_HCD_HC_Init()
383 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
394 hhcd->hc[ch_num & 0xFU].ch_dir = CH_IN_DIR; in HAL_HCD_HC_Init()
396 if (hhcd->hc[ch_num & 0xFU].ep_num == 0U) in HAL_HCD_HC_Init()
398 hhcd->hc[ch_num & 0xFU].pmaadress = hhcd->hc[ch_num & 0xFU].pmaaddr1; in HAL_HCD_HC_Init()
403 hhcd->hc[ch_num & 0xFU].ch_dir = CH_OUT_DIR; in HAL_HCD_HC_Init()
405 if (hhcd->hc[ch_num & 0xFU].ep_num == 0U) in HAL_HCD_HC_Init()
407 hhcd->hc[ch_num & 0xFU].pmaadress = hhcd->hc[ch_num & 0xFU].pmaaddr0; in HAL_HCD_HC_Init()
412 status = USB_HC_Init(hhcd->Instance, hhcd->hc[ch_num & 0xFU].phy_ch_num, in HAL_HCD_HC_Init()
418 if (hhcd->Init.iso_singlebuffer_enable == 1U) in HAL_HCD_HC_Init()
420 (void)USB_HC_DoubleBuffer(hhcd->Instance, hhcd->hc[ch_num & 0xFU].phy_ch_num, in HAL_HCD_HC_Init()
428 if (hhcd->Init.bulk_doublebuffer_enable == 1U) in HAL_HCD_HC_Init()
430 (void)USB_HC_DoubleBuffer(hhcd->Instance, hhcd->hc[ch_num & 0xFU].phy_ch_num, in HAL_HCD_HC_Init()
435 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Init()
447 HAL_StatusTypeDef HAL_HCD_HC_Close(HCD_HandleTypeDef *hhcd, uint8_t ch_num) in HAL_HCD_HC_Close() argument
450 (void) HAL_HCD_HC_Halt(hhcd, ch_num); in HAL_HCD_HC_Close()
454 if (hhcd->hc[ch_num & 0xFU].ch_dir == CH_IN_DIR) in HAL_HCD_HC_Close()
457 hhcd->phy_chin_state[hhcd->hc[ch_num & 0xFU].phy_ch_num] = 0U; in HAL_HCD_HC_Close()
462 hhcd->phy_chout_state[hhcd->hc[ch_num & 0xFU].phy_ch_num] = 0U; in HAL_HCD_HC_Close()
466 (void)HAL_HCD_PMADeAlloc(hhcd, ch_num); in HAL_HCD_HC_Close()
478 HAL_StatusTypeDef HAL_HCD_HC_Halt(HCD_HandleTypeDef *hhcd, uint8_t ch_num) in HAL_HCD_HC_Halt() argument
482 __HAL_LOCK(hhcd); in HAL_HCD_HC_Halt()
483 if (hhcd->hc[ch_num & 0xFU].ch_dir == CH_IN_DIR) in HAL_HCD_HC_Halt()
485 (void)USB_HC_IN_Halt(hhcd->Instance, (uint8_t) hhcd->hc[ch_num & 0xFU].phy_ch_num); in HAL_HCD_HC_Halt()
489 (void)USB_HC_OUT_Halt(hhcd->Instance, (uint8_t) hhcd->hc[ch_num & 0xFU].phy_ch_num); in HAL_HCD_HC_Halt()
491 __HAL_UNLOCK(hhcd); in HAL_HCD_HC_Halt()
501 HAL_StatusTypeDef HAL_HCD_DeInit(HCD_HandleTypeDef *hhcd) in HAL_HCD_DeInit() argument
506 if (hhcd == NULL) in HAL_HCD_DeInit()
512 hhcd->HostState = HCD_HCD_STATE_DISCONNECTED; in HAL_HCD_DeInit()
515 (void)HAL_HCD_PMAReset(hhcd); in HAL_HCD_DeInit()
517 for (idx = 0U; idx < hhcd->Init.Host_channels; idx++) in HAL_HCD_DeInit()
519 hhcd->phy_chin_state[idx] = 0U; in HAL_HCD_DeInit()
520 hhcd->phy_chout_state[idx] = 0U; in HAL_HCD_DeInit()
524 hhcd->ep0_PmaAllocState = 0U; in HAL_HCD_DeInit()
526 hhcd->State = HAL_HCD_STATE_BUSY; in HAL_HCD_DeInit()
529 if (hhcd->MspDeInitCallback == NULL) in HAL_HCD_DeInit()
531 hhcd->MspDeInitCallback = HAL_HCD_MspDeInit; /* Legacy weak MspDeInit */ in HAL_HCD_DeInit()
535 hhcd->MspDeInitCallback(hhcd); in HAL_HCD_DeInit()
538 HAL_HCD_MspDeInit(hhcd); in HAL_HCD_DeInit()
541 hhcd->State = HAL_HCD_STATE_RESET; in HAL_HCD_DeInit()
551 __weak void HAL_HCD_MspInit(HCD_HandleTypeDef *hhcd) in HAL_HCD_MspInit() argument
554 UNUSED(hhcd); in HAL_HCD_MspInit()
566 __weak void HAL_HCD_MspDeInit(HCD_HandleTypeDef *hhcd) in HAL_HCD_MspDeInit() argument
569 UNUSED(hhcd); in HAL_HCD_MspDeInit()
576 __weak void HAL_HCD_SuspendCallback(HCD_HandleTypeDef *hhcd) in HAL_HCD_SuspendCallback() argument
579 UNUSED(hhcd); in HAL_HCD_SuspendCallback()
587 __weak void HAL_HCD_ResumeCallback(HCD_HandleTypeDef *hhcd) in HAL_HCD_ResumeCallback() argument
590 UNUSED(hhcd); in HAL_HCD_ResumeCallback()
639 HAL_StatusTypeDef HAL_HCD_HC_SubmitRequest(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HAL_HCD_HC_SubmitRequest() argument
648 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_SETUP; in HAL_HCD_HC_SubmitRequest()
652 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
664 hhcd->hc[ch_num & 0xFU].toggle_out = 1U; in HAL_HCD_HC_SubmitRequest()
668 if (hhcd->hc[ch_num & 0xFU].toggle_out == 0U) in HAL_HCD_HC_SubmitRequest()
671 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
676 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
685 if (hhcd->hc[ch_num & 0xFU].toggle_out == 0U) in HAL_HCD_HC_SubmitRequest()
688 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
693 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
698 if (hhcd->hc[ch_num & 0xFU].toggle_in == 0U) in HAL_HCD_HC_SubmitRequest()
700 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
704 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
713 if (hhcd->hc[ch_num & 0xFU].toggle_out == 0U) in HAL_HCD_HC_SubmitRequest()
716 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
721 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
726 if (hhcd->hc[ch_num & 0xFU].toggle_in == 0U) in HAL_HCD_HC_SubmitRequest()
728 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
732 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA1; in HAL_HCD_HC_SubmitRequest()
738 hhcd->hc[ch_num & 0xFU].data_pid = HC_PID_DATA0; in HAL_HCD_HC_SubmitRequest()
745 hhcd->hc[ch_num & 0xFU].xfer_buff = pbuff; in HAL_HCD_HC_SubmitRequest()
746 hhcd->hc[ch_num & 0xFU].xfer_len = length; in HAL_HCD_HC_SubmitRequest()
747 hhcd->hc[ch_num & 0xFU].xfer_len_db = length; in HAL_HCD_HC_SubmitRequest()
748 hhcd->hc[ch_num & 0xFU].urb_state = URB_IDLE; in HAL_HCD_HC_SubmitRequest()
749 hhcd->hc[ch_num & 0xFU].xfer_count = 0U; in HAL_HCD_HC_SubmitRequest()
750 hhcd->hc[ch_num & 0xFU].state = HC_IDLE; in HAL_HCD_HC_SubmitRequest()
752 return USB_HC_StartXfer(hhcd->Instance, &hhcd->hc[ch_num & 0xFU]); in HAL_HCD_HC_SubmitRequest()
759 void HAL_HCD_IRQHandler(HCD_HandleTypeDef *hhcd) in HAL_HCD_IRQHandler() argument
763 uint32_t wIstr = USB_ReadInterrupts(hhcd->Instance); in HAL_HCD_IRQHandler()
769 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_DCON); in HAL_HCD_IRQHandler()
772 HCD_Port_IRQHandler(hhcd); in HAL_HCD_IRQHandler()
781 phy_chnum = (uint8_t)__HAL_HCD_GET_CHNUM(hhcd); in HAL_HCD_IRQHandler()
784 ch_dir = (uint8_t)__HAL_HCD_GET_CHDIR(hhcd); in HAL_HCD_IRQHandler()
789 HCD_HC_OUT_IRQHandler(hhcd, phy_chnum); in HAL_HCD_IRQHandler()
794 HCD_HC_IN_IRQHandler(hhcd, phy_chnum); in HAL_HCD_IRQHandler()
803 if (hhcd->HostState == HCD_HCD_STATE_SUSPEND) in HAL_HCD_IRQHandler()
806 hhcd->Instance->CNTR |= USB_CNTR_L2RES; in HAL_HCD_IRQHandler()
809 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_WKUP); in HAL_HCD_IRQHandler()
812 HAL_HCD_ResumeCallback(hhcd); in HAL_HCD_IRQHandler()
813 hhcd->HostState = HCD_HCD_STATE_RESUME; in HAL_HCD_IRQHandler()
818 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_WKUP); in HAL_HCD_IRQHandler()
827 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_ERR); in HAL_HCD_IRQHandler()
835 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_PMAOVR); in HAL_HCD_IRQHandler()
844 hhcd->HostState = HCD_HCD_STATE_SUSPEND; in HAL_HCD_IRQHandler()
847 hhcd->Instance->CNTR |= USB_CNTR_SUSPEN; in HAL_HCD_IRQHandler()
850 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_SUSP); in HAL_HCD_IRQHandler()
853 HAL_HCD_SuspendCallback(hhcd); in HAL_HCD_IRQHandler()
862 hhcd->SOFCallback(hhcd); in HAL_HCD_IRQHandler()
864 HAL_HCD_SOF_Callback(hhcd); in HAL_HCD_IRQHandler()
867 __HAL_HCD_CLEAR_FLAG(hhcd, USB_ISTR_SOF); in HAL_HCD_IRQHandler()
870 if (hhcd->HostState == HCD_HCD_STATE_RESETED) in HAL_HCD_IRQHandler()
873 hhcd->HostState = HCD_HCD_STATE_RUN; in HAL_HCD_IRQHandler()
876 hhcd->PortEnabledCallback(hhcd); in HAL_HCD_IRQHandler()
878 HAL_HCD_PortEnabled_Callback(hhcd); in HAL_HCD_IRQHandler()
891 __weak void HAL_HCD_SOF_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_SOF_Callback() argument
894 UNUSED(hhcd); in HAL_HCD_SOF_Callback()
906 __weak void HAL_HCD_Connect_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_Connect_Callback() argument
909 UNUSED(hhcd); in HAL_HCD_Connect_Callback()
921 __weak void HAL_HCD_Disconnect_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_Disconnect_Callback() argument
924 UNUSED(hhcd); in HAL_HCD_Disconnect_Callback()
935 __weak void HAL_HCD_PortEnabled_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_PortEnabled_Callback() argument
938 UNUSED(hhcd); in HAL_HCD_PortEnabled_Callback()
949 __weak void HAL_HCD_PortDisabled_Callback(HCD_HandleTypeDef *hhcd) in HAL_HCD_PortDisabled_Callback() argument
952 UNUSED(hhcd); in HAL_HCD_PortDisabled_Callback()
974 __weak void HAL_HCD_HC_NotifyURBChange_Callback(HCD_HandleTypeDef *hhcd, in HAL_HCD_HC_NotifyURBChange_Callback() argument
978 UNUSED(hhcd); in HAL_HCD_HC_NotifyURBChange_Callback()
1003 HAL_StatusTypeDef HAL_HCD_RegisterCallback(HCD_HandleTypeDef *hhcd, in HAL_HCD_RegisterCallback() argument
1012 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
1016 __HAL_LOCK(hhcd); in HAL_HCD_RegisterCallback()
1018 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_RegisterCallback()
1023 hhcd->SOFCallback = pCallback; in HAL_HCD_RegisterCallback()
1027 hhcd->ConnectCallback = pCallback; in HAL_HCD_RegisterCallback()
1031 hhcd->DisconnectCallback = pCallback; in HAL_HCD_RegisterCallback()
1035 hhcd->PortEnabledCallback = pCallback; in HAL_HCD_RegisterCallback()
1039 hhcd->PortDisabledCallback = pCallback; in HAL_HCD_RegisterCallback()
1043 hhcd->MspInitCallback = pCallback; in HAL_HCD_RegisterCallback()
1047 hhcd->MspDeInitCallback = pCallback; in HAL_HCD_RegisterCallback()
1052 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
1058 else if (hhcd->State == HAL_HCD_STATE_RESET) in HAL_HCD_RegisterCallback()
1063 hhcd->MspInitCallback = pCallback; in HAL_HCD_RegisterCallback()
1067 hhcd->MspDeInitCallback = pCallback; in HAL_HCD_RegisterCallback()
1072 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
1081 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterCallback()
1087 __HAL_UNLOCK(hhcd); in HAL_HCD_RegisterCallback()
1106 HAL_StatusTypeDef HAL_HCD_UnRegisterCallback(HCD_HandleTypeDef *hhcd, in HAL_HCD_UnRegisterCallback() argument
1112 __HAL_LOCK(hhcd); in HAL_HCD_UnRegisterCallback()
1115 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_UnRegisterCallback()
1120 hhcd->SOFCallback = HAL_HCD_SOF_Callback; in HAL_HCD_UnRegisterCallback()
1124 hhcd->ConnectCallback = HAL_HCD_Connect_Callback; in HAL_HCD_UnRegisterCallback()
1128 hhcd->DisconnectCallback = HAL_HCD_Disconnect_Callback; in HAL_HCD_UnRegisterCallback()
1132 hhcd->PortEnabledCallback = HAL_HCD_PortEnabled_Callback; in HAL_HCD_UnRegisterCallback()
1136 hhcd->PortDisabledCallback = HAL_HCD_PortDisabled_Callback; in HAL_HCD_UnRegisterCallback()
1140 hhcd->MspInitCallback = HAL_HCD_MspInit; in HAL_HCD_UnRegisterCallback()
1144 hhcd->MspDeInitCallback = HAL_HCD_MspDeInit; in HAL_HCD_UnRegisterCallback()
1149 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterCallback()
1156 else if (hhcd->State == HAL_HCD_STATE_RESET) in HAL_HCD_UnRegisterCallback()
1161 hhcd->MspInitCallback = HAL_HCD_MspInit; in HAL_HCD_UnRegisterCallback()
1165 hhcd->MspDeInitCallback = HAL_HCD_MspDeInit; in HAL_HCD_UnRegisterCallback()
1170 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterCallback()
1180 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterCallback()
1187 __HAL_UNLOCK(hhcd); in HAL_HCD_UnRegisterCallback()
1198 HAL_StatusTypeDef HAL_HCD_RegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd, in HAL_HCD_RegisterHC_NotifyURBChangeCallback() argument
1206 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1212 __HAL_LOCK(hhcd); in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1214 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1216 hhcd->HC_NotifyURBChangeCallback = pCallback; in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1221 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1228 __HAL_UNLOCK(hhcd); in HAL_HCD_RegisterHC_NotifyURBChangeCallback()
1240 HAL_StatusTypeDef HAL_HCD_UnRegisterHC_NotifyURBChangeCallback(HCD_HandleTypeDef *hhcd) in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback() argument
1245 __HAL_LOCK(hhcd); in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1247 if (hhcd->State == HAL_HCD_STATE_READY) in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1249 …hhcd->HC_NotifyURBChangeCallback = HAL_HCD_HC_NotifyURBChange_Callback; /* Legacy weak DataOutStag… in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1254 hhcd->ErrorCode |= HAL_HCD_ERROR_INVALID_CALLBACK; in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1261 __HAL_UNLOCK(hhcd); in HAL_HCD_UnRegisterHC_NotifyURBChangeCallback()
1292 HAL_StatusTypeDef HAL_HCD_Start(HCD_HandleTypeDef *hhcd) in HAL_HCD_Start() argument
1296 __HAL_LOCK(hhcd); in HAL_HCD_Start()
1299 hhcd->Instance->CNTR &= ~USB_CNTR_PDWN; in HAL_HCD_Start()
1308 hhcd->Instance->CNTR &= ~USB_CNTR_USBRST; in HAL_HCD_Start()
1310 __HAL_UNLOCK(hhcd); in HAL_HCD_Start()
1320 HAL_StatusTypeDef HAL_HCD_Stop(HCD_HandleTypeDef *hhcd) in HAL_HCD_Stop() argument
1322 __HAL_LOCK(hhcd); in HAL_HCD_Stop()
1324 (void)USB_StopHost(hhcd->Instance); in HAL_HCD_Stop()
1327 HAL_HCD_ClearPhyChannel(hhcd); in HAL_HCD_Stop()
1330 (void)HAL_HCD_PMAReset(hhcd); in HAL_HCD_Stop()
1333 hhcd->ep0_PmaAllocState = 0U; in HAL_HCD_Stop()
1335 __HAL_UNLOCK(hhcd); in HAL_HCD_Stop()
1344 HAL_StatusTypeDef HAL_HCD_Suspend(HCD_HandleTypeDef *hhcd) in HAL_HCD_Suspend() argument
1349 hhcd->Instance->CNTR |= USB_CNTR_SUSPEN; in HAL_HCD_Suspend()
1352 while ((hhcd->Instance->CNTR & USB_CNTR_SUSPRDY) == 0U) in HAL_HCD_Suspend()
1368 HAL_StatusTypeDef HAL_HCD_Resume(HCD_HandleTypeDef *hhcd) in HAL_HCD_Resume() argument
1371 hhcd->Instance->CNTR |= USB_CNTR_L2RES; in HAL_HCD_Resume()
1381 HAL_StatusTypeDef HAL_HCD_ResetPort(HCD_HandleTypeDef *hhcd) in HAL_HCD_ResetPort() argument
1383 __HAL_LOCK(hhcd); in HAL_HCD_ResetPort()
1386 (void)USB_ResetPort(hhcd->Instance); in HAL_HCD_ResetPort()
1388 if (hhcd->HostState == HCD_HCD_STATE_CONNECTED) in HAL_HCD_ResetPort()
1390 hhcd->HostState = HCD_HCD_STATE_RESETED; in HAL_HCD_ResetPort()
1392 __HAL_UNLOCK(hhcd); in HAL_HCD_ResetPort()
1402 HAL_StatusTypeDef HAL_HCD_ResumePort(HCD_HandleTypeDef *hhcd) in HAL_HCD_ResumePort() argument
1405 hhcd->Instance->CNTR |= USB_CNTR_L2RES; in HAL_HCD_ResumePort()
1409 hhcd->Instance->CNTR &= ~USB_CNTR_L2RES; in HAL_HCD_ResumePort()
1439 HCD_StateTypeDef HAL_HCD_GetState(HCD_HandleTypeDef const *hhcd) in HAL_HCD_GetState() argument
1441 return hhcd->State; in HAL_HCD_GetState()
1458 HCD_URBStateTypeDef HAL_HCD_HC_GetURBState(HCD_HandleTypeDef const *hhcd, uint8_t chnum) in HAL_HCD_HC_GetURBState() argument
1460 return hhcd->hc[chnum].urb_state; in HAL_HCD_HC_GetURBState()
1471 uint32_t HAL_HCD_HC_GetXferCount(HCD_HandleTypeDef const *hhcd, uint8_t chnum) in HAL_HCD_HC_GetXferCount() argument
1473 return hhcd->hc[chnum].xfer_count; in HAL_HCD_HC_GetXferCount()
1493 HCD_HCStateTypeDef HAL_HCD_HC_GetState(HCD_HandleTypeDef const *hhcd, uint8_t chnum) in HAL_HCD_HC_GetState() argument
1495 return hhcd->hc[chnum].state; in HAL_HCD_HC_GetState()
1503 uint32_t HAL_HCD_GetCurrentFrame(HCD_HandleTypeDef *hhcd) in HAL_HCD_GetCurrentFrame() argument
1505 return (USB_GetCurrentFrame(hhcd->Instance)); in HAL_HCD_GetCurrentFrame()
1516 uint32_t HAL_HCD_GetCurrentSpeed(HCD_HandleTypeDef *hhcd) in HAL_HCD_GetCurrentSpeed() argument
1518 return (USB_GetHostSpeed(hhcd->Instance)); in HAL_HCD_GetCurrentSpeed()
1530 HAL_StatusTypeDef HAL_HCD_HC_SetHubInfo(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HAL_HCD_HC_SetHubInfo() argument
1533 hhcd->hc[ch_num].hub_addr = addr; in HAL_HCD_HC_SetHubInfo()
1534 hhcd->hc[ch_num].hub_port_nbr = PortNbr; in HAL_HCD_HC_SetHubInfo()
1547 HAL_StatusTypeDef HAL_HCD_HC_ClearHubInfo(HCD_HandleTypeDef *hhcd, uint8_t ch_num) in HAL_HCD_HC_ClearHubInfo() argument
1549 hhcd->hc[ch_num].hub_addr = 0U; in HAL_HCD_HC_ClearHubInfo()
1550 hhcd->hc[ch_num].hub_port_nbr = 0U; in HAL_HCD_HC_ClearHubInfo()
1564 static void HCD_HC_OUT_BulkDb(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HCD_HC_OUT_BulkDb() argument
1575 if (hhcd->hc[ch_num & 0xFU].xfer_len >= data_xfr) in HCD_HC_OUT_BulkDb()
1577 hhcd->hc[ch_num & 0xFU].xfer_len -= data_xfr; in HCD_HC_OUT_BulkDb()
1581 hhcd->hc[ch_num & 0xFU].xfer_len = 0U; in HCD_HC_OUT_BulkDb()
1585 if (hhcd->hc[ch_num & 0xFU].xfer_len != 0U) in HCD_HC_OUT_BulkDb()
1588 hhcd->hc[ch_num & 0xFU].xfer_count += data_xfr; in HCD_HC_OUT_BulkDb()
1594 HCD_CLEAR_TX_DTOG(hhcd->Instance, phy_chnum); in HCD_HC_OUT_BulkDb()
1595 HCD_CLEAR_RX_DTOG(hhcd->Instance, phy_chnum); in HCD_HC_OUT_BulkDb()
1596 HCD_TX_DTOG(hhcd->Instance, phy_chnum); in HCD_HC_OUT_BulkDb()
1600 if (hhcd->hc[ch_num & 0xFU].xfer_len_db > 0U) /* Still data to fill in the buffer */ in HCD_HC_OUT_BulkDb()
1602 hhcd->hc[ch_num & 0xFU].xfer_buff += data_xfr; in HCD_HC_OUT_BulkDb()
1605 if (hhcd->hc[ch_num & 0xFU].xfer_len_db > hhcd->hc[ch_num & 0xFU].max_packet) in HCD_HC_OUT_BulkDb()
1607 len = (uint16_t)hhcd->hc[ch_num & 0xFU].max_packet; in HCD_HC_OUT_BulkDb()
1608 hhcd->hc[ch_num & 0xFU].xfer_len_db -= len; in HCD_HC_OUT_BulkDb()
1612 len = (uint16_t)hhcd->hc[ch_num & 0xFU].xfer_len_db; in HCD_HC_OUT_BulkDb()
1613 hhcd->hc[ch_num & 0xFU].xfer_len_db = 0U; /* end of fill buffer */ in HCD_HC_OUT_BulkDb()
1617 HCD_SET_CH_DBUF0_CNT(hhcd->Instance, phy_chnum, 1U, (uint16_t)len); in HCD_HC_OUT_BulkDb()
1618 USB_WritePMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_OUT_BulkDb()
1619 hhcd->hc[ch_num & 0xFU].pmaaddr0, (uint16_t)len); in HCD_HC_OUT_BulkDb()
1622 HCD_SET_CH_TX_STATUS(hhcd->Instance, phy_chnum, USB_CH_TX_VALID); in HCD_HC_OUT_BulkDb()
1627 hhcd->hc[ch_num & 0xFU].xfer_count += data_xfr; in HCD_HC_OUT_BulkDb()
1628 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_OUT_BulkDb()
1629 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_OUT_BulkDb()
1630 hhcd->hc[ch_num & 0xFU].toggle_out ^= 1U; in HCD_HC_OUT_BulkDb()
1632 HCD_SET_CH_TX_STATUS(hhcd->Instance, phy_chnum, USB_CH_TX_DIS); in HCD_HC_OUT_BulkDb()
1640 if (hhcd->hc[ch_num & 0xFU].xfer_len >= data_xfr) /* updated */ in HCD_HC_OUT_BulkDb()
1642 hhcd->hc[ch_num & 0xFU].xfer_len -= data_xfr; in HCD_HC_OUT_BulkDb()
1646 if (hhcd->hc[ch_num & 0xFU].xfer_len != 0U) in HCD_HC_OUT_BulkDb()
1649 hhcd->hc[ch_num & 0xFU].xfer_count += data_xfr; in HCD_HC_OUT_BulkDb()
1655 HCD_CLEAR_TX_DTOG(hhcd->Instance, phy_chnum); in HCD_HC_OUT_BulkDb()
1656 HCD_CLEAR_RX_DTOG(hhcd->Instance, phy_chnum); in HCD_HC_OUT_BulkDb()
1657 HCD_RX_DTOG(hhcd->Instance, phy_chnum); in HCD_HC_OUT_BulkDb()
1661 if (hhcd->hc[ch_num & 0xFU].xfer_len_db > 0U) /* Still data to fill in the buffer */ in HCD_HC_OUT_BulkDb()
1663 hhcd->hc[ch_num & 0xFU].xfer_buff += data_xfr; in HCD_HC_OUT_BulkDb()
1666 if (hhcd->hc[ch_num & 0xFU].xfer_len_db > hhcd->hc[ch_num & 0xFU].max_packet) in HCD_HC_OUT_BulkDb()
1668 len = hhcd->hc[ch_num & 0xFU].max_packet; in HCD_HC_OUT_BulkDb()
1669 hhcd->hc[ch_num & 0xFU].xfer_len_db -= len; in HCD_HC_OUT_BulkDb()
1673 len = (uint16_t)hhcd->hc[ch_num & 0xFU].xfer_len_db; in HCD_HC_OUT_BulkDb()
1674 hhcd->hc[ch_num & 0xFU].xfer_len_db = 0U; /* end of fill buffer */ in HCD_HC_OUT_BulkDb()
1678 HCD_SET_CH_DBUF1_CNT(hhcd->Instance, phy_chnum, 1U, (uint16_t)len); in HCD_HC_OUT_BulkDb()
1680 USB_WritePMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_OUT_BulkDb()
1681 hhcd->hc[ch_num & 0xFU].pmaaddr1, (uint16_t)len); in HCD_HC_OUT_BulkDb()
1685 HCD_SET_CH_TX_STATUS(hhcd->Instance, phy_chnum, USB_CH_TX_VALID); in HCD_HC_OUT_BulkDb()
1690 hhcd->hc[ch_num & 0xFU].xfer_count += data_xfr; in HCD_HC_OUT_BulkDb()
1691 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_OUT_BulkDb()
1692 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_OUT_BulkDb()
1693 hhcd->hc[ch_num & 0xFU].toggle_out ^= 1U; in HCD_HC_OUT_BulkDb()
1696 HCD_SET_CH_TX_STATUS(hhcd->Instance, phy_chnum, USB_CH_TX_DIS); in HCD_HC_OUT_BulkDb()
1710 static void HCD_HC_IN_BulkDb(HCD_HandleTypeDef *hhcd, in HCD_HC_IN_BulkDb() argument
1718 received_bytes = (uint16_t)HCD_GET_CH_DBUF0_CNT(hhcd->Instance, phy_chnum); in HCD_HC_IN_BulkDb()
1720 if (hhcd->hc[ch_num & 0xFU].xfer_len <= received_bytes) in HCD_HC_IN_BulkDb()
1722 hhcd->hc[ch_num & 0xFU].xfer_len = 0U; in HCD_HC_IN_BulkDb()
1726 hhcd->hc[ch_num & 0xFU].xfer_len -= received_bytes; in HCD_HC_IN_BulkDb()
1730 if ((hhcd->hc[ch_num & 0xFU].xfer_len != 0U) && ((regvalue & USB_CH_DTOG_TX) != 0U)) in HCD_HC_IN_BulkDb()
1733 HCD_FREE_USER_BUFFER(hhcd->Instance, phy_chnum, 0U); in HCD_HC_IN_BulkDb()
1737 USB_ReadPMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_IN_BulkDb()
1738 hhcd->hc[ch_num & 0xFU].pmaaddr0, (uint16_t)received_bytes); in HCD_HC_IN_BulkDb()
1743 received_bytes = (uint16_t) HCD_GET_CH_DBUF1_CNT(hhcd->Instance, phy_chnum); in HCD_HC_IN_BulkDb()
1745 if (hhcd->hc[ch_num & 0xFU].xfer_len <= received_bytes) in HCD_HC_IN_BulkDb()
1747 hhcd->hc[ch_num & 0xFU].xfer_len = 0U; in HCD_HC_IN_BulkDb()
1751 hhcd->hc[ch_num & 0xFU].xfer_len -= received_bytes; in HCD_HC_IN_BulkDb()
1755 if ((hhcd->hc[ch_num & 0xFU].xfer_len != 0U) && ((regvalue & USB_CH_DTOG_TX) == 0U)) in HCD_HC_IN_BulkDb()
1758 HCD_FREE_USER_BUFFER(hhcd->Instance, phy_chnum, 0U); in HCD_HC_IN_BulkDb()
1762 USB_ReadPMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_IN_BulkDb()
1763 hhcd->hc[ch_num & 0xFU].pmaaddr1, (uint16_t)received_bytes); in HCD_HC_IN_BulkDb()
1767 hhcd->hc[ch_num & 0xFU].xfer_count += received_bytes; in HCD_HC_IN_BulkDb()
1770 hhcd->hc[ch_num & 0xFU].state = HC_ACK; in HCD_HC_IN_BulkDb()
1771 hhcd->hc[ch_num & 0xFU].ErrCnt = 0U; in HCD_HC_IN_BulkDb()
1773 if ((hhcd->hc[ch_num & 0xFU].xfer_len == 0U) || in HCD_HC_IN_BulkDb()
1774 ((received_bytes < hhcd->hc[ch_num & 0xFU].max_packet))) in HCD_HC_IN_BulkDb()
1776 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_IN_BulkDb()
1777 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_IN_BulkDb()
1780 HCD_SET_CH_RX_STATUS(hhcd->Instance, phy_chnum, USB_CH_RX_DIS); in HCD_HC_IN_BulkDb()
1784 hhcd->hc[ch_num & 0xFU].xfer_buff += received_bytes; in HCD_HC_IN_BulkDb()
1787 HCD_SET_CH_RX_STATUS(hhcd->Instance, phy_chnum, USB_CH_RX_STRX); in HCD_HC_IN_BulkDb()
1800 static void inline HCD_HC_IN_ISO(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HCD_HC_IN_ISO() argument
1807 hhcd->hc[ch_num & 0xFU].xfer_count = HCD_GET_CH_RX_CNT(hhcd->Instance, phy_chnum); in HCD_HC_IN_ISO()
1808 if (hhcd->hc[ch_num & 0xFU].xfer_count != 0U) in HCD_HC_IN_ISO()
1810 USB_ReadPMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_IN_ISO()
1811 hhcd->hc[ch_num & 0xFU].pmaadress, in HCD_HC_IN_ISO()
1812 (uint16_t)hhcd->hc[ch_num & 0xFU].xfer_count); in HCD_HC_IN_ISO()
1814 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_IN_ISO()
1824 hhcd->hc[ch_num & 0xFU].xfer_count = HCD_GET_CH_DBUF0_CNT(hhcd->Instance, phy_chnum); in HCD_HC_IN_ISO()
1826 if (hhcd->hc[ch_num & 0xFU].xfer_count != 0U) in HCD_HC_IN_ISO()
1829 USB_ReadPMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_IN_ISO()
1830 hhcd->hc[ch_num & 0xFU].pmaaddr0, in HCD_HC_IN_ISO()
1831 (uint16_t)hhcd->hc[ch_num & 0xFU].xfer_count); in HCD_HC_IN_ISO()
1833 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_IN_ISO()
1839 hhcd->hc[ch_num & 0xFU].xfer_count = HCD_GET_CH_DBUF1_CNT(hhcd->Instance, phy_chnum); in HCD_HC_IN_ISO()
1841 if (hhcd->hc[ch_num & 0xFU].xfer_count != 0U) in HCD_HC_IN_ISO()
1844 USB_ReadPMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_IN_ISO()
1845 hhcd->hc[ch_num & 0xFU].pmaaddr1, in HCD_HC_IN_ISO()
1846 (uint16_t)hhcd->hc[ch_num & 0xFU].xfer_count); in HCD_HC_IN_ISO()
1848 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_IN_ISO()
1855 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_IN_ISO()
1858 HCD_CLEAR_RX_CH_CTR(hhcd->Instance, phy_chnum); in HCD_HC_IN_ISO()
1868 static void HCD_HC_IN_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum) in HCD_HC_IN_IRQHandler() argument
1872 uint8_t ch_num = HAL_HCD_GetLogical_Channel(hhcd, phy_chnum, 1U); in HCD_HC_IN_IRQHandler()
1875 uint32_t ch_reg = HCD_GET_CHANNEL(hhcd->Instance, phy_chnum); in HCD_HC_IN_IRQHandler()
1883 HCD_HC_IN_ISO(hhcd, ch_num, phy_chnum, ch_reg); in HCD_HC_IN_IRQHandler()
1891 received_bytes = (uint16_t)HCD_GET_CH_RX_CNT(hhcd->Instance, phy_chnum); in HCD_HC_IN_IRQHandler()
1894 USB_ReadPMA(hhcd->Instance, hhcd->hc[ch_num & 0xFU].xfer_buff, in HCD_HC_IN_IRQHandler()
1895 hhcd->hc[ch_num & 0xFU].pmaadress, (uint16_t)received_bytes); in HCD_HC_IN_IRQHandler()
1898 hhcd->hc[ch_num & 0xFU].xfer_count += received_bytes; in HCD_HC_IN_IRQHandler()
1901 hhcd->hc[ch_num & 0xFU].state = HC_ACK; in HCD_HC_IN_IRQHandler()
1902 hhcd->hc[ch_num & 0xFU].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1904 if (hhcd->hc[ch_num & 0xFU].xfer_len <= received_bytes) in HCD_HC_IN_IRQHandler()
1906 hhcd->hc[ch_num & 0xFU].xfer_len = 0U; in HCD_HC_IN_IRQHandler()
1910 hhcd->hc[ch_num & 0xFU].xfer_len -= received_bytes; in HCD_HC_IN_IRQHandler()
1913 if ((hhcd->hc[ch_num & 0xFU].xfer_len == 0U) || in HCD_HC_IN_IRQHandler()
1914 ((received_bytes < hhcd->hc[ch_num & 0xFU].max_packet))) in HCD_HC_IN_IRQHandler()
1916 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_IN_IRQHandler()
1917 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_IN_IRQHandler()
1921 hhcd->hc[ch_num & 0xFU].xfer_buff += received_bytes; in HCD_HC_IN_IRQHandler()
1924 HCD_SET_CH_RX_STATUS(hhcd->Instance, phy_chnum, USB_CH_RX_STRX); in HCD_HC_IN_IRQHandler()
1927 if ((hhcd->hc[ch_num & 0xFU].ep_type == EP_TYPE_BULK) || in HCD_HC_IN_IRQHandler()
1928 (hhcd->hc[ch_num & 0xFU].ep_type == EP_TYPE_INTR)) in HCD_HC_IN_IRQHandler()
1930 hhcd->hc[ch_num & 0xFU].toggle_in ^= 1U; in HCD_HC_IN_IRQHandler()
1935 && (hhcd->hc[ch_num & 0xFU].urb_state != URB_DONE)) in HCD_HC_IN_IRQHandler()
1937 hhcd->hc[ch_num & 0xFU].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1938 hhcd->hc[ch_num & 0xFU].ErrCnt = 0U; in HCD_HC_IN_IRQHandler()
1939 hhcd->hc[ch_num & 0xFU].state = HC_NAK; in HCD_HC_IN_IRQHandler()
1941 if (hhcd->hc[ch_num & 0xFU].ep_type == EP_TYPE_INTR) in HCD_HC_IN_IRQHandler()
1944 HCD_SET_CH_RX_STATUS(hhcd->Instance, phy_chnum, USB_CH_RX_DIS); in HCD_HC_IN_IRQHandler()
1950 (void)HAL_HCD_HC_Halt(hhcd, ch_num); in HCD_HC_IN_IRQHandler()
1951 hhcd->hc[ch_num & 0xFU].state = HC_STALL; in HCD_HC_IN_IRQHandler()
1952 hhcd->hc[ch_num & 0xFU].urb_state = URB_STALL; in HCD_HC_IN_IRQHandler()
1955 HCD_SET_CH_RX_STATUS(hhcd->Instance, phy_chnum, USB_CH_RX_DIS); in HCD_HC_IN_IRQHandler()
1963 HCD_HC_IN_BulkDb(hhcd, ch_num, phy_chnum, ch_reg); in HCD_HC_IN_IRQHandler()
1973 hhcd->HC_NotifyURBChangeCallback(hhcd, ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_IN_IRQHandler()
1975 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_IN_IRQHandler()
1979 HCD_CLEAR_RX_CH_CTR(hhcd->Instance, phy_chnum); in HCD_HC_IN_IRQHandler()
1985 hhcd->hc[ch_num & 0xFU].urb_state = URB_NOTREADY; in HCD_HC_IN_IRQHandler()
1986 hhcd->hc[ch_num & 0xFU].ErrCnt++; in HCD_HC_IN_IRQHandler()
1987 hhcd->hc[ch_num & 0xFU].state = HC_XACTERR; in HCD_HC_IN_IRQHandler()
1990 HCD_CLEAR_RX_CH_ERR(hhcd->Instance, phy_chnum); in HCD_HC_IN_IRQHandler()
1993 if (hhcd->hc[ch_num & 0xFU].ErrCnt > 3U) in HCD_HC_IN_IRQHandler()
1995 hhcd->hc[ch_num & 0xFU].urb_state = URB_ERROR; in HCD_HC_IN_IRQHandler()
1996 HCD_SET_CH_RX_STATUS(hhcd->Instance, phy_chnum, USB_CH_RX_DIS); in HCD_HC_IN_IRQHandler()
1999 HCD_CLEAR_RX_CH_ERR(hhcd->Instance, phy_chnum); in HCD_HC_IN_IRQHandler()
2003 hhcd->HC_NotifyURBChangeCallback(hhcd, ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_IN_IRQHandler()
2005 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_IN_IRQHandler()
2018 static void HCD_HC_OUT_IRQHandler(HCD_HandleTypeDef *hhcd, uint8_t chnum) in HCD_HC_OUT_IRQHandler() argument
2025 uint8_t ch_num = HAL_HCD_GetLogical_Channel(hhcd, phy_chnum, 0U); in HCD_HC_OUT_IRQHandler()
2028 uint32_t ch_reg = *(__IO uint32_t *)(&(hhcd->Instance->CHEP0R) + phy_chnum); in HCD_HC_OUT_IRQHandler()
2037 if ((hhcd->Instance->ISTR & USB_ISTR_ERR) == 0U) in HCD_HC_OUT_IRQHandler()
2042 HCD_SET_CH_TX_CNT(hhcd->Instance, phy_chnum, 0U); in HCD_HC_OUT_IRQHandler()
2050 HCD_SET_CH_TX_CNT(hhcd->Instance, phy_chnum, 0U); in HCD_HC_OUT_IRQHandler()
2055 HCD_SET_CH_RX_CNT(hhcd->Instance, phy_chnum, 0U); in HCD_HC_OUT_IRQHandler()
2058 USB_DRD_SET_CHEP_TX_STATUS(hhcd->Instance, phy_chnum, USB_CH_TX_DIS); in HCD_HC_OUT_IRQHandler()
2063 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_OUT_IRQHandler()
2064 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_OUT_IRQHandler()
2068 HCD_CLEAR_TX_CH_CTR(hhcd->Instance, phy_chnum); in HCD_HC_OUT_IRQHandler()
2072 hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2074 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2085 if (hhcd->hc[ch_num & 0xFU].xfer_len >= data_xfr) in HCD_HC_OUT_IRQHandler()
2087 hhcd->hc[ch_num & 0xFU].xfer_len -= data_xfr; in HCD_HC_OUT_IRQHandler()
2091 hhcd->hc[ch_num & 0xFU].xfer_len = 0U; in HCD_HC_OUT_IRQHandler()
2094 if ((hhcd->hc[ch_num & 0xFU].ep_type == EP_TYPE_BULK) || in HCD_HC_OUT_IRQHandler()
2095 (hhcd->hc[ch_num & 0xFU].ep_type == EP_TYPE_INTR)) in HCD_HC_OUT_IRQHandler()
2097 hhcd->hc[ch_num & 0xFU].toggle_out ^= 1U; in HCD_HC_OUT_IRQHandler()
2101 if (hhcd->hc[ch_num & 0xFU].xfer_len != 0U) in HCD_HC_OUT_IRQHandler()
2104 hhcd->hc[ch_num & 0xFU].xfer_buff += data_xfr; in HCD_HC_OUT_IRQHandler()
2105 hhcd->hc[ch_num & 0xFU].xfer_count += data_xfr; in HCD_HC_OUT_IRQHandler()
2108 (void) USB_HC_StartXfer(hhcd->Instance, &hhcd->hc[ch_num & 0xFU]); in HCD_HC_OUT_IRQHandler()
2113 hhcd->hc[ch_num & 0xFU].xfer_count += data_xfr; in HCD_HC_OUT_IRQHandler()
2114 hhcd->hc[ch_num & 0xFU].state = HC_XFRC; in HCD_HC_OUT_IRQHandler()
2115 hhcd->hc[ch_num & 0xFU].urb_state = URB_DONE; in HCD_HC_OUT_IRQHandler()
2123 hhcd->hc[ch_num & 0xFU].state = HC_NAK; in HCD_HC_OUT_IRQHandler()
2124 hhcd->hc[ch_num & 0xFU].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
2125 hhcd->hc[ch_num & 0xFU].ErrCnt = 0U; in HCD_HC_OUT_IRQHandler()
2128 WregCh = *(__IO uint32_t *)(&(hhcd->Instance->CHEP0R) + phy_chnum); in HCD_HC_OUT_IRQHandler()
2134 HCD_SET_CHANNEL(hhcd->Instance, phy_chnum, WregCh); in HCD_HC_OUT_IRQHandler()
2136 if (hhcd->hc[ch_num & 0xFU].doublebuffer == 0U) in HCD_HC_OUT_IRQHandler()
2139 … hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2141 … HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2148 (void) HAL_HCD_HC_Halt(hhcd, (uint8_t)ch_num); in HCD_HC_OUT_IRQHandler()
2149 hhcd->hc[ch_num & 0xFU].state = HC_STALL; in HCD_HC_OUT_IRQHandler()
2150 hhcd->hc[ch_num & 0xFU].urb_state = URB_STALL; in HCD_HC_OUT_IRQHandler()
2157 (void) HCD_HC_OUT_BulkDb(hhcd, ch_num, (uint8_t)phy_chnum, ch_reg); in HCD_HC_OUT_IRQHandler()
2168 hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2170 … HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2174 HCD_CLEAR_TX_CH_CTR(hhcd->Instance, phy_chnum); in HCD_HC_OUT_IRQHandler()
2180 hhcd->hc[ch_num & 0xFU].ErrCnt++; in HCD_HC_OUT_IRQHandler()
2181 if (hhcd->hc[ch_num & 0xFU].ErrCnt > 3U) in HCD_HC_OUT_IRQHandler()
2183 HCD_SET_CH_TX_STATUS(hhcd->Instance, phy_chnum, USB_CH_TX_DIS); in HCD_HC_OUT_IRQHandler()
2184 hhcd->hc[ch_num & 0xFU].urb_state = URB_ERROR; in HCD_HC_OUT_IRQHandler()
2188 hhcd->hc[ch_num & 0xFU].urb_state = URB_NOTREADY; in HCD_HC_OUT_IRQHandler()
2191 hhcd->hc[ch_num & 0xFU].state = HC_XACTERR; in HCD_HC_OUT_IRQHandler()
2194 HCD_CLEAR_TX_CH_ERR(hhcd->Instance, phy_chnum); in HCD_HC_OUT_IRQHandler()
2197 hhcd->HC_NotifyURBChangeCallback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2199 HAL_HCD_HC_NotifyURBChange_Callback(hhcd, (uint8_t)ch_num, hhcd->hc[ch_num & 0xFU].urb_state); in HCD_HC_OUT_IRQHandler()
2210 static void HCD_Port_IRQHandler(HCD_HandleTypeDef *hhcd) in HCD_Port_IRQHandler() argument
2212 uint32_t FnrReg = hhcd->Instance->FNR; in HCD_Port_IRQHandler()
2213 uint32_t IstrReg = hhcd->Instance->ISTR; in HCD_Port_IRQHandler()
2219 hhcd->HostState = HCD_HCD_STATE_DISCONNECTED; in HCD_Port_IRQHandler()
2222 HAL_HCD_ClearPhyChannel(hhcd); in HCD_Port_IRQHandler()
2225 (void)HAL_HCD_PMAReset(hhcd); in HCD_Port_IRQHandler()
2228 hhcd->ep0_PmaAllocState = 0U; in HCD_Port_IRQHandler()
2232 hhcd->DisconnectCallback(hhcd); in HCD_Port_IRQHandler()
2234 HAL_HCD_Disconnect_Callback(hhcd); in HCD_Port_IRQHandler()
2240 if ((hhcd->HostState == HCD_HCD_STATE_DISCONNECTED) != 0U) in HCD_Port_IRQHandler()
2245 hhcd->HostState = HCD_HCD_STATE_CONNECTED; in HCD_Port_IRQHandler()
2248 hhcd->ConnectCallback(hhcd); in HCD_Port_IRQHandler()
2250 HAL_HCD_Connect_Callback(hhcd); in HCD_Port_IRQHandler()
2260 hhcd->HostState = HCD_HCD_STATE_DISCONNECTED; in HCD_Port_IRQHandler()
2263 HAL_HCD_ClearPhyChannel(hhcd); in HCD_Port_IRQHandler()
2266 (void)HAL_HCD_PMAReset(hhcd); in HCD_Port_IRQHandler()
2269 hhcd->ep0_PmaAllocState = 0U; in HCD_Port_IRQHandler()
2273 hhcd->DisconnectCallback(hhcd); in HCD_Port_IRQHandler()
2275 HAL_HCD_Disconnect_Callback(hhcd); in HCD_Port_IRQHandler()
2289 static uint8_t HAL_HCD_Check_usedChannel(HCD_HandleTypeDef const *hhcd, uint8_t ch_num) in HAL_HCD_Check_usedChannel() argument
2294 for (idx = 0U; idx < hhcd->Init.Host_channels; idx++) in HAL_HCD_Check_usedChannel()
2296 if ((((hhcd->phy_chin_state[idx] & 0xF0U) >> 4U) == ((uint16_t)ch_num + 1U)) && in HAL_HCD_Check_usedChannel()
2297 (hhcd->phy_chin_state[idx] != 0U)) in HAL_HCD_Check_usedChannel()
2302 if ((((hhcd->phy_chout_state[idx] & 0xF0U) >> 4U) == ((uint16_t)ch_num + 1U)) && in HAL_HCD_Check_usedChannel()
2303 (hhcd->phy_chout_state[idx] != 0U)) in HAL_HCD_Check_usedChannel()
2323 static uint8_t HAL_HCD_GetLogical_Channel(HCD_HandleTypeDef const *hhcd, in HAL_HCD_GetLogical_Channel() argument
2329 if (((hhcd->phy_chout_state[phy_chnum & 0x7U] & 0x00F0U) >> 4U) != 0U) in HAL_HCD_GetLogical_Channel()
2331 return ((uint8_t)((hhcd->phy_chout_state[phy_chnum & 0x7U] & 0x00F0U) >> 4U) - 1U); in HAL_HCD_GetLogical_Channel()
2342 if (((hhcd->phy_chin_state[phy_chnum & 0x7U] & 0x00F0U) >> 4U) != 0U) in HAL_HCD_GetLogical_Channel()
2344 return ((uint8_t)((hhcd->phy_chin_state[phy_chnum & 0x7U] & 0x00F0U) >> 4U) - 1U); in HAL_HCD_GetLogical_Channel()
2371 static uint8_t HAL_HCD_Get_FreePhyChannel(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HAL_HCD_Get_FreePhyChannel() argument
2382 if (hhcd->phy_chin_state[idx] == 0U) in HAL_HCD_Get_FreePhyChannel()
2386 hhcd->phy_chin_state[idx] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_Get_FreePhyChannel()
2391 if (hhcd->phy_chout_state[idx] == 0U) in HAL_HCD_Get_FreePhyChannel()
2395 hhcd->phy_chout_state[idx] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_Get_FreePhyChannel()
2404 if (((hhcd->phy_chin_state[idx] & 0xF0U) >> 4U) != ((uint16_t)ch_num + 1U)) in HAL_HCD_Get_FreePhyChannel()
2408 hhcd->phy_chin_state[idx] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_Get_FreePhyChannel()
2415 if (((hhcd->phy_chout_state[idx] & 0xF0U) >> 4U) != ((uint16_t)ch_num + 1U)) in HAL_HCD_Get_FreePhyChannel()
2419 hhcd->phy_chout_state[idx] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_Get_FreePhyChannel()
2432 for (idx = 1U; idx < hhcd->Init.Host_channels; idx++) in HAL_HCD_Get_FreePhyChannel()
2435 if ((hhcd->phy_chin_state[idx] == 0U) && in HAL_HCD_Get_FreePhyChannel()
2436 ((((hhcd->phy_chout_state[idx] & 0x000FU) == ((uint16_t)ep_type + 1U)) && in HAL_HCD_Get_FreePhyChannel()
2437 (((hhcd->phy_chout_state[idx] & 0x0F00U) == ((uint16_t)epnum & 0x0FU)))) || in HAL_HCD_Get_FreePhyChannel()
2438 (hhcd->phy_chout_state[idx] == 0U))) in HAL_HCD_Get_FreePhyChannel()
2442 hhcd->phy_chin_state[idx] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_Get_FreePhyChannel()
2453 for (idx = 1U; idx < hhcd->Init.Host_channels; idx++) in HAL_HCD_Get_FreePhyChannel()
2456 if ((hhcd->phy_chout_state[idx] == 0U) && in HAL_HCD_Get_FreePhyChannel()
2457 ((((hhcd->phy_chin_state[idx] & 0x0FU) == ((uint16_t)ep_type + 1U)) && in HAL_HCD_Get_FreePhyChannel()
2458 ((hhcd->phy_chin_state[idx] & 0x0F00U) == ((uint16_t)epnum & 0x0FU))) || in HAL_HCD_Get_FreePhyChannel()
2459 (hhcd->phy_chin_state[idx] == 0U))) in HAL_HCD_Get_FreePhyChannel()
2463 hhcd->phy_chout_state[idx] = (((uint16_t)ch_num + 1U) << 4U) | in HAL_HCD_Get_FreePhyChannel()
2481 static void HAL_HCD_ClearPhyChannel(HCD_HandleTypeDef *hhcd) in HAL_HCD_ClearPhyChannel() argument
2485 for (idx = 0U; idx < hhcd->Init.Host_channels; idx++) in HAL_HCD_ClearPhyChannel()
2488 hhcd->phy_chout_state[idx] = 0U; in HAL_HCD_ClearPhyChannel()
2489 hhcd->phy_chin_state[idx] = 0U; in HAL_HCD_ClearPhyChannel()
2514 static uint16_t HAL_HCD_GetFreePMA(HCD_HandleTypeDef *hhcd, uint16_t mps) in HAL_HCD_GetFreePMA() argument
2545 Entry = hhcd->PMALookupTable[i]; in HAL_HCD_GetFreePMA()
2593 hhcd->PMALookupTable[i] |= ((uint32_t)1U << j); in HAL_HCD_GetFreePMA()
2621 HAL_StatusTypeDef HAL_HCD_PMAlloc(HCD_HandleTypeDef *hhcd, uint8_t ch_num, in HAL_HCD_PMAlloc() argument
2630 HCD_HCTypeDef *hc = &(hhcd->hc[ch_num]); in HAL_HCD_PMAlloc()
2633 pma_addr0 = HAL_HCD_GetFreePMA(hhcd, mps); in HAL_HCD_PMAlloc()
2650 hhcd->ep0_PmaAllocState &= 0xFFF0U; in HAL_HCD_PMAlloc()
2651 hhcd->ep0_PmaAllocState |= ch_num; in HAL_HCD_PMAlloc()
2652 hhcd->ep0_PmaAllocState |= (1U << 8); in HAL_HCD_PMAlloc()
2663 hhcd->ep0_PmaAllocState |= (CH_IN_DIR << 4); in HAL_HCD_PMAlloc()
2682 pma_addr1 = HAL_HCD_GetFreePMA(hhcd, mps); in HAL_HCD_PMAlloc()
2687 (void)HAL_HCD_PMAFree(hhcd, pma_addr0, mps); in HAL_HCD_PMAlloc()
2725 HAL_StatusTypeDef HAL_HCD_PMADeAlloc(HCD_HandleTypeDef *hhcd, uint8_t ch_num) in HAL_HCD_PMADeAlloc() argument
2734 HCD_HCTypeDef *hc = &(hhcd->hc[ch_num]); in HAL_HCD_PMADeAlloc()
2739 status = HAL_HCD_PMAFree(hhcd, hc->pmaadress, hc->max_packet); in HAL_HCD_PMADeAlloc()
2744 status = HAL_HCD_PMAFree(hhcd, hc->pmaaddr0, hc->max_packet); in HAL_HCD_PMADeAlloc()
2750 status = HAL_HCD_PMAFree(hhcd, hc->pmaaddr1, hc->max_packet); in HAL_HCD_PMADeAlloc()
2774 HAL_StatusTypeDef HAL_HCD_PMAReset(HCD_HandleTypeDef *hhcd) in HAL_HCD_PMAReset() argument
2779 hhcd->PMALookupTable[i] = 0U; in HAL_HCD_PMAReset()
2783 for (uint8_t i = 0U; i < hhcd->Init.Host_channels; i++) in HAL_HCD_PMAReset()
2785 hhcd->PMALookupTable[0] |= ((uint32_t)1U << i); in HAL_HCD_PMAReset()
2798 static HAL_StatusTypeDef HAL_HCD_PMAFree(HCD_HandleTypeDef *hhcd, uint32_t pma_base, uint16_t mps) in HAL_HCD_PMAFree() argument
2847 if ((hhcd->PMALookupTable[i] & ((uint32_t)1U << j)) == 0U) in HAL_HCD_PMAFree()
2852 hhcd->PMALookupTable[i] &= ~(1U << j); in HAL_HCD_PMAFree()