Lines Matching refs:hspdif
196 static void SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif);
197 static void SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif);
198 static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Fl…
244 HAL_StatusTypeDef HAL_SPDIFRX_Init(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_Init() argument
249 if (hspdif == NULL) in HAL_SPDIFRX_Init()
255 assert_param(IS_STEREO_MODE(hspdif->Init.StereoMode)); in HAL_SPDIFRX_Init()
256 assert_param(IS_SPDIFRX_INPUT_SELECT(hspdif->Init.InputSelection)); in HAL_SPDIFRX_Init()
257 assert_param(IS_SPDIFRX_MAX_RETRIES(hspdif->Init.Retries)); in HAL_SPDIFRX_Init()
258 assert_param(IS_SPDIFRX_WAIT_FOR_ACTIVITY(hspdif->Init.WaitForActivity)); in HAL_SPDIFRX_Init()
259 assert_param(IS_SPDIFRX_CHANNEL(hspdif->Init.ChannelSelection)); in HAL_SPDIFRX_Init()
260 assert_param(IS_SPDIFRX_DATA_FORMAT(hspdif->Init.DataFormat)); in HAL_SPDIFRX_Init()
261 assert_param(IS_PREAMBLE_TYPE_MASK(hspdif->Init.PreambleTypeMask)); in HAL_SPDIFRX_Init()
262 assert_param(IS_CHANNEL_STATUS_MASK(hspdif->Init.ChannelStatusMask)); in HAL_SPDIFRX_Init()
263 assert_param(IS_VALIDITY_MASK(hspdif->Init.ValidityBitMask)); in HAL_SPDIFRX_Init()
264 assert_param(IS_PARITY_ERROR_MASK(hspdif->Init.ParityErrorMask)); in HAL_SPDIFRX_Init()
265 assert_param(IS_SYMBOL_CLOCK_GEN(hspdif->Init.SymbolClockGen)); in HAL_SPDIFRX_Init()
266 assert_param(IS_SYMBOL_CLOCK_GEN(hspdif->Init.BackupSymbolClockGen)); in HAL_SPDIFRX_Init()
269 if (hspdif->State == HAL_SPDIFRX_STATE_RESET) in HAL_SPDIFRX_Init()
272 hspdif->Lock = HAL_UNLOCKED; in HAL_SPDIFRX_Init()
274 … hspdif->RxHalfCpltCallback = HAL_SPDIFRX_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback */ in HAL_SPDIFRX_Init()
275 … hspdif->RxCpltCallback = HAL_SPDIFRX_RxCpltCallback; /* Legacy weak RxCpltCallback */ in HAL_SPDIFRX_Init()
276 … hspdif->CxHalfCpltCallback = HAL_SPDIFRX_CxHalfCpltCallback; /* Legacy weak CxHalfCpltCallback */ in HAL_SPDIFRX_Init()
277 … hspdif->CxCpltCallback = HAL_SPDIFRX_CxCpltCallback; /* Legacy weak CxCpltCallback */ in HAL_SPDIFRX_Init()
278 … hspdif->ErrorCallback = HAL_SPDIFRX_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_SPDIFRX_Init()
280 if (hspdif->MspInitCallback == NULL) in HAL_SPDIFRX_Init()
282 hspdif->MspInitCallback = HAL_SPDIFRX_MspInit; /* Legacy weak MspInit */ in HAL_SPDIFRX_Init()
286 hspdif->MspInitCallback(hspdif); in HAL_SPDIFRX_Init()
289 if (hspdif->State == HAL_SPDIFRX_STATE_RESET) in HAL_SPDIFRX_Init()
292 hspdif->Lock = HAL_UNLOCKED; in HAL_SPDIFRX_Init()
294 HAL_SPDIFRX_MspInit(hspdif); in HAL_SPDIFRX_Init()
299 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_Init()
302 __HAL_SPDIFRX_IDLE(hspdif); in HAL_SPDIFRX_Init()
305 tmpreg = hspdif->Instance->CR; in HAL_SPDIFRX_Init()
314 tmpreg |= (hspdif->Init.StereoMode | in HAL_SPDIFRX_Init()
315 hspdif->Init.InputSelection | in HAL_SPDIFRX_Init()
316 hspdif->Init.Retries | in HAL_SPDIFRX_Init()
317 hspdif->Init.WaitForActivity | in HAL_SPDIFRX_Init()
318 hspdif->Init.ChannelSelection | in HAL_SPDIFRX_Init()
319 hspdif->Init.DataFormat | in HAL_SPDIFRX_Init()
320 hspdif->Init.PreambleTypeMask | in HAL_SPDIFRX_Init()
321 hspdif->Init.ChannelStatusMask | in HAL_SPDIFRX_Init()
322 hspdif->Init.ValidityBitMask | in HAL_SPDIFRX_Init()
323 hspdif->Init.ParityErrorMask in HAL_SPDIFRX_Init()
326 if (hspdif->Init.SymbolClockGen == ENABLE) in HAL_SPDIFRX_Init()
331 if (hspdif->Init.BackupSymbolClockGen == ENABLE) in HAL_SPDIFRX_Init()
336 hspdif->Instance->CR = tmpreg; in HAL_SPDIFRX_Init()
338 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_Init()
341 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_Init()
351 HAL_StatusTypeDef HAL_SPDIFRX_DeInit(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_DeInit() argument
354 if (hspdif == NULL) in HAL_SPDIFRX_DeInit()
360 assert_param(IS_SPDIFRX_ALL_INSTANCE(hspdif->Instance)); in HAL_SPDIFRX_DeInit()
362 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_DeInit()
365 __HAL_SPDIFRX_IDLE(hspdif); in HAL_SPDIFRX_DeInit()
368 if (hspdif->MspDeInitCallback == NULL) in HAL_SPDIFRX_DeInit()
370 hspdif->MspDeInitCallback = HAL_SPDIFRX_MspDeInit; /* Legacy weak MspDeInit */ in HAL_SPDIFRX_DeInit()
374 hspdif->MspDeInitCallback(hspdif); in HAL_SPDIFRX_DeInit()
377 HAL_SPDIFRX_MspDeInit(hspdif); in HAL_SPDIFRX_DeInit()
380 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_DeInit()
383 hspdif->State = HAL_SPDIFRX_STATE_RESET; in HAL_SPDIFRX_DeInit()
386 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_DeInit()
396 __weak void HAL_SPDIFRX_MspInit(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_MspInit() argument
399 UNUSED(hspdif); in HAL_SPDIFRX_MspInit()
411 __weak void HAL_SPDIFRX_MspDeInit(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_MspDeInit() argument
414 UNUSED(hspdif); in HAL_SPDIFRX_MspDeInit()
438 HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackI… in HAL_SPDIFRX_RegisterCallback() argument
446 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
450 __HAL_LOCK(hspdif); in HAL_SPDIFRX_RegisterCallback()
452 if (HAL_SPDIFRX_STATE_READY == hspdif->State) in HAL_SPDIFRX_RegisterCallback()
457 hspdif->RxHalfCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
461 hspdif->RxCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
465 hspdif->CxHalfCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
469 hspdif->CxCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
473 hspdif->ErrorCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
477 hspdif->MspInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
481 hspdif->MspDeInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
486 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
492 else if (HAL_SPDIFRX_STATE_RESET == hspdif->State) in HAL_SPDIFRX_RegisterCallback()
497 hspdif->MspInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
501 hspdif->MspDeInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
506 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
515 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
521 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_RegisterCallback()
540 HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif, in HAL_SPDIFRX_UnRegisterCallback() argument
546 __HAL_LOCK(hspdif); in HAL_SPDIFRX_UnRegisterCallback()
548 if (HAL_SPDIFRX_STATE_READY == hspdif->State) in HAL_SPDIFRX_UnRegisterCallback()
553 hspdif->RxHalfCpltCallback = HAL_SPDIFRX_RxHalfCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
557 hspdif->RxCpltCallback = HAL_SPDIFRX_RxCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
561 hspdif->CxHalfCpltCallback = HAL_SPDIFRX_CxHalfCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
565 hspdif->CxCpltCallback = HAL_SPDIFRX_CxCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
569 hspdif->ErrorCallback = HAL_SPDIFRX_ErrorCallback; in HAL_SPDIFRX_UnRegisterCallback()
574 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_UnRegisterCallback()
580 else if (HAL_SPDIFRX_STATE_RESET == hspdif->State) in HAL_SPDIFRX_UnRegisterCallback()
585 hspdif->MspInitCallback = HAL_SPDIFRX_MspInit; /* Legacy weak MspInit */ in HAL_SPDIFRX_UnRegisterCallback()
589 hspdif->MspDeInitCallback = HAL_SPDIFRX_MspDeInit; /* Legacy weak MspInit */ in HAL_SPDIFRX_UnRegisterCallback()
594 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_UnRegisterCallback()
603 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_UnRegisterCallback()
609 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_UnRegisterCallback()
621 HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif, SPDIFRX_SetDataFormatTyp… in HAL_SPDIFRX_SetDataFormat() argument
626 if (hspdif == NULL) in HAL_SPDIFRX_SetDataFormat()
640 tmpreg = hspdif->Instance->CR; in HAL_SPDIFRX_SetDataFormat()
660 hspdif->Instance->CR = tmpreg; in HAL_SPDIFRX_SetDataFormat()
720 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint1… in HAL_SPDIFRX_ReceiveDataFlow() argument
732 if (hspdif->State == HAL_SPDIFRX_STATE_READY) in HAL_SPDIFRX_ReceiveDataFlow()
735 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
737 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_ReceiveDataFlow()
740 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
746 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_O… in HAL_SPDIFRX_ReceiveDataFlow()
752 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
761 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) in HAL_SPDIFRX_ReceiveDataFlow()
766 (*pTmpBuf) = hspdif->Instance->DR; in HAL_SPDIFRX_ReceiveDataFlow()
772 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveDataFlow()
775 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
794 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveCtrlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint1… in HAL_SPDIFRX_ReceiveCtrlFlow() argument
806 if (hspdif->State == HAL_SPDIFRX_STATE_READY) in HAL_SPDIFRX_ReceiveCtrlFlow()
809 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow()
811 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_ReceiveCtrlFlow()
814 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow()
820 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_O… in HAL_SPDIFRX_ReceiveCtrlFlow()
826 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow()
835 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_CSRNE, RESET, Timeout, tickstart) != HAL_O… in HAL_SPDIFRX_ReceiveCtrlFlow()
840 (*pTmpBuf) = hspdif->Instance->CSR; in HAL_SPDIFRX_ReceiveCtrlFlow()
846 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveCtrlFlow()
849 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow()
866 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, ui… in HAL_SPDIFRX_ReceiveDataFlow_IT() argument
870 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveDataFlow_IT()
880 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
882 hspdif->pRxBuffPtr = pData; in HAL_SPDIFRX_ReceiveDataFlow_IT()
883 hspdif->RxXferSize = Size; in HAL_SPDIFRX_ReceiveDataFlow_IT()
884 hspdif->RxXferCount = Size; in HAL_SPDIFRX_ReceiveDataFlow_IT()
886 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveDataFlow_IT()
889 hspdif->State = HAL_SPDIFRX_STATE_BUSY_RX; in HAL_SPDIFRX_ReceiveDataFlow_IT()
892 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
895 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
898 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
903 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
912 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
913 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
914 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
915 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
916 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
917 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
918 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
920 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveDataFlow_IT()
923 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
928 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveDataFlow_IT()
931 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
935 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
952 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveCtrlFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, ui… in HAL_SPDIFRX_ReceiveCtrlFlow_IT() argument
956 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
966 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
968 hspdif->pCsBuffPtr = pData; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
969 hspdif->CsXferSize = Size; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
970 hspdif->CsXferCount = Size; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
972 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
975 hspdif->State = HAL_SPDIFRX_STATE_BUSY_CX; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
978 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
981 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
984 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
989 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
998 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
999 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1000 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1001 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1002 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1003 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1004 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1006 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1009 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1014 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1017 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1021 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_IT()
1038 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, u… in HAL_SPDIFRX_ReceiveDataFlow_DMA() argument
1042 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1052 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1054 hspdif->pRxBuffPtr = pData; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1055 hspdif->RxXferSize = Size; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1056 hspdif->RxXferCount = Size; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1058 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1059 hspdif->State = HAL_SPDIFRX_STATE_BUSY_RX; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1062 hspdif->hdmaDrRx->XferHalfCpltCallback = SPDIFRX_DMARxHalfCplt; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1065 hspdif->hdmaDrRx->XferCpltCallback = SPDIFRX_DMARxCplt; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1068 hspdif->hdmaDrRx->XferErrorCallback = SPDIFRX_DMAError; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1071 …if (HAL_DMA_Start_IT(hspdif->hdmaDrRx, (uint32_t)&hspdif->Instance->DR, (uint32_t)hspdif->pRxBuffP… in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1075 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1078 hspdif->State = HAL_SPDIFRX_STATE_ERROR; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1081 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1087 hspdif->Instance->CR |= SPDIFRX_CR_RXDMAEN; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1092 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1101 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1102 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1103 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1104 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1105 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1106 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1107 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1109 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1112 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1117 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1120 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1124 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1141 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveCtrlFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, u… in HAL_SPDIFRX_ReceiveCtrlFlow_DMA() argument
1145 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1154 hspdif->pCsBuffPtr = pData; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1155 hspdif->CsXferSize = Size; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1156 hspdif->CsXferCount = Size; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1159 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1161 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1162 hspdif->State = HAL_SPDIFRX_STATE_BUSY_CX; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1165 hspdif->hdmaCsRx->XferHalfCpltCallback = SPDIFRX_DMACxHalfCplt; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1168 hspdif->hdmaCsRx->XferCpltCallback = SPDIFRX_DMACxCplt; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1171 hspdif->hdmaCsRx->XferErrorCallback = SPDIFRX_DMAError; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1174 …if (HAL_DMA_Start_IT(hspdif->hdmaCsRx, (uint32_t)&hspdif->Instance->CSR, (uint32_t)hspdif->pCsBuff… in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1178 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1181 hspdif->State = HAL_SPDIFRX_STATE_ERROR; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1184 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1190 hspdif->Instance->CR |= SPDIFRX_CR_CBDMAEN; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1195 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1204 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1205 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1206 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1207 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1208 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1209 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1210 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1212 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1215 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1220 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1223 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1227 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveCtrlFlow_DMA()
1242 HAL_StatusTypeDef HAL_SPDIFRX_DMAStop(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_DMAStop() argument
1245 __HAL_LOCK(hspdif); in HAL_SPDIFRX_DMAStop()
1248 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN); in HAL_SPDIFRX_DMAStop()
1249 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN); in HAL_SPDIFRX_DMAStop()
1252 if (hspdif->hdmaDrRx != NULL) in HAL_SPDIFRX_DMAStop()
1254 __HAL_DMA_DISABLE(hspdif->hdmaDrRx); in HAL_SPDIFRX_DMAStop()
1256 if (hspdif->hdmaCsRx != NULL) in HAL_SPDIFRX_DMAStop()
1258 __HAL_DMA_DISABLE(hspdif->hdmaCsRx); in HAL_SPDIFRX_DMAStop()
1262 __HAL_SPDIFRX_IDLE(hspdif); in HAL_SPDIFRX_DMAStop()
1264 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_DMAStop()
1267 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_DMAStop()
1277 void HAL_SPDIFRX_IRQHandler(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_IRQHandler() argument
1279 uint32_t itFlag = hspdif->Instance->SR; in HAL_SPDIFRX_IRQHandler()
1280 uint32_t itSource = hspdif->Instance->IMR; in HAL_SPDIFRX_IRQHandler()
1285 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_IRQHandler()
1286 SPDIFRX_ReceiveDataFlow_IT(hspdif); in HAL_SPDIFRX_IRQHandler()
1292 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_IRQHandler()
1293 SPDIFRX_ReceiveControlFlow_IT(hspdif); in HAL_SPDIFRX_IRQHandler()
1299 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_IRQHandler()
1302 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_OVR; in HAL_SPDIFRX_IRQHandler()
1305 HAL_SPDIFRX_ErrorCallback(hspdif); in HAL_SPDIFRX_IRQHandler()
1311 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_IRQHandler()
1314 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_PE; in HAL_SPDIFRX_IRQHandler()
1317 HAL_SPDIFRX_ErrorCallback(hspdif); in HAL_SPDIFRX_IRQHandler()
1326 __weak void HAL_SPDIFRX_RxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_RxHalfCpltCallback() argument
1329 UNUSED(hspdif); in HAL_SPDIFRX_RxHalfCpltCallback()
1341 __weak void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_RxCpltCallback() argument
1344 UNUSED(hspdif); in HAL_SPDIFRX_RxCpltCallback()
1356 __weak void HAL_SPDIFRX_CxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_CxHalfCpltCallback() argument
1359 UNUSED(hspdif); in HAL_SPDIFRX_CxHalfCpltCallback()
1371 __weak void HAL_SPDIFRX_CxCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_CxCpltCallback() argument
1374 UNUSED(hspdif); in HAL_SPDIFRX_CxCpltCallback()
1386 __weak void HAL_SPDIFRX_ErrorCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_ErrorCallback() argument
1389 UNUSED(hspdif); in HAL_SPDIFRX_ErrorCallback()
1420 HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const *const hspdif) in HAL_SPDIFRX_GetState() argument
1422 return hspdif->State; in HAL_SPDIFRX_GetState()
1430 uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const *const hspdif) in HAL_SPDIFRX_GetError() argument
1432 return hspdif->ErrorCode; in HAL_SPDIFRX_GetError()
1446 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMARxCplt() local
1451 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN); in SPDIFRX_DMARxCplt()
1452 hspdif->RxXferCount = 0; in SPDIFRX_DMARxCplt()
1453 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_DMARxCplt()
1456 hspdif->RxCpltCallback(hspdif); in SPDIFRX_DMARxCplt()
1458 HAL_SPDIFRX_RxCpltCallback(hspdif); in SPDIFRX_DMARxCplt()
1469 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMARxHalfCplt() local
1472 hspdif->RxHalfCpltCallback(hspdif); in SPDIFRX_DMARxHalfCplt()
1474 HAL_SPDIFRX_RxHalfCpltCallback(hspdif); in SPDIFRX_DMARxHalfCplt()
1486 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMACxCplt() local
1489 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN); in SPDIFRX_DMACxCplt()
1490 hspdif->CsXferCount = 0; in SPDIFRX_DMACxCplt()
1492 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_DMACxCplt()
1494 hspdif->CxCpltCallback(hspdif); in SPDIFRX_DMACxCplt()
1496 HAL_SPDIFRX_CxCpltCallback(hspdif); in SPDIFRX_DMACxCplt()
1507 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMACxHalfCplt() local
1510 hspdif->CxHalfCpltCallback(hspdif); in SPDIFRX_DMACxHalfCplt()
1512 HAL_SPDIFRX_CxHalfCpltCallback(hspdif); in SPDIFRX_DMACxHalfCplt()
1523 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMAError() local
1526 hspdif->Instance->CR &= (uint16_t)(~(SPDIFRX_CR_RXDMAEN | SPDIFRX_CR_CBDMAEN)); in SPDIFRX_DMAError()
1527 hspdif->RxXferCount = 0; in SPDIFRX_DMAError()
1529 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_DMAError()
1532 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_DMA; in SPDIFRX_DMAError()
1536 hspdif->ErrorCallback(hspdif); in SPDIFRX_DMAError()
1539 HAL_SPDIFRX_ErrorCallback(hspdif); in SPDIFRX_DMAError()
1548 static void SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif) in SPDIFRX_ReceiveDataFlow_IT() argument
1551 (*hspdif->pRxBuffPtr) = hspdif->Instance->DR; in SPDIFRX_ReceiveDataFlow_IT()
1552 hspdif->pRxBuffPtr++; in SPDIFRX_ReceiveDataFlow_IT()
1553 hspdif->RxXferCount--; in SPDIFRX_ReceiveDataFlow_IT()
1555 if (hspdif->RxXferCount == 0U) in SPDIFRX_ReceiveDataFlow_IT()
1558 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE | SPDIFRX_IT_PERRIE | SPDIFRX_IT_RXNE); in SPDIFRX_ReceiveDataFlow_IT()
1560 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_ReceiveDataFlow_IT()
1563 __HAL_UNLOCK(hspdif); in SPDIFRX_ReceiveDataFlow_IT()
1566 hspdif->RxCpltCallback(hspdif); in SPDIFRX_ReceiveDataFlow_IT()
1568 HAL_SPDIFRX_RxCpltCallback(hspdif); in SPDIFRX_ReceiveDataFlow_IT()
1578 static void SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif) in SPDIFRX_ReceiveControlFlow_IT() argument
1581 (*hspdif->pCsBuffPtr) = hspdif->Instance->CSR; in SPDIFRX_ReceiveControlFlow_IT()
1582 hspdif->pCsBuffPtr++; in SPDIFRX_ReceiveControlFlow_IT()
1583 hspdif->CsXferCount--; in SPDIFRX_ReceiveControlFlow_IT()
1585 if (hspdif->CsXferCount == 0U) in SPDIFRX_ReceiveControlFlow_IT()
1588 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in SPDIFRX_ReceiveControlFlow_IT()
1590 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_ReceiveControlFlow_IT()
1593 __HAL_UNLOCK(hspdif); in SPDIFRX_ReceiveControlFlow_IT()
1596 hspdif->CxCpltCallback(hspdif); in SPDIFRX_ReceiveControlFlow_IT()
1598 HAL_SPDIFRX_CxCpltCallback(hspdif); in SPDIFRX_ReceiveControlFlow_IT()
1612 static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Fla… in SPDIFRX_WaitOnFlagUntilTimeout() argument
1616 while (__HAL_SPDIFRX_GET_FLAG(hspdif, Flag) == Status) in SPDIFRX_WaitOnFlagUntilTimeout()
1625 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in SPDIFRX_WaitOnFlagUntilTimeout()
1626 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in SPDIFRX_WaitOnFlagUntilTimeout()
1627 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1628 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1629 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1630 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1631 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1633 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_WaitOnFlagUntilTimeout()
1636 __HAL_UNLOCK(hspdif); in SPDIFRX_WaitOnFlagUntilTimeout()