Lines Matching refs:hpssi
191 static void PSSI_Error(PSSI_HandleTypeDef *hpssi, uint32_t ErrorCode);
198 static HAL_StatusTypeDef PSSI_WaitOnStatusUntilTimeout(PSSI_HandleTypeDef *hpssi, uint32_t Flag, Fl…
248 HAL_StatusTypeDef HAL_PSSI_Init(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_Init() argument
251 if (hpssi == NULL) in HAL_PSSI_Init()
257 assert_param(IS_PSSI_ALL_INSTANCE(hpssi->Instance)); in HAL_PSSI_Init()
258 assert_param(IS_PSSI_CONTROL_SIGNAL(hpssi->Init.ControlSignal)); in HAL_PSSI_Init()
259 assert_param(IS_PSSI_BUSWIDTH(hpssi->Init.BusWidth)); in HAL_PSSI_Init()
260 assert_param(IS_PSSI_CLOCK_POLARITY(hpssi->Init.ClockPolarity)); in HAL_PSSI_Init()
261 assert_param(IS_PSSI_DE_POLARITY(hpssi->Init.DataEnablePolarity)); in HAL_PSSI_Init()
262 assert_param(IS_PSSI_RDY_POLARITY(hpssi->Init.ReadyPolarity)); in HAL_PSSI_Init()
264 if (hpssi->State == HAL_PSSI_STATE_RESET) in HAL_PSSI_Init()
267 hpssi->Lock = HAL_UNLOCKED; in HAL_PSSI_Init()
271 hpssi->TxCpltCallback = HAL_PSSI_TxCpltCallback; /* Legacy weak TxCpltCallback */ in HAL_PSSI_Init()
272 hpssi->RxCpltCallback = HAL_PSSI_RxCpltCallback; /* Legacy weak RxCpltCallback */ in HAL_PSSI_Init()
273 …hpssi->ErrorCallback = HAL_PSSI_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_PSSI_Init()
274 …hpssi->AbortCpltCallback = HAL_PSSI_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_PSSI_Init()
276 if (hpssi->MspInitCallback == NULL) in HAL_PSSI_Init()
278 hpssi->MspInitCallback = HAL_PSSI_MspInit; /* Legacy weak MspInit */ in HAL_PSSI_Init()
282 hpssi->MspInitCallback(hpssi); in HAL_PSSI_Init()
285 HAL_PSSI_MspInit(hpssi); in HAL_PSSI_Init()
289 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_Init()
292 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Init()
297 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DERDYCFG | PSSI_CR_EDM | PSSI_CR_DEPOL | PSSI_CR_RDYPOL, in HAL_PSSI_Init()
298 hpssi->Init.ControlSignal | hpssi->Init.DataEnablePolarity | in HAL_PSSI_Init()
299 hpssi->Init.ReadyPolarity | hpssi->Init.BusWidth); in HAL_PSSI_Init()
301 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Init()
302 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Init()
313 HAL_StatusTypeDef HAL_PSSI_DeInit(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_DeInit() argument
316 if (hpssi == NULL) in HAL_PSSI_DeInit()
322 assert_param(IS_PSSI_ALL_INSTANCE(hpssi->Instance)); in HAL_PSSI_DeInit()
324 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_DeInit()
327 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_DeInit()
330 if (hpssi->MspDeInitCallback == NULL) in HAL_PSSI_DeInit()
332 hpssi->MspDeInitCallback = HAL_PSSI_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PSSI_DeInit()
336 hpssi->MspDeInitCallback(hpssi); in HAL_PSSI_DeInit()
339 HAL_PSSI_MspDeInit(hpssi); in HAL_PSSI_DeInit()
342 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_DeInit()
343 hpssi->State = HAL_PSSI_STATE_RESET; in HAL_PSSI_DeInit()
346 __HAL_UNLOCK(hpssi); in HAL_PSSI_DeInit()
357 __weak void HAL_PSSI_MspInit(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_MspInit() argument
360 UNUSED(hpssi); in HAL_PSSI_MspInit()
373 __weak void HAL_PSSI_MspDeInit(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_MspDeInit() argument
376 UNUSED(hpssi); in HAL_PSSI_MspDeInit()
403 HAL_StatusTypeDef HAL_PSSI_RegisterCallback(PSSI_HandleTypeDef *hpssi, HAL_PSSI_CallbackIDTypeDef C… in HAL_PSSI_RegisterCallback() argument
411 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
416 if (HAL_PSSI_STATE_READY == hpssi->State) in HAL_PSSI_RegisterCallback()
421 hpssi->TxCpltCallback = pCallback; in HAL_PSSI_RegisterCallback()
425 hpssi->RxCpltCallback = pCallback; in HAL_PSSI_RegisterCallback()
429 hpssi->ErrorCallback = pCallback; in HAL_PSSI_RegisterCallback()
433 hpssi->AbortCpltCallback = pCallback; in HAL_PSSI_RegisterCallback()
437 hpssi->MspInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
441 hpssi->MspDeInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
446 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
453 else if (HAL_PSSI_STATE_RESET == hpssi->State) in HAL_PSSI_RegisterCallback()
458 hpssi->MspInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
462 hpssi->MspDeInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
467 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
477 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
504 HAL_StatusTypeDef HAL_PSSI_UnRegisterCallback(PSSI_HandleTypeDef *hpssi, HAL_PSSI_CallbackIDTypeDef… in HAL_PSSI_UnRegisterCallback() argument
508 if (HAL_PSSI_STATE_READY == hpssi->State) in HAL_PSSI_UnRegisterCallback()
513 … hpssi->TxCpltCallback = HAL_PSSI_TxCpltCallback; /* Legacy weak TxCpltCallback */ in HAL_PSSI_UnRegisterCallback()
517 … hpssi->RxCpltCallback = HAL_PSSI_RxCpltCallback; /* Legacy weak RxCpltCallback */ in HAL_PSSI_UnRegisterCallback()
521 … hpssi->ErrorCallback = HAL_PSSI_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_PSSI_UnRegisterCallback()
525 … hpssi->AbortCpltCallback = HAL_PSSI_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_PSSI_UnRegisterCallback()
529 … hpssi->MspInitCallback = HAL_PSSI_MspInit; /* Legacy weak MspInit */ in HAL_PSSI_UnRegisterCallback()
533 … hpssi->MspDeInitCallback = HAL_PSSI_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PSSI_UnRegisterCallback()
538 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_UnRegisterCallback()
545 else if (HAL_PSSI_STATE_RESET == hpssi->State) in HAL_PSSI_UnRegisterCallback()
550 … hpssi->MspInitCallback = HAL_PSSI_MspInit; /* Legacy weak MspInit */ in HAL_PSSI_UnRegisterCallback()
554 … hpssi->MspDeInitCallback = HAL_PSSI_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PSSI_UnRegisterCallback()
559 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_UnRegisterCallback()
569 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_UnRegisterCallback()
631 HAL_StatusTypeDef HAL_PSSI_Transmit(PSSI_HandleTypeDef *hpssi, uint8_t *pData, uint32_t Size, uint3… in HAL_PSSI_Transmit() argument
636 if (((hpssi->Init.DataWidth == HAL_PSSI_8BITS) && (hpssi->Init.BusWidth != HAL_PSSI_8LINES)) || in HAL_PSSI_Transmit()
637 ((hpssi->Init.DataWidth == HAL_PSSI_16BITS) && ((Size % 2U) != 0U)) || in HAL_PSSI_Transmit()
638 ((hpssi->Init.DataWidth == HAL_PSSI_32BITS) && ((Size % 4U) != 0U))) in HAL_PSSI_Transmit()
640 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Transmit()
643 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Transmit()
646 __HAL_LOCK(hpssi); in HAL_PSSI_Transmit()
648 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_Transmit()
649 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Transmit()
652 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Transmit()
655 MODIFY_REG(hpssi->Instance->CR, (PSSI_CR_OUTEN | PSSI_CR_CKPOL), in HAL_PSSI_Transmit()
656 …(PSSI_CR_OUTEN_OUTPUT | ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? 0U : PSSI_CR_CKPOL)… in HAL_PSSI_Transmit()
660 hpssi->Instance->CR &= PSSI_CR_DMA_DISABLE; in HAL_PSSI_Transmit()
664 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Transmit()
666 if (hpssi->Init.DataWidth == HAL_PSSI_8BITS) in HAL_PSSI_Transmit()
674 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT1B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Transmit()
676 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Transmit()
677 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
679 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
683 *(__IO uint8_t *)(&hpssi->Instance->DR) = *(uint8_t *)pbuffer; in HAL_PSSI_Transmit()
691 else if (hpssi->Init.DataWidth == HAL_PSSI_16BITS) in HAL_PSSI_Transmit()
694 __IO uint16_t *dr = (__IO uint16_t *)(&hpssi->Instance->DR); in HAL_PSSI_Transmit()
701 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Transmit()
703 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Transmit()
704 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
706 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
717 else if (hpssi->Init.DataWidth == HAL_PSSI_32BITS) in HAL_PSSI_Transmit()
725 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Transmit()
727 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Transmit()
728 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
730 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
734 *(__IO uint32_t *)(&hpssi->Instance->DR) = *pbuffer; in HAL_PSSI_Transmit()
743 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Transmit()
744 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
746 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
751 if (HAL_PSSI_GET_FLAG(hpssi, PSSI_FLAG_OVR_RIS) != 0U) in HAL_PSSI_Transmit()
753 HAL_PSSI_CLEAR_FLAG(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Transmit()
754 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Transmit()
755 hpssi->ErrorCode = HAL_PSSI_ERROR_UNDER_RUN; in HAL_PSSI_Transmit()
756 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
758 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
762 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
765 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
784 HAL_StatusTypeDef HAL_PSSI_Receive(PSSI_HandleTypeDef *hpssi, uint8_t *pData, uint32_t Size, uint32… in HAL_PSSI_Receive() argument
789 if (((hpssi->Init.DataWidth == HAL_PSSI_8BITS) && (hpssi->Init.BusWidth != HAL_PSSI_8LINES)) || in HAL_PSSI_Receive()
790 ((hpssi->Init.DataWidth == HAL_PSSI_16BITS) && ((Size % 2U) != 0U)) || in HAL_PSSI_Receive()
791 ((hpssi->Init.DataWidth == HAL_PSSI_32BITS) && ((Size % 4U) != 0U))) in HAL_PSSI_Receive()
793 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Receive()
797 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Receive()
800 __HAL_LOCK(hpssi); in HAL_PSSI_Receive()
802 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_Receive()
803 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Receive()
806 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Receive()
808 MODIFY_REG(hpssi->Instance->CR, (PSSI_CR_OUTEN | PSSI_CR_CKPOL), in HAL_PSSI_Receive()
809 …(PSSI_CR_OUTEN_INPUT | ((hpssi->Init.ClockPolarity == HAL_PSSI_FALLING_EDGE) ? 0U : PSSI_CR_CKPOL)… in HAL_PSSI_Receive()
813 hpssi->Instance->CR &= PSSI_CR_DMA_DISABLE; in HAL_PSSI_Receive()
817 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Receive()
818 if (hpssi->Init.DataWidth == HAL_PSSI_8BITS) in HAL_PSSI_Receive()
827 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT1B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Receive()
829 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Receive()
830 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
832 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
836 *pbuffer = *(__IO uint8_t *)(&hpssi->Instance->DR); in HAL_PSSI_Receive()
841 else if (hpssi->Init.DataWidth == HAL_PSSI_16BITS) in HAL_PSSI_Receive()
844 __IO uint16_t *dr = (__IO uint16_t *)(&hpssi->Instance->DR); in HAL_PSSI_Receive()
851 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Receive()
853 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Receive()
854 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
856 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
866 else if (hpssi->Init.DataWidth == HAL_PSSI_32BITS) in HAL_PSSI_Receive()
875 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Receive()
877 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Receive()
878 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
880 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
885 *pbuffer = *(__IO uint32_t *)(&hpssi->Instance->DR); in HAL_PSSI_Receive()
892 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Receive()
893 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
895 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
900 if (HAL_PSSI_GET_FLAG(hpssi, PSSI_FLAG_OVR_RIS) != 0U) in HAL_PSSI_Receive()
902 HAL_PSSI_CLEAR_FLAG(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Receive()
903 hpssi->ErrorCode = HAL_PSSI_ERROR_OVER_RUN; in HAL_PSSI_Receive()
904 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
908 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
911 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
930 HAL_StatusTypeDef HAL_PSSI_Transmit_DMA(PSSI_HandleTypeDef *hpssi, uint32_t *pData, uint32_t Size) in HAL_PSSI_Transmit_DMA() argument
934 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Transmit_DMA()
938 __HAL_LOCK(hpssi); in HAL_PSSI_Transmit_DMA()
940 hpssi->State = HAL_PSSI_STATE_BUSY_TX; in HAL_PSSI_Transmit_DMA()
941 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Transmit_DMA()
944 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Transmit_DMA()
947 hpssi->pBuffPtr = pData; in HAL_PSSI_Transmit_DMA()
948 hpssi->XferCount = Size; in HAL_PSSI_Transmit_DMA()
950 if (hpssi->XferCount > PSSI_MAX_NBYTE_SIZE) in HAL_PSSI_Transmit_DMA()
952 hpssi->XferSize = PSSI_MAX_NBYTE_SIZE; in HAL_PSSI_Transmit_DMA()
956 hpssi->XferSize = hpssi->XferCount; in HAL_PSSI_Transmit_DMA()
959 if (hpssi->XferSize > 0U) in HAL_PSSI_Transmit_DMA()
961 if (hpssi->hdmatx != NULL) in HAL_PSSI_Transmit_DMA()
965 if (hpssi->hdmatx->Init.DestDataWidth == DMA_DEST_DATAWIDTH_BYTE) in HAL_PSSI_Transmit_DMA()
967 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, in HAL_PSSI_Transmit_DMA()
969 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? 0U : PSSI_CR_CKPOL)); in HAL_PSSI_Transmit_DMA()
973 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, in HAL_PSSI_Transmit_DMA()
974 PSSI_CR_DMA_ENABLE | hpssi->Init.BusWidth | PSSI_CR_OUTEN_OUTPUT | in HAL_PSSI_Transmit_DMA()
975 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? 0U : PSSI_CR_CKPOL)); in HAL_PSSI_Transmit_DMA()
979 hpssi->hdmatx->XferCpltCallback = PSSI_DMATransmitCplt; in HAL_PSSI_Transmit_DMA()
982 hpssi->hdmatx->XferErrorCallback = PSSI_DMAError; in HAL_PSSI_Transmit_DMA()
985 hpssi->hdmatx->XferHalfCpltCallback = NULL; in HAL_PSSI_Transmit_DMA()
986 hpssi->hdmatx->XferAbortCallback = NULL; in HAL_PSSI_Transmit_DMA()
989 if ((hpssi->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_PSSI_Transmit_DMA()
991 if (hpssi->hdmatx->LinkedListQueue != NULL) in HAL_PSSI_Transmit_DMA()
995 … hpssi->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = hpssi->XferSize; in HAL_PSSI_Transmit_DMA()
997 … hpssi->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)pData; in HAL_PSSI_Transmit_DMA()
999 hpssi->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_PSSI_Transmit_DMA()
1000 (uint32_t)&hpssi->Instance->DR; in HAL_PSSI_Transmit_DMA()
1002 dmaxferstatus = HAL_DMAEx_List_Start_IT(hpssi->hdmatx); in HAL_PSSI_Transmit_DMA()
1012 … dmaxferstatus = HAL_DMA_Start_IT(hpssi->hdmatx, (uint32_t)pData, (uint32_t)&hpssi->Instance->DR, in HAL_PSSI_Transmit_DMA()
1013 hpssi->XferSize); in HAL_PSSI_Transmit_DMA()
1019 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit_DMA()
1022 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Transmit_DMA()
1025 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1033 hpssi->XferCount -= hpssi->XferSize; in HAL_PSSI_Transmit_DMA()
1036 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1042 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Transmit_DMA()
1045 hpssi->Instance->CR |= PSSI_CR_DMA_ENABLE; in HAL_PSSI_Transmit_DMA()
1047 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Transmit_DMA()
1052 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit_DMA()
1055 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Transmit_DMA()
1058 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1066 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1074 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Transmit_DMA()
1092 HAL_StatusTypeDef HAL_PSSI_Receive_DMA(PSSI_HandleTypeDef *hpssi, uint32_t *pData, uint32_t Size) in HAL_PSSI_Receive_DMA() argument
1097 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Receive_DMA()
1101 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Receive_DMA()
1103 __HAL_LOCK(hpssi); in HAL_PSSI_Receive_DMA()
1105 hpssi->State = HAL_PSSI_STATE_BUSY_RX; in HAL_PSSI_Receive_DMA()
1106 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Receive_DMA()
1109 hpssi->pBuffPtr = pData; in HAL_PSSI_Receive_DMA()
1110 hpssi->XferCount = Size; in HAL_PSSI_Receive_DMA()
1112 if (hpssi->XferCount > PSSI_MAX_NBYTE_SIZE) in HAL_PSSI_Receive_DMA()
1114 hpssi->XferSize = PSSI_MAX_NBYTE_SIZE; in HAL_PSSI_Receive_DMA()
1118 hpssi->XferSize = hpssi->XferCount; in HAL_PSSI_Receive_DMA()
1121 if (hpssi->XferSize > 0U) in HAL_PSSI_Receive_DMA()
1123 if (hpssi->hdmarx != NULL) in HAL_PSSI_Receive_DMA()
1126 if (hpssi->hdmarx->Init.SrcDataWidth == DMA_SRC_DATAWIDTH_BYTE) in HAL_PSSI_Receive_DMA()
1128 …MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, PSSI_CR_DMA_ENABLE | in HAL_PSSI_Receive_DMA()
1129 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? PSSI_CR_CKPOL : 0U)); in HAL_PSSI_Receive_DMA()
1133 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, in HAL_PSSI_Receive_DMA()
1134 PSSI_CR_DMA_ENABLE | hpssi->Init.BusWidth | in HAL_PSSI_Receive_DMA()
1135 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? PSSI_CR_CKPOL : 0U)); in HAL_PSSI_Receive_DMA()
1139 hpssi->hdmarx->XferCpltCallback = PSSI_DMAReceiveCplt; in HAL_PSSI_Receive_DMA()
1142 hpssi->hdmarx->XferErrorCallback = PSSI_DMAError; in HAL_PSSI_Receive_DMA()
1145 hpssi->hdmarx->XferHalfCpltCallback = NULL; in HAL_PSSI_Receive_DMA()
1146 hpssi->hdmarx->XferAbortCallback = NULL; in HAL_PSSI_Receive_DMA()
1149 if ((hpssi->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_PSSI_Receive_DMA()
1151 if (hpssi->hdmarx->LinkedListQueue != NULL) in HAL_PSSI_Receive_DMA()
1155 … hpssi->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = hpssi->XferSize; in HAL_PSSI_Receive_DMA()
1157 hpssi->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in HAL_PSSI_Receive_DMA()
1158 (uint32_t)&hpssi->Instance->DR; in HAL_PSSI_Receive_DMA()
1160 … hpssi->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)pData; in HAL_PSSI_Receive_DMA()
1162 dmaxferstatus = HAL_DMAEx_List_Start_IT(hpssi->hdmarx); in HAL_PSSI_Receive_DMA()
1172 … dmaxferstatus = HAL_DMA_Start_IT(hpssi->hdmarx, (uint32_t)&hpssi->Instance->DR, (uint32_t)pData, in HAL_PSSI_Receive_DMA()
1173 hpssi->XferSize); in HAL_PSSI_Receive_DMA()
1179 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive_DMA()
1182 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Receive_DMA()
1185 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1193 hpssi->XferCount -= hpssi->XferSize; in HAL_PSSI_Receive_DMA()
1196 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1202 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Receive_DMA()
1205 hpssi->Instance->CR |= PSSI_CR_DMA_ENABLE; in HAL_PSSI_Receive_DMA()
1207 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Receive_DMA()
1212 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive_DMA()
1215 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Receive_DMA()
1218 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1226 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1229 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Receive_DMA()
1246 HAL_StatusTypeDef HAL_PSSI_Abort_DMA(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_Abort_DMA() argument
1249 __HAL_LOCK(hpssi); in HAL_PSSI_Abort_DMA()
1252 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Abort_DMA()
1255 hpssi->State = HAL_PSSI_STATE_ABORT; in HAL_PSSI_Abort_DMA()
1258 if ((hpssi->Instance->CR & PSSI_CR_DMAEN) == PSSI_CR_DMAEN) in HAL_PSSI_Abort_DMA()
1260 if (hpssi->State == HAL_PSSI_STATE_BUSY_TX) in HAL_PSSI_Abort_DMA()
1262 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_Abort_DMA()
1264 if (hpssi->hdmatx != NULL) in HAL_PSSI_Abort_DMA()
1268 hpssi->hdmatx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_Abort_DMA()
1271 if (HAL_DMA_Abort_IT(hpssi->hdmatx) != HAL_OK) in HAL_PSSI_Abort_DMA()
1274 hpssi->hdmatx->XferAbortCallback(hpssi->hdmatx); in HAL_PSSI_Abort_DMA()
1279 else if (hpssi->State == HAL_PSSI_STATE_BUSY_RX) in HAL_PSSI_Abort_DMA()
1281 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_Abort_DMA()
1283 if (hpssi->hdmarx != NULL) in HAL_PSSI_Abort_DMA()
1287 hpssi->hdmarx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_Abort_DMA()
1290 if (HAL_DMA_Abort_IT(hpssi->hdmarx) != HAL_OK) in HAL_PSSI_Abort_DMA()
1293 hpssi->hdmarx->XferAbortCallback(hpssi->hdmarx); in HAL_PSSI_Abort_DMA()
1302 hpssi->ErrorCallback(hpssi); in HAL_PSSI_Abort_DMA()
1304 HAL_PSSI_ErrorCallback(hpssi); in HAL_PSSI_Abort_DMA()
1310 __HAL_UNLOCK(hpssi); in HAL_PSSI_Abort_DMA()
1315 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Abort_DMA()
1335 void HAL_PSSI_IRQHandler(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_IRQHandler() argument
1338 if (HAL_PSSI_GET_FLAG(hpssi, PSSI_FLAG_OVR_MIS) != 0U) in HAL_PSSI_IRQHandler()
1341 hpssi->XferCount = 0U; in HAL_PSSI_IRQHandler()
1344 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_IRQHandler()
1348 if ((hpssi->Instance->CR & PSSI_CR_DMAEN) == PSSI_CR_DMAEN) in HAL_PSSI_IRQHandler()
1350 if (hpssi->State == HAL_PSSI_STATE_BUSY_TX) in HAL_PSSI_IRQHandler()
1353 hpssi->ErrorCode |= HAL_PSSI_ERROR_UNDER_RUN; in HAL_PSSI_IRQHandler()
1355 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_IRQHandler()
1357 if (hpssi->hdmatx != NULL) in HAL_PSSI_IRQHandler()
1361 hpssi->hdmatx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_IRQHandler()
1364 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1367 if (HAL_DMA_Abort_IT(hpssi->hdmatx) != HAL_OK) in HAL_PSSI_IRQHandler()
1370 hpssi->hdmatx->XferAbortCallback(hpssi->hdmatx); in HAL_PSSI_IRQHandler()
1375 else if (hpssi->State == HAL_PSSI_STATE_BUSY_RX) in HAL_PSSI_IRQHandler()
1378 hpssi->ErrorCode |= HAL_PSSI_ERROR_OVER_RUN; in HAL_PSSI_IRQHandler()
1380 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_IRQHandler()
1382 if (hpssi->hdmarx != NULL) in HAL_PSSI_IRQHandler()
1386 hpssi->hdmarx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_IRQHandler()
1389 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1392 if (HAL_DMA_Abort_IT(hpssi->hdmarx) != HAL_OK) in HAL_PSSI_IRQHandler()
1395 hpssi->hdmarx->XferAbortCallback(hpssi->hdmarx); in HAL_PSSI_IRQHandler()
1403 hpssi->ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1405 HAL_PSSI_ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1412 if (hpssi->State == HAL_PSSI_STATE_ABORT) in HAL_PSSI_IRQHandler()
1414 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_IRQHandler()
1417 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1421 hpssi->AbortCpltCallback(hpssi); in HAL_PSSI_IRQHandler()
1423 HAL_PSSI_AbortCpltCallback(hpssi); in HAL_PSSI_IRQHandler()
1429 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_IRQHandler()
1431 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1435 hpssi->ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1437 HAL_PSSI_ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1449 __weak void HAL_PSSI_TxCpltCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_TxCpltCallback() argument
1452 UNUSED(hpssi); in HAL_PSSI_TxCpltCallback()
1465 __weak void HAL_PSSI_RxCpltCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_RxCpltCallback() argument
1468 UNUSED(hpssi); in HAL_PSSI_RxCpltCallback()
1481 __weak void HAL_PSSI_ErrorCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_ErrorCallback() argument
1484 UNUSED(hpssi); in HAL_PSSI_ErrorCallback()
1497 __weak void HAL_PSSI_AbortCpltCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_AbortCpltCallback() argument
1500 UNUSED(hpssi); in HAL_PSSI_AbortCpltCallback()
1532 HAL_PSSI_StateTypeDef HAL_PSSI_GetState(const PSSI_HandleTypeDef *hpssi) in HAL_PSSI_GetState() argument
1535 return hpssi->State; in HAL_PSSI_GetState()
1544 uint32_t HAL_PSSI_GetError(const PSSI_HandleTypeDef *hpssi) in HAL_PSSI_GetError() argument
1546 return hpssi->ErrorCode; in HAL_PSSI_GetError()
1579 HAL_StatusTypeDef HAL_PSSI_ClockConfig(PSSI_HandleTypeDef *hpssi, uint32_t ClockSource) in HAL_PSSI_ClockConfig() argument
1584 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_ClockConfig()
1587 __HAL_LOCK(hpssi); in HAL_PSSI_ClockConfig()
1589 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_ClockConfig()
1592 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_CKSRC, ClockSource); in HAL_PSSI_ClockConfig()
1594 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_ClockConfig()
1597 __HAL_UNLOCK(hpssi); in HAL_PSSI_ClockConfig()
1625 static void PSSI_Error(PSSI_HandleTypeDef *hpssi, uint32_t ErrorCode) in PSSI_Error() argument
1628 hpssi->XferCount = 0U; in PSSI_Error()
1631 hpssi->ErrorCode |= ErrorCode; in PSSI_Error()
1634 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_Error()
1638 if ((hpssi->Instance->CR & PSSI_CR_DMAEN) == PSSI_CR_DMAEN) in PSSI_Error()
1640 if (hpssi->State == HAL_PSSI_STATE_BUSY_TX) in PSSI_Error()
1642 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in PSSI_Error()
1644 if (hpssi->hdmatx != NULL) in PSSI_Error()
1648 hpssi->hdmatx->XferAbortCallback = PSSI_DMAAbort; in PSSI_Error()
1651 __HAL_UNLOCK(hpssi); in PSSI_Error()
1654 if (HAL_DMA_Abort_IT(hpssi->hdmatx) != HAL_OK) in PSSI_Error()
1657 hpssi->hdmatx->XferAbortCallback(hpssi->hdmatx); in PSSI_Error()
1662 else if (hpssi->State == HAL_PSSI_STATE_BUSY_RX) in PSSI_Error()
1664 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in PSSI_Error()
1666 if (hpssi->hdmarx != NULL) in PSSI_Error()
1670 hpssi->hdmarx->XferAbortCallback = PSSI_DMAAbort; in PSSI_Error()
1673 __HAL_UNLOCK(hpssi); in PSSI_Error()
1676 if (HAL_DMA_Abort_IT(hpssi->hdmarx) != HAL_OK) in PSSI_Error()
1679 hpssi->hdmarx->XferAbortCallback(hpssi->hdmarx); in PSSI_Error()
1691 if (hpssi->State == HAL_PSSI_STATE_ABORT) in PSSI_Error()
1693 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_Error()
1696 __HAL_UNLOCK(hpssi); in PSSI_Error()
1700 hpssi->AbortCpltCallback(hpssi); in PSSI_Error()
1702 HAL_PSSI_AbortCpltCallback(hpssi); in PSSI_Error()
1708 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_Error()
1711 __HAL_UNLOCK(hpssi); in PSSI_Error()
1715 hpssi->ErrorCallback(hpssi); in PSSI_Error()
1717 HAL_PSSI_ErrorCallback(hpssi); in PSSI_Error()
1731 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMATransmitCplt() local
1736 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_DMATransmitCplt()
1739 tmperror = hpssi->ErrorCode; in PSSI_DMATransmitCplt()
1742 if ((hpssi->State == HAL_PSSI_STATE_ABORT) || (tmperror != HAL_PSSI_ERROR_NONE)) in PSSI_DMATransmitCplt()
1745 PSSI_Error(hpssi, hpssi->ErrorCode); in PSSI_DMATransmitCplt()
1750 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMATransmitCplt()
1753 __HAL_UNLOCK(hpssi); in PSSI_DMATransmitCplt()
1757 hpssi->TxCpltCallback(hpssi); in PSSI_DMATransmitCplt()
1759 HAL_PSSI_TxCpltCallback(hpssi); in PSSI_DMATransmitCplt()
1772 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMAReceiveCplt() local
1777 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_DMAReceiveCplt()
1780 tmperror = hpssi->ErrorCode; in PSSI_DMAReceiveCplt()
1783 if ((hpssi->State == HAL_PSSI_STATE_ABORT) || (tmperror != HAL_PSSI_ERROR_NONE)) in PSSI_DMAReceiveCplt()
1786 PSSI_Error(hpssi, hpssi->ErrorCode); in PSSI_DMAReceiveCplt()
1791 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMAReceiveCplt()
1794 __HAL_UNLOCK(hpssi); in PSSI_DMAReceiveCplt()
1798 hpssi->RxCpltCallback(hpssi); in PSSI_DMAReceiveCplt()
1800 HAL_PSSI_RxCpltCallback(hpssi); in PSSI_DMAReceiveCplt()
1814 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMAAbort() local
1817 hpssi->hdmatx->XferAbortCallback = NULL; in PSSI_DMAAbort()
1818 hpssi->hdmarx->XferAbortCallback = NULL; in PSSI_DMAAbort()
1821 if (hpssi->State == HAL_PSSI_STATE_ABORT) in PSSI_DMAAbort()
1823 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMAAbort()
1827 hpssi->AbortCpltCallback(hpssi); in PSSI_DMAAbort()
1829 HAL_PSSI_AbortCpltCallback(hpssi); in PSSI_DMAAbort()
1836 hpssi->ErrorCallback(hpssi); in PSSI_DMAAbort()
1838 HAL_PSSI_ErrorCallback(hpssi); in PSSI_DMAAbort()
1854 static HAL_StatusTypeDef PSSI_WaitOnStatusUntilTimeout(PSSI_HandleTypeDef *hpssi, uint32_t Flag, Fl… in PSSI_WaitOnStatusUntilTimeout() argument
1857 while ((HAL_PSSI_GET_STATUS(hpssi, Flag) & Flag) == (uint32_t)Status) in PSSI_WaitOnStatusUntilTimeout()
1864 hpssi->ErrorCode |= HAL_PSSI_ERROR_TIMEOUT; in PSSI_WaitOnStatusUntilTimeout()
1865 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_WaitOnStatusUntilTimeout()
1868 __HAL_UNLOCK(hpssi); in PSSI_WaitOnStatusUntilTimeout()
1881 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMAError() local
1886 HAL_PSSI_DISABLE(hpssi); in PSSI_DMAError()
1889 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_DMAError()
1892 tmperror = hpssi->ErrorCode; in PSSI_DMAError()
1895 if ((hpssi->State == HAL_PSSI_STATE_ABORT) || (tmperror != HAL_PSSI_ERROR_NONE)) in PSSI_DMAError()
1898 PSSI_Error(hpssi, hpssi->ErrorCode); in PSSI_DMAError()
1902 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMAError()
1905 __HAL_UNLOCK(hpssi); in PSSI_DMAError()
1909 hpssi->ErrorCallback(hpssi); in PSSI_DMAError()
1911 HAL_PSSI_ErrorCallback(hpssi); in PSSI_DMAError()