Lines Matching refs:hpssi
188 static void PSSI_Error(PSSI_HandleTypeDef *hpssi, uint32_t ErrorCode);
195 static HAL_StatusTypeDef PSSI_WaitOnStatusUntilTimeout(PSSI_HandleTypeDef *hpssi, uint32_t Flag, Fl…
245 HAL_StatusTypeDef HAL_PSSI_Init(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_Init() argument
248 if (hpssi == NULL) in HAL_PSSI_Init()
254 assert_param(IS_PSSI_ALL_INSTANCE(hpssi->Instance)); in HAL_PSSI_Init()
255 assert_param(IS_PSSI_CONTROL_SIGNAL(hpssi->Init.ControlSignal)); in HAL_PSSI_Init()
256 assert_param(IS_PSSI_BUSWIDTH(hpssi->Init.BusWidth)); in HAL_PSSI_Init()
257 assert_param(IS_PSSI_CLOCK_POLARITY(hpssi->Init.ClockPolarity)); in HAL_PSSI_Init()
258 assert_param(IS_PSSI_DE_POLARITY(hpssi->Init.DataEnablePolarity)); in HAL_PSSI_Init()
259 assert_param(IS_PSSI_RDY_POLARITY(hpssi->Init.ReadyPolarity)); in HAL_PSSI_Init()
261 if (hpssi->State == HAL_PSSI_STATE_RESET) in HAL_PSSI_Init()
264 hpssi->Lock = HAL_UNLOCKED; in HAL_PSSI_Init()
268 hpssi->TxCpltCallback = HAL_PSSI_TxCpltCallback; /* Legacy weak TxCpltCallback */ in HAL_PSSI_Init()
269 hpssi->RxCpltCallback = HAL_PSSI_RxCpltCallback; /* Legacy weak RxCpltCallback */ in HAL_PSSI_Init()
270 …hpssi->ErrorCallback = HAL_PSSI_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_PSSI_Init()
271 …hpssi->AbortCpltCallback = HAL_PSSI_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_PSSI_Init()
273 if (hpssi->MspInitCallback == NULL) in HAL_PSSI_Init()
275 hpssi->MspInitCallback = HAL_PSSI_MspInit; /* Legacy weak MspInit */ in HAL_PSSI_Init()
279 hpssi->MspInitCallback(hpssi); in HAL_PSSI_Init()
282 HAL_PSSI_MspInit(hpssi); in HAL_PSSI_Init()
286 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_Init()
289 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Init()
294 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DERDYCFG | PSSI_CR_EDM | PSSI_CR_DEPOL | PSSI_CR_RDYPOL, in HAL_PSSI_Init()
295 hpssi->Init.ControlSignal | hpssi->Init.DataEnablePolarity | in HAL_PSSI_Init()
296 hpssi->Init.ReadyPolarity | hpssi->Init.BusWidth); in HAL_PSSI_Init()
298 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Init()
299 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Init()
310 HAL_StatusTypeDef HAL_PSSI_DeInit(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_DeInit() argument
313 if (hpssi == NULL) in HAL_PSSI_DeInit()
319 assert_param(IS_PSSI_ALL_INSTANCE(hpssi->Instance)); in HAL_PSSI_DeInit()
321 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_DeInit()
324 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_DeInit()
327 if (hpssi->MspDeInitCallback == NULL) in HAL_PSSI_DeInit()
329 hpssi->MspDeInitCallback = HAL_PSSI_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PSSI_DeInit()
333 hpssi->MspDeInitCallback(hpssi); in HAL_PSSI_DeInit()
336 HAL_PSSI_MspDeInit(hpssi); in HAL_PSSI_DeInit()
339 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_DeInit()
340 hpssi->State = HAL_PSSI_STATE_RESET; in HAL_PSSI_DeInit()
343 __HAL_UNLOCK(hpssi); in HAL_PSSI_DeInit()
354 __weak void HAL_PSSI_MspInit(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_MspInit() argument
357 UNUSED(hpssi); in HAL_PSSI_MspInit()
370 __weak void HAL_PSSI_MspDeInit(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_MspDeInit() argument
373 UNUSED(hpssi); in HAL_PSSI_MspDeInit()
400 HAL_StatusTypeDef HAL_PSSI_RegisterCallback(PSSI_HandleTypeDef *hpssi, HAL_PSSI_CallbackIDTypeDef C… in HAL_PSSI_RegisterCallback() argument
408 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
413 if (HAL_PSSI_STATE_READY == hpssi->State) in HAL_PSSI_RegisterCallback()
418 hpssi->TxCpltCallback = pCallback; in HAL_PSSI_RegisterCallback()
422 hpssi->RxCpltCallback = pCallback; in HAL_PSSI_RegisterCallback()
426 hpssi->ErrorCallback = pCallback; in HAL_PSSI_RegisterCallback()
430 hpssi->AbortCpltCallback = pCallback; in HAL_PSSI_RegisterCallback()
434 hpssi->MspInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
438 hpssi->MspDeInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
443 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
450 else if (HAL_PSSI_STATE_RESET == hpssi->State) in HAL_PSSI_RegisterCallback()
455 hpssi->MspInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
459 hpssi->MspDeInitCallback = pCallback; in HAL_PSSI_RegisterCallback()
464 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
474 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_RegisterCallback()
501 HAL_StatusTypeDef HAL_PSSI_UnRegisterCallback(PSSI_HandleTypeDef *hpssi, HAL_PSSI_CallbackIDTypeDef… in HAL_PSSI_UnRegisterCallback() argument
505 if (HAL_PSSI_STATE_READY == hpssi->State) in HAL_PSSI_UnRegisterCallback()
510 … hpssi->TxCpltCallback = HAL_PSSI_TxCpltCallback; /* Legacy weak TxCpltCallback */ in HAL_PSSI_UnRegisterCallback()
514 … hpssi->RxCpltCallback = HAL_PSSI_RxCpltCallback; /* Legacy weak RxCpltCallback */ in HAL_PSSI_UnRegisterCallback()
518 … hpssi->ErrorCallback = HAL_PSSI_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_PSSI_UnRegisterCallback()
522 … hpssi->AbortCpltCallback = HAL_PSSI_AbortCpltCallback; /* Legacy weak AbortCpltCallback */ in HAL_PSSI_UnRegisterCallback()
526 … hpssi->MspInitCallback = HAL_PSSI_MspInit; /* Legacy weak MspInit */ in HAL_PSSI_UnRegisterCallback()
530 … hpssi->MspDeInitCallback = HAL_PSSI_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PSSI_UnRegisterCallback()
535 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_UnRegisterCallback()
542 else if (HAL_PSSI_STATE_RESET == hpssi->State) in HAL_PSSI_UnRegisterCallback()
547 … hpssi->MspInitCallback = HAL_PSSI_MspInit; /* Legacy weak MspInit */ in HAL_PSSI_UnRegisterCallback()
551 … hpssi->MspDeInitCallback = HAL_PSSI_MspDeInit; /* Legacy weak MspDeInit */ in HAL_PSSI_UnRegisterCallback()
556 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_UnRegisterCallback()
566 hpssi->ErrorCode |= HAL_PSSI_ERROR_INVALID_CALLBACK; in HAL_PSSI_UnRegisterCallback()
628 HAL_StatusTypeDef HAL_PSSI_Transmit(PSSI_HandleTypeDef *hpssi, uint8_t *pData, uint32_t Size, uint3… in HAL_PSSI_Transmit() argument
633 if (((hpssi->Init.DataWidth == HAL_PSSI_8BITS) && (hpssi->Init.BusWidth != HAL_PSSI_8LINES)) || in HAL_PSSI_Transmit()
634 ((hpssi->Init.DataWidth == HAL_PSSI_16BITS) && ((Size % 2U) != 0U)) || in HAL_PSSI_Transmit()
635 ((hpssi->Init.DataWidth == HAL_PSSI_32BITS) && ((Size % 4U) != 0U))) in HAL_PSSI_Transmit()
637 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Transmit()
640 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Transmit()
643 __HAL_LOCK(hpssi); in HAL_PSSI_Transmit()
645 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_Transmit()
646 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Transmit()
649 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Transmit()
652 MODIFY_REG(hpssi->Instance->CR, (PSSI_CR_OUTEN | PSSI_CR_CKPOL), in HAL_PSSI_Transmit()
653 …(PSSI_CR_OUTEN_OUTPUT | ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? 0U : PSSI_CR_CKPOL)… in HAL_PSSI_Transmit()
657 hpssi->Instance->CR &= PSSI_CR_DMA_DISABLE; in HAL_PSSI_Transmit()
661 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Transmit()
663 if (hpssi->Init.DataWidth == HAL_PSSI_8BITS) in HAL_PSSI_Transmit()
671 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT1B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Transmit()
673 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Transmit()
674 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
676 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
680 *(__IO uint8_t *)(&hpssi->Instance->DR) = *(uint8_t *)pbuffer; in HAL_PSSI_Transmit()
688 else if (hpssi->Init.DataWidth == HAL_PSSI_16BITS) in HAL_PSSI_Transmit()
691 __IO uint16_t *dr = (__IO uint16_t *)(&hpssi->Instance->DR); in HAL_PSSI_Transmit()
698 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Transmit()
700 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Transmit()
701 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
703 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
714 else if (hpssi->Init.DataWidth == HAL_PSSI_32BITS) in HAL_PSSI_Transmit()
722 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Transmit()
724 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Transmit()
725 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
727 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
731 *(__IO uint32_t *)(&hpssi->Instance->DR) = *pbuffer; in HAL_PSSI_Transmit()
740 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Transmit()
741 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
743 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
748 if (HAL_PSSI_GET_FLAG(hpssi, PSSI_FLAG_OVR_RIS) != 0U) in HAL_PSSI_Transmit()
750 HAL_PSSI_CLEAR_FLAG(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Transmit()
751 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Transmit()
752 hpssi->ErrorCode = HAL_PSSI_ERROR_UNDER_RUN; in HAL_PSSI_Transmit()
753 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
755 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
759 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit()
762 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit()
781 HAL_StatusTypeDef HAL_PSSI_Receive(PSSI_HandleTypeDef *hpssi, uint8_t *pData, uint32_t Size, uint32… in HAL_PSSI_Receive() argument
786 if (((hpssi->Init.DataWidth == HAL_PSSI_8BITS) && (hpssi->Init.BusWidth != HAL_PSSI_8LINES)) || in HAL_PSSI_Receive()
787 ((hpssi->Init.DataWidth == HAL_PSSI_16BITS) && ((Size % 2U) != 0U)) || in HAL_PSSI_Receive()
788 ((hpssi->Init.DataWidth == HAL_PSSI_32BITS) && ((Size % 4U) != 0U))) in HAL_PSSI_Receive()
790 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Receive()
794 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Receive()
797 __HAL_LOCK(hpssi); in HAL_PSSI_Receive()
799 hpssi->State = HAL_PSSI_STATE_BUSY; in HAL_PSSI_Receive()
800 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Receive()
803 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Receive()
805 MODIFY_REG(hpssi->Instance->CR, (PSSI_CR_OUTEN | PSSI_CR_CKPOL), in HAL_PSSI_Receive()
806 …(PSSI_CR_OUTEN_INPUT | ((hpssi->Init.ClockPolarity == HAL_PSSI_FALLING_EDGE) ? 0U : PSSI_CR_CKPOL)… in HAL_PSSI_Receive()
810 hpssi->Instance->CR &= PSSI_CR_DMA_DISABLE; in HAL_PSSI_Receive()
814 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Receive()
815 if (hpssi->Init.DataWidth == HAL_PSSI_8BITS) in HAL_PSSI_Receive()
824 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT1B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Receive()
826 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Receive()
827 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
829 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
833 *pbuffer = *(__IO uint8_t *)(&hpssi->Instance->DR); in HAL_PSSI_Receive()
838 else if (hpssi->Init.DataWidth == HAL_PSSI_16BITS) in HAL_PSSI_Receive()
841 __IO uint16_t *dr = (__IO uint16_t *)(&hpssi->Instance->DR); in HAL_PSSI_Receive()
848 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Receive()
850 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Receive()
851 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
853 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
863 else if (hpssi->Init.DataWidth == HAL_PSSI_32BITS) in HAL_PSSI_Receive()
872 … if (PSSI_WaitOnStatusUntilTimeout(hpssi, PSSI_FLAG_RTT4B, RESET, Timeout, tickstart) != HAL_OK) in HAL_PSSI_Receive()
874 hpssi->ErrorCode = HAL_PSSI_ERROR_TIMEOUT; in HAL_PSSI_Receive()
875 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
877 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
882 *pbuffer = *(__IO uint32_t *)(&hpssi->Instance->DR); in HAL_PSSI_Receive()
889 hpssi->ErrorCode = HAL_PSSI_ERROR_NOT_SUPPORTED; in HAL_PSSI_Receive()
890 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
892 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
897 if (HAL_PSSI_GET_FLAG(hpssi, PSSI_FLAG_OVR_RIS) != 0U) in HAL_PSSI_Receive()
899 HAL_PSSI_CLEAR_FLAG(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Receive()
900 hpssi->ErrorCode = HAL_PSSI_ERROR_OVER_RUN; in HAL_PSSI_Receive()
901 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
905 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive()
908 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive()
927 HAL_StatusTypeDef HAL_PSSI_Transmit_DMA(PSSI_HandleTypeDef *hpssi, uint32_t *pData, uint32_t Size) in HAL_PSSI_Transmit_DMA() argument
931 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Transmit_DMA()
935 __HAL_LOCK(hpssi); in HAL_PSSI_Transmit_DMA()
937 hpssi->State = HAL_PSSI_STATE_BUSY_TX; in HAL_PSSI_Transmit_DMA()
938 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Transmit_DMA()
941 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Transmit_DMA()
944 hpssi->pBuffPtr = pData; in HAL_PSSI_Transmit_DMA()
945 hpssi->XferCount = Size; in HAL_PSSI_Transmit_DMA()
947 if (hpssi->XferCount > PSSI_MAX_NBYTE_SIZE) in HAL_PSSI_Transmit_DMA()
949 hpssi->XferSize = PSSI_MAX_NBYTE_SIZE; in HAL_PSSI_Transmit_DMA()
953 hpssi->XferSize = hpssi->XferCount; in HAL_PSSI_Transmit_DMA()
956 if (hpssi->XferSize > 0U) in HAL_PSSI_Transmit_DMA()
958 if (hpssi->hdmatx != NULL) in HAL_PSSI_Transmit_DMA()
962 if (hpssi->hdmatx->Init.DestDataWidth == DMA_DEST_DATAWIDTH_BYTE) in HAL_PSSI_Transmit_DMA()
964 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, in HAL_PSSI_Transmit_DMA()
966 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? 0U : PSSI_CR_CKPOL)); in HAL_PSSI_Transmit_DMA()
970 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, in HAL_PSSI_Transmit_DMA()
971 PSSI_CR_DMA_ENABLE | hpssi->Init.BusWidth | PSSI_CR_OUTEN_OUTPUT | in HAL_PSSI_Transmit_DMA()
972 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? 0U : PSSI_CR_CKPOL)); in HAL_PSSI_Transmit_DMA()
976 hpssi->hdmatx->XferCpltCallback = PSSI_DMATransmitCplt; in HAL_PSSI_Transmit_DMA()
979 hpssi->hdmatx->XferErrorCallback = PSSI_DMAError; in HAL_PSSI_Transmit_DMA()
982 hpssi->hdmatx->XferHalfCpltCallback = NULL; in HAL_PSSI_Transmit_DMA()
983 hpssi->hdmatx->XferAbortCallback = NULL; in HAL_PSSI_Transmit_DMA()
986 if ((hpssi->hdmatx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_PSSI_Transmit_DMA()
988 if (hpssi->hdmatx->LinkedListQueue != NULL) in HAL_PSSI_Transmit_DMA()
992 … hpssi->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = hpssi->XferSize; in HAL_PSSI_Transmit_DMA()
994 … hpssi->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = (uint32_t)pData; in HAL_PSSI_Transmit_DMA()
996 hpssi->hdmatx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = in HAL_PSSI_Transmit_DMA()
997 (uint32_t)&hpssi->Instance->DR; in HAL_PSSI_Transmit_DMA()
999 dmaxferstatus = HAL_DMAEx_List_Start_IT(hpssi->hdmatx); in HAL_PSSI_Transmit_DMA()
1009 … dmaxferstatus = HAL_DMA_Start_IT(hpssi->hdmatx, (uint32_t)pData, (uint32_t)&hpssi->Instance->DR, in HAL_PSSI_Transmit_DMA()
1010 hpssi->XferSize); in HAL_PSSI_Transmit_DMA()
1016 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit_DMA()
1019 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Transmit_DMA()
1022 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1030 hpssi->XferCount -= hpssi->XferSize; in HAL_PSSI_Transmit_DMA()
1033 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1039 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Transmit_DMA()
1042 hpssi->Instance->CR |= PSSI_CR_DMA_ENABLE; in HAL_PSSI_Transmit_DMA()
1044 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Transmit_DMA()
1049 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Transmit_DMA()
1052 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Transmit_DMA()
1055 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1063 __HAL_UNLOCK(hpssi); in HAL_PSSI_Transmit_DMA()
1071 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Transmit_DMA()
1089 HAL_StatusTypeDef HAL_PSSI_Receive_DMA(PSSI_HandleTypeDef *hpssi, uint32_t *pData, uint32_t Size) in HAL_PSSI_Receive_DMA() argument
1094 if (hpssi->State == HAL_PSSI_STATE_READY) in HAL_PSSI_Receive_DMA()
1098 HAL_PSSI_DISABLE(hpssi); in HAL_PSSI_Receive_DMA()
1100 __HAL_LOCK(hpssi); in HAL_PSSI_Receive_DMA()
1102 hpssi->State = HAL_PSSI_STATE_BUSY_RX; in HAL_PSSI_Receive_DMA()
1103 hpssi->ErrorCode = HAL_PSSI_ERROR_NONE; in HAL_PSSI_Receive_DMA()
1106 hpssi->pBuffPtr = pData; in HAL_PSSI_Receive_DMA()
1107 hpssi->XferCount = Size; in HAL_PSSI_Receive_DMA()
1109 if (hpssi->XferCount > PSSI_MAX_NBYTE_SIZE) in HAL_PSSI_Receive_DMA()
1111 hpssi->XferSize = PSSI_MAX_NBYTE_SIZE; in HAL_PSSI_Receive_DMA()
1115 hpssi->XferSize = hpssi->XferCount; in HAL_PSSI_Receive_DMA()
1118 if (hpssi->XferSize > 0U) in HAL_PSSI_Receive_DMA()
1120 if (hpssi->hdmarx != NULL) in HAL_PSSI_Receive_DMA()
1123 if (hpssi->hdmarx->Init.SrcDataWidth == DMA_SRC_DATAWIDTH_BYTE) in HAL_PSSI_Receive_DMA()
1125 …MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, PSSI_CR_DMA_ENABLE | in HAL_PSSI_Receive_DMA()
1126 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? PSSI_CR_CKPOL : 0U)); in HAL_PSSI_Receive_DMA()
1130 MODIFY_REG(hpssi->Instance->CR, PSSI_CR_DMAEN | PSSI_CR_OUTEN | PSSI_CR_CKPOL, in HAL_PSSI_Receive_DMA()
1131 PSSI_CR_DMA_ENABLE | hpssi->Init.BusWidth | in HAL_PSSI_Receive_DMA()
1132 ((hpssi->Init.ClockPolarity == HAL_PSSI_RISING_EDGE) ? PSSI_CR_CKPOL : 0U)); in HAL_PSSI_Receive_DMA()
1136 hpssi->hdmarx->XferCpltCallback = PSSI_DMAReceiveCplt; in HAL_PSSI_Receive_DMA()
1139 hpssi->hdmarx->XferErrorCallback = PSSI_DMAError; in HAL_PSSI_Receive_DMA()
1142 hpssi->hdmarx->XferHalfCpltCallback = NULL; in HAL_PSSI_Receive_DMA()
1143 hpssi->hdmarx->XferAbortCallback = NULL; in HAL_PSSI_Receive_DMA()
1146 if ((hpssi->hdmarx->Mode & DMA_LINKEDLIST) == DMA_LINKEDLIST) in HAL_PSSI_Receive_DMA()
1148 if (hpssi->hdmarx->LinkedListQueue != NULL) in HAL_PSSI_Receive_DMA()
1152 … hpssi->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CBR1_DEFAULT_OFFSET] = hpssi->XferSize; in HAL_PSSI_Receive_DMA()
1154 hpssi->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CSAR_DEFAULT_OFFSET] = in HAL_PSSI_Receive_DMA()
1155 (uint32_t)&hpssi->Instance->DR; in HAL_PSSI_Receive_DMA()
1157 … hpssi->hdmarx->LinkedListQueue->Head->LinkRegisters[NODE_CDAR_DEFAULT_OFFSET] = (uint32_t)pData; in HAL_PSSI_Receive_DMA()
1159 dmaxferstatus = HAL_DMAEx_List_Start_IT(hpssi->hdmarx); in HAL_PSSI_Receive_DMA()
1169 … dmaxferstatus = HAL_DMA_Start_IT(hpssi->hdmarx, (uint32_t)&hpssi->Instance->DR, (uint32_t)pData, in HAL_PSSI_Receive_DMA()
1170 hpssi->XferSize); in HAL_PSSI_Receive_DMA()
1176 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive_DMA()
1179 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Receive_DMA()
1182 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1190 hpssi->XferCount -= hpssi->XferSize; in HAL_PSSI_Receive_DMA()
1193 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1199 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Receive_DMA()
1202 hpssi->Instance->CR |= PSSI_CR_DMA_ENABLE; in HAL_PSSI_Receive_DMA()
1204 HAL_PSSI_ENABLE(hpssi); in HAL_PSSI_Receive_DMA()
1209 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_Receive_DMA()
1212 hpssi->ErrorCode |= HAL_PSSI_ERROR_DMA; in HAL_PSSI_Receive_DMA()
1215 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1223 __HAL_UNLOCK(hpssi); in HAL_PSSI_Receive_DMA()
1226 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Receive_DMA()
1243 HAL_StatusTypeDef HAL_PSSI_Abort_DMA(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_Abort_DMA() argument
1246 __HAL_LOCK(hpssi); in HAL_PSSI_Abort_DMA()
1249 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Abort_DMA()
1252 hpssi->State = HAL_PSSI_STATE_ABORT; in HAL_PSSI_Abort_DMA()
1255 if ((hpssi->Instance->CR & PSSI_CR_DMAEN) == PSSI_CR_DMAEN) in HAL_PSSI_Abort_DMA()
1257 if (hpssi->State == HAL_PSSI_STATE_BUSY_TX) in HAL_PSSI_Abort_DMA()
1259 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_Abort_DMA()
1261 if (hpssi->hdmatx != NULL) in HAL_PSSI_Abort_DMA()
1265 hpssi->hdmatx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_Abort_DMA()
1268 if (HAL_DMA_Abort_IT(hpssi->hdmatx) != HAL_OK) in HAL_PSSI_Abort_DMA()
1271 hpssi->hdmatx->XferAbortCallback(hpssi->hdmatx); in HAL_PSSI_Abort_DMA()
1276 else if (hpssi->State == HAL_PSSI_STATE_BUSY_RX) in HAL_PSSI_Abort_DMA()
1278 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_Abort_DMA()
1280 if (hpssi->hdmarx != NULL) in HAL_PSSI_Abort_DMA()
1284 hpssi->hdmarx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_Abort_DMA()
1287 if (HAL_DMA_Abort_IT(hpssi->hdmarx) != HAL_OK) in HAL_PSSI_Abort_DMA()
1290 hpssi->hdmarx->XferAbortCallback(hpssi->hdmarx); in HAL_PSSI_Abort_DMA()
1299 hpssi->ErrorCallback(hpssi); in HAL_PSSI_Abort_DMA()
1301 HAL_PSSI_ErrorCallback(hpssi); in HAL_PSSI_Abort_DMA()
1307 __HAL_UNLOCK(hpssi); in HAL_PSSI_Abort_DMA()
1312 HAL_PSSI_ENABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_Abort_DMA()
1332 void HAL_PSSI_IRQHandler(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_IRQHandler() argument
1335 if (HAL_PSSI_GET_FLAG(hpssi, PSSI_FLAG_OVR_MIS) != 0U) in HAL_PSSI_IRQHandler()
1338 hpssi->XferCount = 0U; in HAL_PSSI_IRQHandler()
1341 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in HAL_PSSI_IRQHandler()
1345 if ((hpssi->Instance->CR & PSSI_CR_DMAEN) == PSSI_CR_DMAEN) in HAL_PSSI_IRQHandler()
1347 if (hpssi->State == HAL_PSSI_STATE_BUSY_TX) in HAL_PSSI_IRQHandler()
1350 hpssi->ErrorCode |= HAL_PSSI_ERROR_UNDER_RUN; in HAL_PSSI_IRQHandler()
1352 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_IRQHandler()
1354 if (hpssi->hdmatx != NULL) in HAL_PSSI_IRQHandler()
1358 hpssi->hdmatx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_IRQHandler()
1361 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1364 if (HAL_DMA_Abort_IT(hpssi->hdmatx) != HAL_OK) in HAL_PSSI_IRQHandler()
1367 hpssi->hdmatx->XferAbortCallback(hpssi->hdmatx); in HAL_PSSI_IRQHandler()
1372 else if (hpssi->State == HAL_PSSI_STATE_BUSY_RX) in HAL_PSSI_IRQHandler()
1375 hpssi->ErrorCode |= HAL_PSSI_ERROR_OVER_RUN; in HAL_PSSI_IRQHandler()
1377 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in HAL_PSSI_IRQHandler()
1379 if (hpssi->hdmarx != NULL) in HAL_PSSI_IRQHandler()
1383 hpssi->hdmarx->XferAbortCallback = PSSI_DMAAbort; in HAL_PSSI_IRQHandler()
1386 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1389 if (HAL_DMA_Abort_IT(hpssi->hdmarx) != HAL_OK) in HAL_PSSI_IRQHandler()
1392 hpssi->hdmarx->XferAbortCallback(hpssi->hdmarx); in HAL_PSSI_IRQHandler()
1400 hpssi->ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1402 HAL_PSSI_ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1409 if (hpssi->State == HAL_PSSI_STATE_ABORT) in HAL_PSSI_IRQHandler()
1411 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_IRQHandler()
1414 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1418 hpssi->AbortCpltCallback(hpssi); in HAL_PSSI_IRQHandler()
1420 HAL_PSSI_AbortCpltCallback(hpssi); in HAL_PSSI_IRQHandler()
1426 hpssi->State = HAL_PSSI_STATE_READY; in HAL_PSSI_IRQHandler()
1428 __HAL_UNLOCK(hpssi); in HAL_PSSI_IRQHandler()
1432 hpssi->ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1434 HAL_PSSI_ErrorCallback(hpssi); in HAL_PSSI_IRQHandler()
1446 __weak void HAL_PSSI_TxCpltCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_TxCpltCallback() argument
1449 UNUSED(hpssi); in HAL_PSSI_TxCpltCallback()
1462 __weak void HAL_PSSI_RxCpltCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_RxCpltCallback() argument
1465 UNUSED(hpssi); in HAL_PSSI_RxCpltCallback()
1478 __weak void HAL_PSSI_ErrorCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_ErrorCallback() argument
1481 UNUSED(hpssi); in HAL_PSSI_ErrorCallback()
1494 __weak void HAL_PSSI_AbortCpltCallback(PSSI_HandleTypeDef *hpssi) in HAL_PSSI_AbortCpltCallback() argument
1497 UNUSED(hpssi); in HAL_PSSI_AbortCpltCallback()
1529 HAL_PSSI_StateTypeDef HAL_PSSI_GetState(const PSSI_HandleTypeDef *hpssi) in HAL_PSSI_GetState() argument
1532 return hpssi->State; in HAL_PSSI_GetState()
1541 uint32_t HAL_PSSI_GetError(const PSSI_HandleTypeDef *hpssi) in HAL_PSSI_GetError() argument
1543 return hpssi->ErrorCode; in HAL_PSSI_GetError()
1564 static void PSSI_Error(PSSI_HandleTypeDef *hpssi, uint32_t ErrorCode) in PSSI_Error() argument
1567 hpssi->XferCount = 0U; in PSSI_Error()
1570 hpssi->ErrorCode |= ErrorCode; in PSSI_Error()
1573 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_Error()
1577 if ((hpssi->Instance->CR & PSSI_CR_DMAEN) == PSSI_CR_DMAEN) in PSSI_Error()
1579 if (hpssi->State == HAL_PSSI_STATE_BUSY_TX) in PSSI_Error()
1581 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in PSSI_Error()
1583 if (hpssi->hdmatx != NULL) in PSSI_Error()
1587 hpssi->hdmatx->XferAbortCallback = PSSI_DMAAbort; in PSSI_Error()
1590 __HAL_UNLOCK(hpssi); in PSSI_Error()
1593 if (HAL_DMA_Abort_IT(hpssi->hdmatx) != HAL_OK) in PSSI_Error()
1596 hpssi->hdmatx->XferAbortCallback(hpssi->hdmatx); in PSSI_Error()
1601 else if (hpssi->State == HAL_PSSI_STATE_BUSY_RX) in PSSI_Error()
1603 hpssi->Instance->CR &= ~PSSI_CR_DMAEN; in PSSI_Error()
1605 if (hpssi->hdmarx != NULL) in PSSI_Error()
1609 hpssi->hdmarx->XferAbortCallback = PSSI_DMAAbort; in PSSI_Error()
1612 __HAL_UNLOCK(hpssi); in PSSI_Error()
1615 if (HAL_DMA_Abort_IT(hpssi->hdmarx) != HAL_OK) in PSSI_Error()
1618 hpssi->hdmarx->XferAbortCallback(hpssi->hdmarx); in PSSI_Error()
1630 if (hpssi->State == HAL_PSSI_STATE_ABORT) in PSSI_Error()
1632 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_Error()
1635 __HAL_UNLOCK(hpssi); in PSSI_Error()
1639 hpssi->AbortCpltCallback(hpssi); in PSSI_Error()
1641 HAL_PSSI_AbortCpltCallback(hpssi); in PSSI_Error()
1647 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_Error()
1650 __HAL_UNLOCK(hpssi); in PSSI_Error()
1654 hpssi->ErrorCallback(hpssi); in PSSI_Error()
1656 HAL_PSSI_ErrorCallback(hpssi); in PSSI_Error()
1670 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMATransmitCplt() local
1675 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_DMATransmitCplt()
1678 tmperror = hpssi->ErrorCode; in PSSI_DMATransmitCplt()
1681 if ((hpssi->State == HAL_PSSI_STATE_ABORT) || (tmperror != HAL_PSSI_ERROR_NONE)) in PSSI_DMATransmitCplt()
1684 PSSI_Error(hpssi, hpssi->ErrorCode); in PSSI_DMATransmitCplt()
1689 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMATransmitCplt()
1692 __HAL_UNLOCK(hpssi); in PSSI_DMATransmitCplt()
1696 hpssi->TxCpltCallback(hpssi); in PSSI_DMATransmitCplt()
1698 HAL_PSSI_TxCpltCallback(hpssi); in PSSI_DMATransmitCplt()
1711 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMAReceiveCplt() local
1716 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_DMAReceiveCplt()
1719 tmperror = hpssi->ErrorCode; in PSSI_DMAReceiveCplt()
1722 if ((hpssi->State == HAL_PSSI_STATE_ABORT) || (tmperror != HAL_PSSI_ERROR_NONE)) in PSSI_DMAReceiveCplt()
1725 PSSI_Error(hpssi, hpssi->ErrorCode); in PSSI_DMAReceiveCplt()
1730 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMAReceiveCplt()
1733 __HAL_UNLOCK(hpssi); in PSSI_DMAReceiveCplt()
1737 hpssi->RxCpltCallback(hpssi); in PSSI_DMAReceiveCplt()
1739 HAL_PSSI_RxCpltCallback(hpssi); in PSSI_DMAReceiveCplt()
1753 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMAAbort() local
1756 hpssi->hdmatx->XferAbortCallback = NULL; in PSSI_DMAAbort()
1757 hpssi->hdmarx->XferAbortCallback = NULL; in PSSI_DMAAbort()
1760 if (hpssi->State == HAL_PSSI_STATE_ABORT) in PSSI_DMAAbort()
1762 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMAAbort()
1766 hpssi->AbortCpltCallback(hpssi); in PSSI_DMAAbort()
1768 HAL_PSSI_AbortCpltCallback(hpssi); in PSSI_DMAAbort()
1775 hpssi->ErrorCallback(hpssi); in PSSI_DMAAbort()
1777 HAL_PSSI_ErrorCallback(hpssi); in PSSI_DMAAbort()
1793 static HAL_StatusTypeDef PSSI_WaitOnStatusUntilTimeout(PSSI_HandleTypeDef *hpssi, uint32_t Flag, Fl… in PSSI_WaitOnStatusUntilTimeout() argument
1796 while ((HAL_PSSI_GET_STATUS(hpssi, Flag) & Flag) == (uint32_t)Status) in PSSI_WaitOnStatusUntilTimeout()
1803 hpssi->ErrorCode |= HAL_PSSI_ERROR_TIMEOUT; in PSSI_WaitOnStatusUntilTimeout()
1804 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_WaitOnStatusUntilTimeout()
1807 __HAL_UNLOCK(hpssi); in PSSI_WaitOnStatusUntilTimeout()
1820 PSSI_HandleTypeDef *hpssi = (PSSI_HandleTypeDef *)(((DMA_HandleTypeDef *)hdma)->Parent); in PSSI_DMAError() local
1825 HAL_PSSI_DISABLE(hpssi); in PSSI_DMAError()
1828 HAL_PSSI_DISABLE_IT(hpssi, PSSI_FLAG_OVR_RIS); in PSSI_DMAError()
1831 tmperror = hpssi->ErrorCode; in PSSI_DMAError()
1834 if ((hpssi->State == HAL_PSSI_STATE_ABORT) || (tmperror != HAL_PSSI_ERROR_NONE)) in PSSI_DMAError()
1837 PSSI_Error(hpssi, hpssi->ErrorCode); in PSSI_DMAError()
1841 hpssi->State = HAL_PSSI_STATE_READY; in PSSI_DMAError()
1844 __HAL_UNLOCK(hpssi); in PSSI_DMAError()
1848 hpssi->ErrorCallback(hpssi); in PSSI_DMAError()
1850 HAL_PSSI_ErrorCallback(hpssi); in PSSI_DMAError()