Lines Matching refs:hpcd
90 static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd);
92 static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_…
93 static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, PCD_EPTypeDef *ep, uint16_t wEPVal);
124 HAL_StatusTypeDef HAL_PCD_Init(PCD_HandleTypeDef *hpcd) in HAL_PCD_Init() argument
129 if (hpcd == NULL) in HAL_PCD_Init()
135 assert_param(IS_PCD_ALL_INSTANCE(hpcd->Instance)); in HAL_PCD_Init()
137 if (hpcd->State == HAL_PCD_STATE_RESET) in HAL_PCD_Init()
140 hpcd->Lock = HAL_UNLOCKED; in HAL_PCD_Init()
143 hpcd->SOFCallback = HAL_PCD_SOFCallback; in HAL_PCD_Init()
144 hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; in HAL_PCD_Init()
145 hpcd->ResetCallback = HAL_PCD_ResetCallback; in HAL_PCD_Init()
146 hpcd->SuspendCallback = HAL_PCD_SuspendCallback; in HAL_PCD_Init()
147 hpcd->ResumeCallback = HAL_PCD_ResumeCallback; in HAL_PCD_Init()
148 hpcd->ConnectCallback = HAL_PCD_ConnectCallback; in HAL_PCD_Init()
149 hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; in HAL_PCD_Init()
150 hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; in HAL_PCD_Init()
151 hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; in HAL_PCD_Init()
152 hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; in HAL_PCD_Init()
153 hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; in HAL_PCD_Init()
155 if (hpcd->MspInitCallback == NULL) in HAL_PCD_Init()
157 hpcd->MspInitCallback = HAL_PCD_MspInit; in HAL_PCD_Init()
161 hpcd->MspInitCallback(hpcd); in HAL_PCD_Init()
164 HAL_PCD_MspInit(hpcd); in HAL_PCD_Init()
168 hpcd->State = HAL_PCD_STATE_BUSY; in HAL_PCD_Init()
171 __HAL_PCD_DISABLE(hpcd); in HAL_PCD_Init()
174 for (i = 0U; i < hpcd->Init.dev_endpoints; i++) in HAL_PCD_Init()
177 hpcd->IN_ep[i].is_in = 1U; in HAL_PCD_Init()
178 hpcd->IN_ep[i].num = i; in HAL_PCD_Init()
180 hpcd->IN_ep[i].type = EP_TYPE_CTRL; in HAL_PCD_Init()
181 hpcd->IN_ep[i].maxpacket = 0U; in HAL_PCD_Init()
182 hpcd->IN_ep[i].xfer_buff = 0U; in HAL_PCD_Init()
183 hpcd->IN_ep[i].xfer_len = 0U; in HAL_PCD_Init()
186 for (i = 0U; i < hpcd->Init.dev_endpoints; i++) in HAL_PCD_Init()
188 hpcd->OUT_ep[i].is_in = 0U; in HAL_PCD_Init()
189 hpcd->OUT_ep[i].num = i; in HAL_PCD_Init()
191 hpcd->OUT_ep[i].type = EP_TYPE_CTRL; in HAL_PCD_Init()
192 hpcd->OUT_ep[i].maxpacket = 0U; in HAL_PCD_Init()
193 hpcd->OUT_ep[i].xfer_buff = 0U; in HAL_PCD_Init()
194 hpcd->OUT_ep[i].xfer_len = 0U; in HAL_PCD_Init()
198 (void)USB_DevInit(hpcd->Instance, hpcd->Init); in HAL_PCD_Init()
200 hpcd->USB_Address = 0U; in HAL_PCD_Init()
201 hpcd->State = HAL_PCD_STATE_READY; in HAL_PCD_Init()
210 HAL_StatusTypeDef HAL_PCD_DeInit(PCD_HandleTypeDef *hpcd) in HAL_PCD_DeInit() argument
213 if (hpcd == NULL) in HAL_PCD_DeInit()
218 hpcd->State = HAL_PCD_STATE_BUSY; in HAL_PCD_DeInit()
221 if (USB_StopDevice(hpcd->Instance) != HAL_OK) in HAL_PCD_DeInit()
227 if (hpcd->MspDeInitCallback == NULL) in HAL_PCD_DeInit()
229 hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PCD_DeInit()
233 hpcd->MspDeInitCallback(hpcd); in HAL_PCD_DeInit()
236 HAL_PCD_MspDeInit(hpcd); in HAL_PCD_DeInit()
239 hpcd->State = HAL_PCD_STATE_RESET; in HAL_PCD_DeInit()
249 __weak void HAL_PCD_MspInit(PCD_HandleTypeDef *hpcd) in HAL_PCD_MspInit() argument
252 UNUSED(hpcd); in HAL_PCD_MspInit()
264 __weak void HAL_PCD_MspDeInit(PCD_HandleTypeDef *hpcd) in HAL_PCD_MspDeInit() argument
267 UNUSED(hpcd); in HAL_PCD_MspDeInit()
293 HAL_StatusTypeDef HAL_PCD_RegisterCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterCallback() argument
302 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
306 __HAL_LOCK(hpcd); in HAL_PCD_RegisterCallback()
308 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterCallback()
313 hpcd->SOFCallback = pCallback; in HAL_PCD_RegisterCallback()
317 hpcd->SetupStageCallback = pCallback; in HAL_PCD_RegisterCallback()
321 hpcd->ResetCallback = pCallback; in HAL_PCD_RegisterCallback()
325 hpcd->SuspendCallback = pCallback; in HAL_PCD_RegisterCallback()
329 hpcd->ResumeCallback = pCallback; in HAL_PCD_RegisterCallback()
333 hpcd->ConnectCallback = pCallback; in HAL_PCD_RegisterCallback()
337 hpcd->DisconnectCallback = pCallback; in HAL_PCD_RegisterCallback()
341 hpcd->MspInitCallback = pCallback; in HAL_PCD_RegisterCallback()
345 hpcd->MspDeInitCallback = pCallback; in HAL_PCD_RegisterCallback()
350 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
356 else if (hpcd->State == HAL_PCD_STATE_RESET) in HAL_PCD_RegisterCallback()
361 hpcd->MspInitCallback = pCallback; in HAL_PCD_RegisterCallback()
365 hpcd->MspDeInitCallback = pCallback; in HAL_PCD_RegisterCallback()
370 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
379 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterCallback()
385 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterCallback()
406 HAL_StatusTypeDef HAL_PCD_UnRegisterCallback(PCD_HandleTypeDef *hpcd, HAL_PCD_CallbackIDTypeDef Cal… in HAL_PCD_UnRegisterCallback() argument
411 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterCallback()
414 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterCallback()
419 hpcd->SOFCallback = HAL_PCD_SOFCallback; in HAL_PCD_UnRegisterCallback()
423 hpcd->SetupStageCallback = HAL_PCD_SetupStageCallback; in HAL_PCD_UnRegisterCallback()
427 hpcd->ResetCallback = HAL_PCD_ResetCallback; in HAL_PCD_UnRegisterCallback()
431 hpcd->SuspendCallback = HAL_PCD_SuspendCallback; in HAL_PCD_UnRegisterCallback()
435 hpcd->ResumeCallback = HAL_PCD_ResumeCallback; in HAL_PCD_UnRegisterCallback()
439 hpcd->ConnectCallback = HAL_PCD_ConnectCallback; in HAL_PCD_UnRegisterCallback()
443 hpcd->DisconnectCallback = HAL_PCD_DisconnectCallback; in HAL_PCD_UnRegisterCallback()
447 hpcd->MspInitCallback = HAL_PCD_MspInit; in HAL_PCD_UnRegisterCallback()
451 hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; in HAL_PCD_UnRegisterCallback()
456 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterCallback()
463 else if (hpcd->State == HAL_PCD_STATE_RESET) in HAL_PCD_UnRegisterCallback()
468 hpcd->MspInitCallback = HAL_PCD_MspInit; in HAL_PCD_UnRegisterCallback()
472 hpcd->MspDeInitCallback = HAL_PCD_MspDeInit; in HAL_PCD_UnRegisterCallback()
477 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterCallback()
487 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterCallback()
494 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterCallback()
505 HAL_StatusTypeDef HAL_PCD_RegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterDataOutStageCallback() argument
513 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataOutStageCallback()
519 __HAL_LOCK(hpcd); in HAL_PCD_RegisterDataOutStageCallback()
521 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterDataOutStageCallback()
523 hpcd->DataOutStageCallback = pCallback; in HAL_PCD_RegisterDataOutStageCallback()
528 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataOutStageCallback()
535 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterDataOutStageCallback()
546 HAL_StatusTypeDef HAL_PCD_UnRegisterDataOutStageCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterDataOutStageCallback() argument
551 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterDataOutStageCallback()
553 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterDataOutStageCallback()
555 … hpcd->DataOutStageCallback = HAL_PCD_DataOutStageCallback; /* Legacy weak DataOutStageCallback */ in HAL_PCD_UnRegisterDataOutStageCallback()
560 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterDataOutStageCallback()
567 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterDataOutStageCallback()
579 HAL_StatusTypeDef HAL_PCD_RegisterDataInStageCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterDataInStageCallback() argument
587 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataInStageCallback()
593 __HAL_LOCK(hpcd); in HAL_PCD_RegisterDataInStageCallback()
595 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterDataInStageCallback()
597 hpcd->DataInStageCallback = pCallback; in HAL_PCD_RegisterDataInStageCallback()
602 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterDataInStageCallback()
609 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterDataInStageCallback()
620 HAL_StatusTypeDef HAL_PCD_UnRegisterDataInStageCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterDataInStageCallback() argument
625 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterDataInStageCallback()
627 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterDataInStageCallback()
629 hpcd->DataInStageCallback = HAL_PCD_DataInStageCallback; /* Legacy weak DataInStageCallback */ in HAL_PCD_UnRegisterDataInStageCallback()
634 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterDataInStageCallback()
641 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterDataInStageCallback()
653 HAL_StatusTypeDef HAL_PCD_RegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterIsoOutIncpltCallback() argument
661 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoOutIncpltCallback()
667 __HAL_LOCK(hpcd); in HAL_PCD_RegisterIsoOutIncpltCallback()
669 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterIsoOutIncpltCallback()
671 hpcd->ISOOUTIncompleteCallback = pCallback; in HAL_PCD_RegisterIsoOutIncpltCallback()
676 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoOutIncpltCallback()
683 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterIsoOutIncpltCallback()
695 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoOutIncpltCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterIsoOutIncpltCallback() argument
700 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterIsoOutIncpltCallback()
702 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterIsoOutIncpltCallback()
704 …hpcd->ISOOUTIncompleteCallback = HAL_PCD_ISOOUTIncompleteCallback; /* Legacy weak ISOOUTIncomplete… in HAL_PCD_UnRegisterIsoOutIncpltCallback()
709 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterIsoOutIncpltCallback()
716 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterIsoOutIncpltCallback()
728 HAL_StatusTypeDef HAL_PCD_RegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd, in HAL_PCD_RegisterIsoInIncpltCallback() argument
736 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoInIncpltCallback()
742 __HAL_LOCK(hpcd); in HAL_PCD_RegisterIsoInIncpltCallback()
744 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_RegisterIsoInIncpltCallback()
746 hpcd->ISOINIncompleteCallback = pCallback; in HAL_PCD_RegisterIsoInIncpltCallback()
751 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_RegisterIsoInIncpltCallback()
758 __HAL_UNLOCK(hpcd); in HAL_PCD_RegisterIsoInIncpltCallback()
770 HAL_StatusTypeDef HAL_PCD_UnRegisterIsoInIncpltCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_UnRegisterIsoInIncpltCallback() argument
775 __HAL_LOCK(hpcd); in HAL_PCD_UnRegisterIsoInIncpltCallback()
777 if (hpcd->State == HAL_PCD_STATE_READY) in HAL_PCD_UnRegisterIsoInIncpltCallback()
779 …hpcd->ISOINIncompleteCallback = HAL_PCD_ISOINIncompleteCallback; /* Legacy weak ISOINIncompleteCal… in HAL_PCD_UnRegisterIsoInIncpltCallback()
784 hpcd->ErrorCode |= HAL_PCD_ERROR_INVALID_CALLBACK; in HAL_PCD_UnRegisterIsoInIncpltCallback()
791 __HAL_UNLOCK(hpcd); in HAL_PCD_UnRegisterIsoInIncpltCallback()
822 HAL_StatusTypeDef HAL_PCD_Start(PCD_HandleTypeDef *hpcd) in HAL_PCD_Start() argument
824 __HAL_LOCK(hpcd); in HAL_PCD_Start()
825 __HAL_PCD_ENABLE(hpcd); in HAL_PCD_Start()
827 HAL_PCDEx_SetConnectionState(hpcd, 1U); in HAL_PCD_Start()
829 (void)USB_DevConnect(hpcd->Instance); in HAL_PCD_Start()
830 __HAL_UNLOCK(hpcd); in HAL_PCD_Start()
840 HAL_StatusTypeDef HAL_PCD_Stop(PCD_HandleTypeDef *hpcd) in HAL_PCD_Stop() argument
842 __HAL_LOCK(hpcd); in HAL_PCD_Stop()
843 __HAL_PCD_DISABLE(hpcd); in HAL_PCD_Stop()
845 HAL_PCDEx_SetConnectionState(hpcd, 0U); in HAL_PCD_Stop()
847 (void)USB_DevDisconnect(hpcd->Instance); in HAL_PCD_Stop()
848 __HAL_UNLOCK(hpcd); in HAL_PCD_Stop()
859 void HAL_PCD_IRQHandler(PCD_HandleTypeDef *hpcd) in HAL_PCD_IRQHandler() argument
861 uint32_t wIstr = USB_ReadInterrupts(hpcd->Instance); in HAL_PCD_IRQHandler()
867 (void)PCD_EP_ISR_Handler(hpcd); in HAL_PCD_IRQHandler()
874 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_RESET); in HAL_PCD_IRQHandler()
877 hpcd->ResetCallback(hpcd); in HAL_PCD_IRQHandler()
879 HAL_PCD_ResetCallback(hpcd); in HAL_PCD_IRQHandler()
882 (void)HAL_PCD_SetAddress(hpcd, 0U); in HAL_PCD_IRQHandler()
889 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_PMAOVR); in HAL_PCD_IRQHandler()
896 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_ERR); in HAL_PCD_IRQHandler()
903 hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_LPMODE); in HAL_PCD_IRQHandler()
904 hpcd->Instance->CNTR &= (uint16_t) ~(USB_CNTR_FSUSP); in HAL_PCD_IRQHandler()
907 hpcd->ResumeCallback(hpcd); in HAL_PCD_IRQHandler()
909 HAL_PCD_ResumeCallback(hpcd); in HAL_PCD_IRQHandler()
912 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_WKUP); in HAL_PCD_IRQHandler()
920 hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_FSUSP; in HAL_PCD_IRQHandler()
923 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SUSP); in HAL_PCD_IRQHandler()
925 hpcd->Instance->CNTR |= (uint16_t)USB_CNTR_LPMODE; in HAL_PCD_IRQHandler()
928 hpcd->SuspendCallback(hpcd); in HAL_PCD_IRQHandler()
930 HAL_PCD_SuspendCallback(hpcd); in HAL_PCD_IRQHandler()
938 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_SOF); in HAL_PCD_IRQHandler()
941 hpcd->SOFCallback(hpcd); in HAL_PCD_IRQHandler()
943 HAL_PCD_SOFCallback(hpcd); in HAL_PCD_IRQHandler()
952 __HAL_PCD_CLEAR_FLAG(hpcd, USB_ISTR_ESOF); in HAL_PCD_IRQHandler()
964 void HAL_PCD_WKUP_IRQHandler(PCD_HandleTypeDef *hpcd) in HAL_PCD_WKUP_IRQHandler() argument
977 __weak void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_DataOutStageCallback() argument
980 UNUSED(hpcd); in HAL_PCD_DataOutStageCallback()
994 __weak void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_DataInStageCallback() argument
997 UNUSED(hpcd); in HAL_PCD_DataInStageCallback()
1009 __weak void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_SetupStageCallback() argument
1012 UNUSED(hpcd); in HAL_PCD_SetupStageCallback()
1024 __weak void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_SOFCallback() argument
1027 UNUSED(hpcd); in HAL_PCD_SOFCallback()
1039 __weak void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_ResetCallback() argument
1042 UNUSED(hpcd); in HAL_PCD_ResetCallback()
1054 __weak void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_SuspendCallback() argument
1057 UNUSED(hpcd); in HAL_PCD_SuspendCallback()
1069 __weak void HAL_PCD_ResumeCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_ResumeCallback() argument
1072 UNUSED(hpcd); in HAL_PCD_ResumeCallback()
1085 __weak void HAL_PCD_ISOOUTIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_ISOOUTIncompleteCallback() argument
1088 UNUSED(hpcd); in HAL_PCD_ISOOUTIncompleteCallback()
1102 __weak void HAL_PCD_ISOINIncompleteCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) in HAL_PCD_ISOINIncompleteCallback() argument
1105 UNUSED(hpcd); in HAL_PCD_ISOINIncompleteCallback()
1118 __weak void HAL_PCD_ConnectCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_ConnectCallback() argument
1121 UNUSED(hpcd); in HAL_PCD_ConnectCallback()
1133 __weak void HAL_PCD_DisconnectCallback(PCD_HandleTypeDef *hpcd) in HAL_PCD_DisconnectCallback() argument
1136 UNUSED(hpcd); in HAL_PCD_DisconnectCallback()
1167 HAL_StatusTypeDef HAL_PCD_DevConnect(PCD_HandleTypeDef *hpcd) in HAL_PCD_DevConnect() argument
1169 __HAL_LOCK(hpcd); in HAL_PCD_DevConnect()
1171 HAL_PCDEx_SetConnectionState(hpcd, 1U); in HAL_PCD_DevConnect()
1173 (void)USB_DevConnect(hpcd->Instance); in HAL_PCD_DevConnect()
1174 __HAL_UNLOCK(hpcd); in HAL_PCD_DevConnect()
1184 HAL_StatusTypeDef HAL_PCD_DevDisconnect(PCD_HandleTypeDef *hpcd) in HAL_PCD_DevDisconnect() argument
1186 __HAL_LOCK(hpcd); in HAL_PCD_DevDisconnect()
1188 HAL_PCDEx_SetConnectionState(hpcd, 0U); in HAL_PCD_DevDisconnect()
1190 (void)USB_DevDisconnect(hpcd->Instance); in HAL_PCD_DevDisconnect()
1191 __HAL_UNLOCK(hpcd); in HAL_PCD_DevDisconnect()
1202 HAL_StatusTypeDef HAL_PCD_SetAddress(PCD_HandleTypeDef *hpcd, uint8_t address) in HAL_PCD_SetAddress() argument
1204 __HAL_LOCK(hpcd); in HAL_PCD_SetAddress()
1205 hpcd->USB_Address = address; in HAL_PCD_SetAddress()
1206 (void)USB_SetDevAddress(hpcd->Instance, address); in HAL_PCD_SetAddress()
1207 __HAL_UNLOCK(hpcd); in HAL_PCD_SetAddress()
1219 HAL_StatusTypeDef HAL_PCD_EP_Open(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, in HAL_PCD_EP_Open() argument
1227 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1232 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Open()
1246 __HAL_LOCK(hpcd); in HAL_PCD_EP_Open()
1247 (void)USB_ActivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Open()
1248 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_Open()
1259 HAL_StatusTypeDef HAL_PCD_EP_Close(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_Close() argument
1265 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
1270 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Close()
1275 __HAL_LOCK(hpcd); in HAL_PCD_EP_Close()
1276 (void)USB_DeactivateEndpoint(hpcd->Instance, ep); in HAL_PCD_EP_Close()
1277 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_Close()
1290 HAL_StatusTypeDef HAL_PCD_EP_Receive(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint3… in HAL_PCD_EP_Receive() argument
1294 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Receive()
1303 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Receive()
1314 uint32_t HAL_PCD_EP_GetRxCount(PCD_HandleTypeDef const *hpcd, uint8_t ep_addr) in HAL_PCD_EP_GetRxCount() argument
1316 return hpcd->OUT_ep[ep_addr & EP_ADDR_MSK].xfer_count; in HAL_PCD_EP_GetRxCount()
1326 HAL_StatusTypeDef HAL_PCD_EP_Transmit(PCD_HandleTypeDef *hpcd, uint8_t ep_addr, uint8_t *pBuf, uint… in HAL_PCD_EP_Transmit() argument
1330 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Transmit()
1341 (void)USB_EPStartXfer(hpcd->Instance, ep); in HAL_PCD_EP_Transmit()
1352 HAL_StatusTypeDef HAL_PCD_EP_SetStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_SetStall() argument
1356 if (((uint32_t)ep_addr & EP_ADDR_MSK) > hpcd->Init.dev_endpoints) in HAL_PCD_EP_SetStall()
1363 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_SetStall()
1368 ep = &hpcd->OUT_ep[ep_addr]; in HAL_PCD_EP_SetStall()
1375 __HAL_LOCK(hpcd); in HAL_PCD_EP_SetStall()
1377 (void)USB_EPSetStall(hpcd->Instance, ep); in HAL_PCD_EP_SetStall()
1379 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_SetStall()
1390 HAL_StatusTypeDef HAL_PCD_EP_ClrStall(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_ClrStall() argument
1394 if (((uint32_t)ep_addr & 0x0FU) > hpcd->Init.dev_endpoints) in HAL_PCD_EP_ClrStall()
1401 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
1406 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_ClrStall()
1413 __HAL_LOCK(hpcd); in HAL_PCD_EP_ClrStall()
1414 (void)USB_EPClearStall(hpcd->Instance, ep); in HAL_PCD_EP_ClrStall()
1415 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_ClrStall()
1426 HAL_StatusTypeDef HAL_PCD_EP_Abort(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_Abort() argument
1433 ep = &hpcd->IN_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Abort()
1437 ep = &hpcd->OUT_ep[ep_addr & EP_ADDR_MSK]; in HAL_PCD_EP_Abort()
1441 ret = USB_EPStopXfer(hpcd->Instance, ep); in HAL_PCD_EP_Abort()
1452 HAL_StatusTypeDef HAL_PCD_EP_Flush(PCD_HandleTypeDef *hpcd, uint8_t ep_addr) in HAL_PCD_EP_Flush() argument
1454 __HAL_LOCK(hpcd); in HAL_PCD_EP_Flush()
1458 (void)USB_FlushTxFifo(hpcd->Instance, (uint32_t)ep_addr & EP_ADDR_MSK); in HAL_PCD_EP_Flush()
1462 (void)USB_FlushRxFifo(hpcd->Instance); in HAL_PCD_EP_Flush()
1465 __HAL_UNLOCK(hpcd); in HAL_PCD_EP_Flush()
1475 HAL_StatusTypeDef HAL_PCD_ActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) in HAL_PCD_ActivateRemoteWakeup() argument
1477 return (USB_ActivateRemoteWakeup(hpcd->Instance)); in HAL_PCD_ActivateRemoteWakeup()
1485 HAL_StatusTypeDef HAL_PCD_DeActivateRemoteWakeup(PCD_HandleTypeDef *hpcd) in HAL_PCD_DeActivateRemoteWakeup() argument
1487 return (USB_DeActivateRemoteWakeup(hpcd->Instance)); in HAL_PCD_DeActivateRemoteWakeup()
1514 PCD_StateTypeDef HAL_PCD_GetState(PCD_HandleTypeDef const *hpcd) in HAL_PCD_GetState() argument
1516 return hpcd->State; in HAL_PCD_GetState()
1538 static HAL_StatusTypeDef PCD_EP_ISR_Handler(PCD_HandleTypeDef *hpcd) in PCD_EP_ISR_Handler() argument
1552 while ((hpcd->Instance->ISTR & USB_ISTR_CTR) != 0U) in PCD_EP_ISR_Handler()
1554 wIstr = hpcd->Instance->ISTR; in PCD_EP_ISR_Handler()
1570 PCD_CLEAR_TX_EP_CTR(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
1571 ep = &hpcd->IN_ep[0]; in PCD_EP_ISR_Handler()
1573 ep->xfer_count = PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1578 hpcd->DataInStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
1580 HAL_PCD_DataInStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
1583 if ((hpcd->USB_Address > 0U) && (ep->xfer_len == 0U)) in PCD_EP_ISR_Handler()
1585 hpcd->Instance->DADDR = ((uint16_t)hpcd->USB_Address | USB_DADDR_EF); in PCD_EP_ISR_Handler()
1586 hpcd->USB_Address = 0U; in PCD_EP_ISR_Handler()
1595 ep = &hpcd->OUT_ep[0]; in PCD_EP_ISR_Handler()
1596 wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
1601 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1603 USB_ReadPMA(hpcd->Instance, (uint8_t *)hpcd->Setup, in PCD_EP_ISR_Handler()
1607 PCD_CLEAR_RX_EP_CTR(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
1611 hpcd->SetupStageCallback(hpcd); in PCD_EP_ISR_Handler()
1613 HAL_PCD_SetupStageCallback(hpcd); in PCD_EP_ISR_Handler()
1618 PCD_CLEAR_RX_EP_CTR(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
1621 ep->xfer_count = PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1625 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, in PCD_EP_ISR_Handler()
1632 hpcd->DataOutStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
1634 HAL_PCD_DataOutStageCallback(hpcd, 0U); in PCD_EP_ISR_Handler()
1638 wEPVal = (uint16_t)PCD_GET_ENDPOINT(hpcd->Instance, PCD_ENDP0); in PCD_EP_ISR_Handler()
1642 PCD_SET_EP_RX_CNT(hpcd->Instance, PCD_ENDP0, ep->maxpacket); in PCD_EP_ISR_Handler()
1643 PCD_SET_EP_RX_STATUS(hpcd->Instance, PCD_ENDP0, USB_EP_RX_VALID); in PCD_EP_ISR_Handler()
1652 wEPVal = PCD_GET_ENDPOINT(hpcd->Instance, epindex); in PCD_EP_ISR_Handler()
1657 PCD_CLEAR_RX_EP_CTR(hpcd->Instance, epindex); in PCD_EP_ISR_Handler()
1658 ep = &hpcd->OUT_ep[epindex]; in PCD_EP_ISR_Handler()
1663 count = (uint16_t)PCD_GET_EP_RX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1667 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaadress, count); in PCD_EP_ISR_Handler()
1676 count = HAL_PCD_EP_DB_Receive(hpcd, ep, wEPVal); in PCD_EP_ISR_Handler()
1681 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in PCD_EP_ISR_Handler()
1683 if ((PCD_GET_ENDPOINT(hpcd->Instance, ep->num) & USB_EP_DTOG_RX) != 0U) in PCD_EP_ISR_Handler()
1686 count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1690 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); in PCD_EP_ISR_Handler()
1696 count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1700 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); in PCD_EP_ISR_Handler()
1715 hpcd->DataOutStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
1717 HAL_PCD_DataOutStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
1722 (void)USB_EPStartXfer(hpcd->Instance, ep); in PCD_EP_ISR_Handler()
1728 ep = &hpcd->IN_ep[epindex]; in PCD_EP_ISR_Handler()
1731 PCD_CLEAR_TX_EP_CTR(hpcd->Instance, epindex); in PCD_EP_ISR_Handler()
1742 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in PCD_EP_ISR_Handler()
1746 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in PCD_EP_ISR_Handler()
1753 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
1755 HAL_PCD_DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
1764 TxPctSize = (uint16_t)PCD_GET_EP_TX_CNT(hpcd->Instance, ep->num); in PCD_EP_ISR_Handler()
1780 hpcd->DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
1782 HAL_PCD_DataInStageCallback(hpcd, ep->num); in PCD_EP_ISR_Handler()
1790 (void)USB_EPStartXfer(hpcd->Instance, ep); in PCD_EP_ISR_Handler()
1797 (void)HAL_PCD_EP_DB_Transmit(hpcd, ep, wEPVal); in PCD_EP_ISR_Handler()
1817 static uint16_t HAL_PCD_EP_DB_Receive(PCD_HandleTypeDef *hpcd, in HAL_PCD_EP_DB_Receive() argument
1826 count = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Receive()
1840 PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); in HAL_PCD_EP_DB_Receive()
1846 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in HAL_PCD_EP_DB_Receive()
1851 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, count); in HAL_PCD_EP_DB_Receive()
1858 count = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Receive()
1872 PCD_SET_EP_RX_STATUS(hpcd->Instance, ep->num, USB_EP_RX_NAK); in HAL_PCD_EP_DB_Receive()
1878 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 0U); in HAL_PCD_EP_DB_Receive()
1883 USB_ReadPMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, count); in HAL_PCD_EP_DB_Receive()
1898 static HAL_StatusTypeDef HAL_PCD_EP_DB_Transmit(PCD_HandleTypeDef *hpcd, in HAL_PCD_EP_DB_Transmit() argument
1908 TxPctSize = (uint16_t)PCD_GET_EP_DBUF0_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Transmit()
1922 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
1923 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
1927 hpcd->DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
1929 HAL_PCD_DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
1934 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
1942 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
1971 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, len); in HAL_PCD_EP_DB_Transmit()
1974 USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr0, (uint16_t)len); in HAL_PCD_EP_DB_Transmit()
1981 TxPctSize = (uint16_t)PCD_GET_EP_DBUF1_CNT(hpcd->Instance, ep->num); in HAL_PCD_EP_DB_Transmit()
1995 PCD_SET_EP_DBUF0_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
1996 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, 0U); in HAL_PCD_EP_DB_Transmit()
2000 hpcd->DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2002 HAL_PCD_DataInStageCallback(hpcd, ep->num); in HAL_PCD_EP_DB_Transmit()
2008 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2016 PCD_FREE_USER_BUFFER(hpcd->Instance, ep->num, 1U); in HAL_PCD_EP_DB_Transmit()
2044 PCD_SET_EP_DBUF1_CNT(hpcd->Instance, ep->num, ep->is_in, len); in HAL_PCD_EP_DB_Transmit()
2047 USB_WritePMA(hpcd->Instance, ep->xfer_buff, ep->pmaaddr1, (uint16_t)len); in HAL_PCD_EP_DB_Transmit()
2053 PCD_SET_EP_TX_STATUS(hpcd->Instance, ep->num, USB_EP_TX_VALID); in HAL_PCD_EP_DB_Transmit()