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()
267 if (hspdif->State == HAL_SPDIFRX_STATE_RESET) in HAL_SPDIFRX_Init()
270 hspdif->Lock = HAL_UNLOCKED; in HAL_SPDIFRX_Init()
272hspdif->RxHalfCpltCallback = HAL_SPDIFRX_RxHalfCpltCallback; /* Legacy weak RxHalfCpltCallback */ in HAL_SPDIFRX_Init()
273hspdif->RxCpltCallback = HAL_SPDIFRX_RxCpltCallback; /* Legacy weak RxCpltCallback */ in HAL_SPDIFRX_Init()
274hspdif->CxHalfCpltCallback = HAL_SPDIFRX_CxHalfCpltCallback; /* Legacy weak CxHalfCpltCallback */ in HAL_SPDIFRX_Init()
275hspdif->CxCpltCallback = HAL_SPDIFRX_CxCpltCallback; /* Legacy weak CxCpltCallback */ in HAL_SPDIFRX_Init()
276hspdif->ErrorCallback = HAL_SPDIFRX_ErrorCallback; /* Legacy weak ErrorCallback */ in HAL_SPDIFRX_Init()
278 if (hspdif->MspInitCallback == NULL) in HAL_SPDIFRX_Init()
280 hspdif->MspInitCallback = HAL_SPDIFRX_MspInit; /* Legacy weak MspInit */ in HAL_SPDIFRX_Init()
284 hspdif->MspInitCallback(hspdif); in HAL_SPDIFRX_Init()
287 if (hspdif->State == HAL_SPDIFRX_STATE_RESET) in HAL_SPDIFRX_Init()
290 hspdif->Lock = HAL_UNLOCKED; in HAL_SPDIFRX_Init()
292 HAL_SPDIFRX_MspInit(hspdif); in HAL_SPDIFRX_Init()
297 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_Init()
300 __HAL_SPDIFRX_IDLE(hspdif); in HAL_SPDIFRX_Init()
303 tmpreg = hspdif->Instance->CR; in HAL_SPDIFRX_Init()
311 tmpreg |= (hspdif->Init.StereoMode | in HAL_SPDIFRX_Init()
312 hspdif->Init.InputSelection | in HAL_SPDIFRX_Init()
313 hspdif->Init.Retries | in HAL_SPDIFRX_Init()
314 hspdif->Init.WaitForActivity | in HAL_SPDIFRX_Init()
315 hspdif->Init.ChannelSelection | in HAL_SPDIFRX_Init()
316 hspdif->Init.DataFormat | in HAL_SPDIFRX_Init()
317 hspdif->Init.PreambleTypeMask | in HAL_SPDIFRX_Init()
318 hspdif->Init.ChannelStatusMask | in HAL_SPDIFRX_Init()
319 hspdif->Init.ValidityBitMask | in HAL_SPDIFRX_Init()
320 hspdif->Init.ParityErrorMask in HAL_SPDIFRX_Init()
324 hspdif->Instance->CR = tmpreg; in HAL_SPDIFRX_Init()
326 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_Init()
329 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_Init()
339 HAL_StatusTypeDef HAL_SPDIFRX_DeInit(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_DeInit() argument
342 if (hspdif == NULL) in HAL_SPDIFRX_DeInit()
348 assert_param(IS_SPDIFRX_ALL_INSTANCE(hspdif->Instance)); in HAL_SPDIFRX_DeInit()
350 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_DeInit()
353 __HAL_SPDIFRX_IDLE(hspdif); in HAL_SPDIFRX_DeInit()
356 if (hspdif->MspDeInitCallback == NULL) in HAL_SPDIFRX_DeInit()
358 hspdif->MspDeInitCallback = HAL_SPDIFRX_MspDeInit; /* Legacy weak MspDeInit */ in HAL_SPDIFRX_DeInit()
362 hspdif->MspDeInitCallback(hspdif); in HAL_SPDIFRX_DeInit()
365 HAL_SPDIFRX_MspDeInit(hspdif); in HAL_SPDIFRX_DeInit()
368 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_DeInit()
371 hspdif->State = HAL_SPDIFRX_STATE_RESET; in HAL_SPDIFRX_DeInit()
374 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_DeInit()
384 __weak void HAL_SPDIFRX_MspInit(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_MspInit() argument
387 UNUSED(hspdif); in HAL_SPDIFRX_MspInit()
399 __weak void HAL_SPDIFRX_MspDeInit(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_MspDeInit() argument
402 UNUSED(hspdif); in HAL_SPDIFRX_MspDeInit()
426 HAL_StatusTypeDef HAL_SPDIFRX_RegisterCallback(SPDIFRX_HandleTypeDef *hspdif, HAL_SPDIFRX_CallbackI… in HAL_SPDIFRX_RegisterCallback() argument
434 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
438 __HAL_LOCK(hspdif); in HAL_SPDIFRX_RegisterCallback()
440 if (HAL_SPDIFRX_STATE_READY == hspdif->State) in HAL_SPDIFRX_RegisterCallback()
445 hspdif->RxHalfCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
449 hspdif->RxCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
453 hspdif->CxHalfCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
457 hspdif->CxCpltCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
461 hspdif->ErrorCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
465 hspdif->MspInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
469 hspdif->MspDeInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
474 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
480 else if (HAL_SPDIFRX_STATE_RESET == hspdif->State) in HAL_SPDIFRX_RegisterCallback()
485 hspdif->MspInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
489 hspdif->MspDeInitCallback = pCallback; in HAL_SPDIFRX_RegisterCallback()
494 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
503 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_RegisterCallback()
509 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_RegisterCallback()
528 HAL_StatusTypeDef HAL_SPDIFRX_UnRegisterCallback(SPDIFRX_HandleTypeDef *hspdif, in HAL_SPDIFRX_UnRegisterCallback() argument
534 __HAL_LOCK(hspdif); in HAL_SPDIFRX_UnRegisterCallback()
536 if (HAL_SPDIFRX_STATE_READY == hspdif->State) in HAL_SPDIFRX_UnRegisterCallback()
541 hspdif->RxHalfCpltCallback = HAL_SPDIFRX_RxHalfCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
545 hspdif->RxCpltCallback = HAL_SPDIFRX_RxCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
549 hspdif->CxHalfCpltCallback = HAL_SPDIFRX_CxHalfCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
553 hspdif->CxCpltCallback = HAL_SPDIFRX_CxCpltCallback; in HAL_SPDIFRX_UnRegisterCallback()
557 hspdif->ErrorCallback = HAL_SPDIFRX_ErrorCallback; in HAL_SPDIFRX_UnRegisterCallback()
562 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_UnRegisterCallback()
568 else if (HAL_SPDIFRX_STATE_RESET == hspdif->State) in HAL_SPDIFRX_UnRegisterCallback()
573 hspdif->MspInitCallback = HAL_SPDIFRX_MspInit; /* Legacy weak MspInit */ in HAL_SPDIFRX_UnRegisterCallback()
577 hspdif->MspDeInitCallback = HAL_SPDIFRX_MspDeInit; /* Legacy weak MspInit */ in HAL_SPDIFRX_UnRegisterCallback()
582 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_UnRegisterCallback()
591 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_INVALID_CALLBACK; in HAL_SPDIFRX_UnRegisterCallback()
597 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_UnRegisterCallback()
609 HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif, SPDIFRX_SetDataFormatTyp… in HAL_SPDIFRX_SetDataFormat() argument
614 if (hspdif == NULL) in HAL_SPDIFRX_SetDataFormat()
628 tmpreg = hspdif->Instance->CR; in HAL_SPDIFRX_SetDataFormat()
648 hspdif->Instance->CR = tmpreg; in HAL_SPDIFRX_SetDataFormat()
708 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint1… in HAL_SPDIFRX_ReceiveDataFlow() argument
720 if (hspdif->State == HAL_SPDIFRX_STATE_READY) in HAL_SPDIFRX_ReceiveDataFlow()
723 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
725 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_ReceiveDataFlow()
728 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
734 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_O… in HAL_SPDIFRX_ReceiveDataFlow()
740 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
749 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_RXNE, RESET, Timeout, tickstart) != HAL_OK) in HAL_SPDIFRX_ReceiveDataFlow()
754 (*pTmpBuf) = hspdif->Instance->DR; in HAL_SPDIFRX_ReceiveDataFlow()
760 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveDataFlow()
763 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow()
782 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, ui… in HAL_SPDIFRX_ReceiveControlFlow() argument
794 if (hspdif->State == HAL_SPDIFRX_STATE_READY) in HAL_SPDIFRX_ReceiveControlFlow()
797 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow()
799 hspdif->State = HAL_SPDIFRX_STATE_BUSY; in HAL_SPDIFRX_ReceiveControlFlow()
802 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveControlFlow()
808 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_SYNCD, RESET, Timeout, tickstart) != HAL_O… in HAL_SPDIFRX_ReceiveControlFlow()
814 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveControlFlow()
823 …if (SPDIFRX_WaitOnFlagUntilTimeout(hspdif, SPDIFRX_FLAG_CSRNE, RESET, Timeout, tickstart) != HAL_O… in HAL_SPDIFRX_ReceiveControlFlow()
828 (*pTmpBuf) = hspdif->Instance->CSR; in HAL_SPDIFRX_ReceiveControlFlow()
834 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveControlFlow()
837 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow()
854 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, ui… in HAL_SPDIFRX_ReceiveDataFlow_IT() argument
858 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveDataFlow_IT()
868 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
870 hspdif->pRxBuffPtr = pData; in HAL_SPDIFRX_ReceiveDataFlow_IT()
871 hspdif->RxXferSize = Size; in HAL_SPDIFRX_ReceiveDataFlow_IT()
872 hspdif->RxXferCount = Size; in HAL_SPDIFRX_ReceiveDataFlow_IT()
874 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveDataFlow_IT()
877 hspdif->State = HAL_SPDIFRX_STATE_BUSY_RX; in HAL_SPDIFRX_ReceiveDataFlow_IT()
880 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
883 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
886 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
891 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
900 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
901 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
902 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
903 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
904 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
905 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
906 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveDataFlow_IT()
908 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveDataFlow_IT()
911 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
916 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveDataFlow_IT()
919 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
923 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_IT()
940 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData,… in HAL_SPDIFRX_ReceiveControlFlow_IT() argument
944 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveControlFlow_IT()
954 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_IT()
956 hspdif->pCsBuffPtr = pData; in HAL_SPDIFRX_ReceiveControlFlow_IT()
957 hspdif->CsXferSize = Size; in HAL_SPDIFRX_ReceiveControlFlow_IT()
958 hspdif->CsXferCount = Size; in HAL_SPDIFRX_ReceiveControlFlow_IT()
960 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveControlFlow_IT()
963 hspdif->State = HAL_SPDIFRX_STATE_BUSY_CX; in HAL_SPDIFRX_ReceiveControlFlow_IT()
966 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
969 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
972 __HAL_SPDIFRX_ENABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
977 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_IT()
986 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
987 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
988 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
989 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
990 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
991 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
992 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveControlFlow_IT()
994 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveControlFlow_IT()
997 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_IT()
1002 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveControlFlow_IT()
1005 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_IT()
1009 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_IT()
1026 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, u… in HAL_SPDIFRX_ReceiveDataFlow_DMA() argument
1030 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1040 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1042 hspdif->pRxBuffPtr = pData; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1043 hspdif->RxXferSize = Size; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1044 hspdif->RxXferCount = Size; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1046 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1047 hspdif->State = HAL_SPDIFRX_STATE_BUSY_RX; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1050 hspdif->hdmaDrRx->XferHalfCpltCallback = SPDIFRX_DMARxHalfCplt; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1053 hspdif->hdmaDrRx->XferCpltCallback = SPDIFRX_DMARxCplt; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1056 hspdif->hdmaDrRx->XferErrorCallback = SPDIFRX_DMAError; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1059 …if (HAL_DMA_Start_IT(hspdif->hdmaDrRx, (uint32_t)&hspdif->Instance->DR, (uint32_t)hspdif->pRxBuffP… in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1063 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1066 hspdif->State = HAL_SPDIFRX_STATE_ERROR; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1069 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1075 hspdif->Instance->CR |= SPDIFRX_CR_RXDMAEN; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1080 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1089 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1090 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1091 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1092 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1093 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1094 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1095 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1097 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1100 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1105 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1108 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1112 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveDataFlow_DMA()
1129 HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData… in HAL_SPDIFRX_ReceiveControlFlow_DMA() argument
1133 const HAL_SPDIFRX_StateTypeDef tempState = hspdif->State; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1142 hspdif->pCsBuffPtr = pData; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1143 hspdif->CsXferSize = Size; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1144 hspdif->CsXferCount = Size; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1147 __HAL_LOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1149 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_NONE; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1150 hspdif->State = HAL_SPDIFRX_STATE_BUSY_CX; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1153 hspdif->hdmaCsRx->XferHalfCpltCallback = SPDIFRX_DMACxHalfCplt; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1156 hspdif->hdmaCsRx->XferCpltCallback = SPDIFRX_DMACxCplt; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1159 hspdif->hdmaCsRx->XferErrorCallback = SPDIFRX_DMAError; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1162 …if (HAL_DMA_Start_IT(hspdif->hdmaCsRx, (uint32_t)&hspdif->Instance->CSR, (uint32_t)hspdif->pCsBuff… in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1166 hspdif->ErrorCode = HAL_SPDIFRX_ERROR_DMA; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1169 hspdif->State = HAL_SPDIFRX_STATE_ERROR; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1172 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1178 hspdif->Instance->CR |= SPDIFRX_CR_CBDMAEN; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1183 __HAL_SPDIFRX_SYNC(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1192 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1193 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1194 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1195 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1196 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1197 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1198 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1200 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1203 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1208 } while (__HAL_SPDIFRX_GET_FLAG(hspdif, SPDIFRX_FLAG_SYNCD) == RESET); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1211 __HAL_SPDIFRX_RCV(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1215 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_ReceiveControlFlow_DMA()
1230 HAL_StatusTypeDef HAL_SPDIFRX_DMAStop(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_DMAStop() argument
1233 __HAL_LOCK(hspdif); in HAL_SPDIFRX_DMAStop()
1236 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN); in HAL_SPDIFRX_DMAStop()
1237 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN); in HAL_SPDIFRX_DMAStop()
1240 if (hspdif->hdmaDrRx != NULL) in HAL_SPDIFRX_DMAStop()
1242 __HAL_DMA_DISABLE(hspdif->hdmaDrRx); in HAL_SPDIFRX_DMAStop()
1244 if (hspdif->hdmaCsRx != NULL) in HAL_SPDIFRX_DMAStop()
1246 __HAL_DMA_DISABLE(hspdif->hdmaCsRx); in HAL_SPDIFRX_DMAStop()
1250 __HAL_SPDIFRX_IDLE(hspdif); in HAL_SPDIFRX_DMAStop()
1252 hspdif->State = HAL_SPDIFRX_STATE_READY; in HAL_SPDIFRX_DMAStop()
1255 __HAL_UNLOCK(hspdif); in HAL_SPDIFRX_DMAStop()
1265 void HAL_SPDIFRX_IRQHandler(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_IRQHandler() argument
1267 uint32_t itFlag = hspdif->Instance->SR; in HAL_SPDIFRX_IRQHandler()
1268 uint32_t itSource = hspdif->Instance->IMR; in HAL_SPDIFRX_IRQHandler()
1273 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_RXNE); in HAL_SPDIFRX_IRQHandler()
1274 SPDIFRX_ReceiveDataFlow_IT(hspdif); in HAL_SPDIFRX_IRQHandler()
1280 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_CSRNE); in HAL_SPDIFRX_IRQHandler()
1281 SPDIFRX_ReceiveControlFlow_IT(hspdif); in HAL_SPDIFRX_IRQHandler()
1287 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_OVRIE); in HAL_SPDIFRX_IRQHandler()
1290 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_OVR; in HAL_SPDIFRX_IRQHandler()
1293 HAL_SPDIFRX_ErrorCallback(hspdif); in HAL_SPDIFRX_IRQHandler()
1299 __HAL_SPDIFRX_CLEAR_IT(hspdif, SPDIFRX_IT_PERRIE); in HAL_SPDIFRX_IRQHandler()
1302 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_PE; in HAL_SPDIFRX_IRQHandler()
1305 HAL_SPDIFRX_ErrorCallback(hspdif); in HAL_SPDIFRX_IRQHandler()
1314 __weak void HAL_SPDIFRX_RxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_RxHalfCpltCallback() argument
1317 UNUSED(hspdif); in HAL_SPDIFRX_RxHalfCpltCallback()
1329 __weak void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_RxCpltCallback() argument
1332 UNUSED(hspdif); in HAL_SPDIFRX_RxCpltCallback()
1344 __weak void HAL_SPDIFRX_CxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_CxHalfCpltCallback() argument
1347 UNUSED(hspdif); in HAL_SPDIFRX_CxHalfCpltCallback()
1359 __weak void HAL_SPDIFRX_CxCpltCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_CxCpltCallback() argument
1362 UNUSED(hspdif); in HAL_SPDIFRX_CxCpltCallback()
1374 __weak void HAL_SPDIFRX_ErrorCallback(SPDIFRX_HandleTypeDef *hspdif) in HAL_SPDIFRX_ErrorCallback() argument
1377 UNUSED(hspdif); in HAL_SPDIFRX_ErrorCallback()
1408 HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef const *const hspdif) in HAL_SPDIFRX_GetState() argument
1410 return hspdif->State; in HAL_SPDIFRX_GetState()
1418 uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef const *const hspdif) in HAL_SPDIFRX_GetError() argument
1420 return hspdif->ErrorCode; in HAL_SPDIFRX_GetError()
1434 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMARxCplt() local
1439 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_RXDMAEN); in SPDIFRX_DMARxCplt()
1440 hspdif->RxXferCount = 0; in SPDIFRX_DMARxCplt()
1441 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_DMARxCplt()
1444 hspdif->RxCpltCallback(hspdif); in SPDIFRX_DMARxCplt()
1446 HAL_SPDIFRX_RxCpltCallback(hspdif); in SPDIFRX_DMARxCplt()
1457 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMARxHalfCplt() local
1460 hspdif->RxHalfCpltCallback(hspdif); in SPDIFRX_DMARxHalfCplt()
1462 HAL_SPDIFRX_RxHalfCpltCallback(hspdif); in SPDIFRX_DMARxHalfCplt()
1474 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMACxCplt() local
1477 hspdif->Instance->CR &= (uint16_t)(~SPDIFRX_CR_CBDMAEN); in SPDIFRX_DMACxCplt()
1478 hspdif->CsXferCount = 0; in SPDIFRX_DMACxCplt()
1480 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_DMACxCplt()
1482 hspdif->CxCpltCallback(hspdif); in SPDIFRX_DMACxCplt()
1484 HAL_SPDIFRX_CxCpltCallback(hspdif); in SPDIFRX_DMACxCplt()
1495 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMACxHalfCplt() local
1498 hspdif->CxHalfCpltCallback(hspdif); in SPDIFRX_DMACxHalfCplt()
1500 HAL_SPDIFRX_CxHalfCpltCallback(hspdif); in SPDIFRX_DMACxHalfCplt()
1511 SPDIFRX_HandleTypeDef *hspdif = (SPDIFRX_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; in SPDIFRX_DMAError() local
1514 hspdif->Instance->CR &= (uint16_t)(~(SPDIFRX_CR_RXDMAEN | SPDIFRX_CR_CBDMAEN)); in SPDIFRX_DMAError()
1515 hspdif->RxXferCount = 0; in SPDIFRX_DMAError()
1517 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_DMAError()
1520 hspdif->ErrorCode |= HAL_SPDIFRX_ERROR_DMA; in SPDIFRX_DMAError()
1524 hspdif->ErrorCallback(hspdif); in SPDIFRX_DMAError()
1527 HAL_SPDIFRX_ErrorCallback(hspdif); in SPDIFRX_DMAError()
1536 static void SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif) in SPDIFRX_ReceiveDataFlow_IT() argument
1539 (*hspdif->pRxBuffPtr) = hspdif->Instance->DR; in SPDIFRX_ReceiveDataFlow_IT()
1540 hspdif->pRxBuffPtr++; in SPDIFRX_ReceiveDataFlow_IT()
1541 hspdif->RxXferCount--; in SPDIFRX_ReceiveDataFlow_IT()
1543 if (hspdif->RxXferCount == 0U) in SPDIFRX_ReceiveDataFlow_IT()
1546 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE | SPDIFRX_IT_PERRIE | SPDIFRX_IT_RXNE); in SPDIFRX_ReceiveDataFlow_IT()
1548 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_ReceiveDataFlow_IT()
1551 __HAL_UNLOCK(hspdif); in SPDIFRX_ReceiveDataFlow_IT()
1554 hspdif->RxCpltCallback(hspdif); in SPDIFRX_ReceiveDataFlow_IT()
1556 HAL_SPDIFRX_RxCpltCallback(hspdif); in SPDIFRX_ReceiveDataFlow_IT()
1566 static void SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif) in SPDIFRX_ReceiveControlFlow_IT() argument
1569 (*hspdif->pCsBuffPtr) = hspdif->Instance->CSR; in SPDIFRX_ReceiveControlFlow_IT()
1570 hspdif->pCsBuffPtr++; in SPDIFRX_ReceiveControlFlow_IT()
1571 hspdif->CsXferCount--; in SPDIFRX_ReceiveControlFlow_IT()
1573 if (hspdif->CsXferCount == 0U) in SPDIFRX_ReceiveControlFlow_IT()
1576 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in SPDIFRX_ReceiveControlFlow_IT()
1578 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_ReceiveControlFlow_IT()
1581 __HAL_UNLOCK(hspdif); in SPDIFRX_ReceiveControlFlow_IT()
1584 hspdif->CxCpltCallback(hspdif); in SPDIFRX_ReceiveControlFlow_IT()
1586 HAL_SPDIFRX_CxCpltCallback(hspdif); in SPDIFRX_ReceiveControlFlow_IT()
1600 static HAL_StatusTypeDef SPDIFRX_WaitOnFlagUntilTimeout(SPDIFRX_HandleTypeDef *hspdif, uint32_t Fla… in SPDIFRX_WaitOnFlagUntilTimeout() argument
1604 while (__HAL_SPDIFRX_GET_FLAG(hspdif, Flag) == Status) in SPDIFRX_WaitOnFlagUntilTimeout()
1613 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_RXNE); in SPDIFRX_WaitOnFlagUntilTimeout()
1614 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_CSRNE); in SPDIFRX_WaitOnFlagUntilTimeout()
1615 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_PERRIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1616 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_OVRIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1617 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SBLKIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1618 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_SYNCDIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1619 __HAL_SPDIFRX_DISABLE_IT(hspdif, SPDIFRX_IT_IFEIE); in SPDIFRX_WaitOnFlagUntilTimeout()
1621 hspdif->State = HAL_SPDIFRX_STATE_READY; in SPDIFRX_WaitOnFlagUntilTimeout()
1624 __HAL_UNLOCK(hspdif); in SPDIFRX_WaitOnFlagUntilTimeout()