+++ /dev/null
-/**\r
- ******************************************************************************\r
- * @file stm32f7xx_hal_spdifrx.h\r
- * @author MCD Application Team\r
- * @version V0.3.0\r
- * @date 06-March-2015\r
- * @brief Header file of SPDIFRX HAL module.\r
- ******************************************************************************\r
- * @attention\r
- *\r
- * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2>\r
- *\r
- * Redistribution and use in source and binary forms, with or without modification,\r
- * are permitted provided that the following conditions are met:\r
- * 1. Redistributions of source code must retain the above copyright notice,\r
- * this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright notice,\r
- * this list of conditions and the following disclaimer in the documentation\r
- * and/or other materials provided with the distribution.\r
- * 3. Neither the name of STMicroelectronics nor the names of its contributors\r
- * may be used to endorse or promote products derived from this software\r
- * without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\r
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\r
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\r
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- ******************************************************************************\r
- */ \r
-\r
-/* Define to prevent recursive inclusion -------------------------------------*/\r
-#ifndef __STM32F7xx_HAL_SPDIFRX_H\r
-#define __STM32F7xx_HAL_SPDIFRX_H\r
-\r
-#ifdef __cplusplus\r
- extern "C" {\r
-#endif\r
-\r
-/* Includes ------------------------------------------------------------------*/\r
-#include "stm32f7xx_hal_def.h" \r
-\r
-/** @addtogroup STM32F7xx_HAL_Driver\r
- * @{\r
- */\r
-\r
-/** @addtogroup SPDIFRX\r
- * @{\r
- */ \r
-\r
-/* Exported types ------------------------------------------------------------*/ \r
-/** @defgroup SPDIFRX_Exported_Types SPDIFRX Exported Types\r
- * @{\r
- */\r
-\r
-/** \r
- * @brief SPDIFRX Init structure definition \r
- */\r
-typedef struct\r
-{\r
- uint32_t InputSelection; /*!< Specifies the SPDIF input selection.\r
- This parameter can be a value of @ref SPDIFRX_Input_Selection */\r
-\r
- uint32_t Retries; /*!< Specifies the Maximum allowed re-tries during synchronization phase.\r
- This parameter can be a value of @ref SPDIFRX_Max_Retries */\r
-\r
- uint32_t WaitForActivity; /*!< Specifies the wait for activity on SPDIF selected input.\r
- This parameter can be a value of @ref SPDIFRX_Wait_For_Activity. */\r
-\r
- uint32_t ChannelSelection; /*!< Specifies whether the control flow will take the channel status from channel A or B.\r
- This parameter can be a value of @ref SPDIFRX_Channel_Selection */\r
-\r
- uint32_t DataFormat; /*!< Specifies the Data samples format (LSB, MSB, ...).\r
- This parameter can be a value of @ref SPDIFRX_Data_Format */\r
- \r
- uint32_t StereoMode; /*!< Specifies whether the peripheral is in stereo or mono mode.\r
- This parameter can be a value of @ref SPDIFRX_Stereo_Mode */\r
-\r
- uint32_t PreambleTypeMask; /*!< Specifies whether The preamble type bits are copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_PT_Mask */\r
-\r
- uint32_t ChannelStatusMask; /*!< Specifies whether the channel status and user bits are copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_ChannelStatus_Mask */\r
- \r
- uint32_t ValidityBitMask; /*!< Specifies whether the validity bit is copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_V_Mask */ \r
- \r
- uint32_t ParityErrorMask; /*!< Specifies whether the parity error bit is copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_PE_Mask */\r
- \r
-}SPDIFRX_InitTypeDef;\r
-\r
-/** \r
- * @brief SPDIFRX SetDataFormat structure definition \r
- */\r
-typedef struct\r
-{\r
- uint32_t DataFormat; /*!< Specifies the Data samples format (LSB, MSB, ...).\r
- This parameter can be a value of @ref SPDIFRX_Data_Format */\r
- \r
- uint32_t StereoMode; /*!< Specifies whether the peripheral is in stereo or mono mode.\r
- This parameter can be a value of @ref SPDIFRX_Stereo_Mode */\r
-\r
- uint32_t PreambleTypeMask; /*!< Specifies whether The preamble type bits are copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_PT_Mask */\r
-\r
- uint32_t ChannelStatusMask; /*!< Specifies whether the channel status and user bits are copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_ChannelStatus_Mask */\r
- \r
- uint32_t ValidityBitMask; /*!< Specifies whether the validity bit is copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_V_Mask */ \r
- \r
- uint32_t ParityErrorMask; /*!< Specifies whether the parity error bit is copied or not into the received frame.\r
- This parameter can be a value of @ref SPDIFRX_PE_Mask */\r
- \r
-}SPDIFRX_SetDataFormatTypeDef;\r
-\r
-/** \r
- * @brief HAL State structures definition \r
- */ \r
-typedef enum\r
-{\r
- HAL_SPDIFRX_STATE_RESET = 0x00, /*!< SPDIFRX not yet initialized or disabled */\r
- HAL_SPDIFRX_STATE_READY = 0x01, /*!< SPDIFRX initialized and ready for use */\r
- HAL_SPDIFRX_STATE_BUSY = 0x02, /*!< SPDIFRX internal process is ongoing */ \r
- HAL_SPDIFRX_STATE_BUSY_RX = 0x03, /*!< SPDIFRX internal Data Flow RX process is ongoing */ \r
- HAL_SPDIFRX_STATE_BUSY_CX = 0x04, /*!< SPDIFRX internal Control Flow RX process is ongoing */ \r
- HAL_SPDIFRX_STATE_ERROR = 0x07 /*!< SPDIFRX error state */ \r
-}HAL_SPDIFRX_StateTypeDef;\r
-\r
-/** \r
- * @brief SPDIFRX handle Structure definition \r
- */\r
-typedef struct\r
-{\r
- SPDIFRX_TypeDef *Instance; /* SPDIFRX registers base address */\r
-\r
- SPDIFRX_InitTypeDef Init; /* SPDIFRX communication parameters */\r
- \r
- uint32_t *pRxBuffPtr; /* Pointer to SPDIFRX Rx transfer buffer */\r
- \r
- uint32_t *pCsBuffPtr; /* Pointer to SPDIFRX Cx transfer buffer */\r
- \r
- __IO uint16_t RxXferSize; /* SPDIFRX Rx transfer size */\r
- \r
- __IO uint16_t RxXferCount; /* SPDIFRX Rx transfer counter \r
- (This field is initialized at the \r
- same value as transfer size at the \r
- beginning of the transfer and \r
- decremented when a sample is received. \r
- NbSamplesReceived = RxBufferSize-RxBufferCount) */\r
- \r
- __IO uint16_t CsXferSize; /* SPDIFRX Rx transfer size */\r
- \r
- __IO uint16_t CsXferCount; /* SPDIFRX Rx transfer counter \r
- (This field is initialized at the \r
- same value as transfer size at the \r
- beginning of the transfer and \r
- decremented when a sample is received. \r
- NbSamplesReceived = RxBufferSize-RxBufferCount) */\r
- \r
- DMA_HandleTypeDef *hdmaCsRx; /* SPDIFRX EC60958_channel_status and user_information DMA handle parameters */\r
-\r
- DMA_HandleTypeDef *hdmaDrRx; /* SPDIFRX Rx DMA handle parameters */\r
- \r
- __IO HAL_LockTypeDef Lock; /* SPDIFRX locking object */\r
- \r
- __IO HAL_SPDIFRX_StateTypeDef State; /* SPDIFRX communication state */\r
-\r
- __IO uint32_t ErrorCode; /* SPDIFRX Error code */\r
-\r
-}SPDIFRX_HandleTypeDef;\r
-/**\r
- * @}\r
- */\r
-\r
-/* Exported constants --------------------------------------------------------*/\r
-/** @defgroup SPDIFRX_Exported_Constants SPDIFRX Exported Constants\r
- * @{\r
- */\r
-/** @defgroup SPDIFRX_ErrorCode SPDIFRX Error Code\r
- * @{\r
- */ \r
-#define HAL_SPDIFRX_ERROR_NONE ((uint32_t)0x00000000) /*!< No error */\r
-#define HAL_SPDIFRX_ERROR_TIMEOUT ((uint32_t)0x00000001) /*!< Timeout error */ \r
-#define HAL_SPDIFRX_ERROR_OVR ((uint32_t)0x00000002) /*!< OVR error */\r
-#define HAL_SPDIFRX_ERROR_PE ((uint32_t)0x00000004) /*!< Parity error */\r
-#define HAL_SPDIFRX_ERROR_DMA ((uint32_t)0x00000008) /*!< DMA transfer error */\r
-#define HAL_SPDIFRX_ERROR_UNKNOWN ((uint32_t)0x00000010) /*!< Unknown Error error */ \r
-/**\r
- * @}\r
- */\r
- \r
-/** @defgroup SPDIFRX_Input_Selection SPDIFRX Input Selection\r
- * @{\r
- */\r
-#define SPDIFRX_INPUT_IN0 ((uint32_t)0x00000000)\r
-#define SPDIFRX_INPUT_IN1 ((uint32_t)0x00010000) \r
-#define SPDIFRX_INPUT_IN2 ((uint32_t)0x00020000)\r
-#define SPDIFRX_INPUT_IN3 ((uint32_t)0x00030000)\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_Max_Retries SPDIFRX Maximum Retries\r
- * @{\r
- */\r
-#define SPDIFRX_MAXRETRIES_NONE ((uint32_t)0x00000000)\r
-#define SPDIFRX_MAXRETRIES_3 ((uint32_t)0x00001000) \r
-#define SPDIFRX_MAXRETRIES_15 ((uint32_t)0x00002000)\r
-#define SPDIFRX_MAXRETRIES_63 ((uint32_t)0x00003000)\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_Wait_For_Activity SPDIFRX Wait For Activity\r
- * @{\r
- */\r
-#define SPDIFRX_WAITFORACTIVITY_OFF ((uint32_t)0x00000000)\r
-#define SPDIFRX_WAITFORACTIVITY_ON ((uint32_t)SPDIFRX_CR_WFA)\r
-/**\r
- * @}\r
- */\r
- \r
-/** @defgroup SPDIFRX_PT_Mask SPDIFRX Preamble Type Mask\r
-* @{\r
-*/\r
-#define SPDIFRX_PREAMBLETYPEMASK_OFF ((uint32_t)0x00000000)\r
-#define SPDIFRX_PREAMBLETYPEMASK_ON ((uint32_t)SPDIFRX_CR_PTMSK)\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_ChannelStatus_Mask SPDIFRX Channel Status Mask\r
-* @{\r
-*/\r
-#define SPDIFRX_CHANNELSTATUS_OFF ((uint32_t)0x00000000) /* The channel status and user bits are copied into the SPDIF_DR */\r
-#define SPDIFRX_CHANNELSTATUS_ON ((uint32_t)SPDIFRX_CR_CUMSK) /* The channel status and user bits are not copied into the SPDIF_DR, zeros are written instead*/\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_V_Mask SPDIFRX Validity Mask\r
-* @{\r
-*/\r
-#define SPDIFRX_VALIDITYMASK_OFF ((uint32_t)0x00000000)\r
-#define SPDIFRX_VALIDITYMASK_ON ((uint32_t)SPDIFRX_CR_VMSK)\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_PE_Mask SPDIFRX Parity Error Mask\r
-* @{\r
-*/\r
-#define SPDIFRX_PARITYERRORMASK_OFF ((uint32_t)0x00000000)\r
-#define SPDIFRX_PARITYERRORMASK_ON ((uint32_t)SPDIFRX_CR_PMSK)\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_Channel_Selection SPDIFRX Channel Selection\r
- * @{\r
- */\r
-#define SPDIFRX_CHANNEL_A ((uint32_t)0x00000000)\r
-#define SPDIFRX_CHANNEL_B ((uint32_t)SPDIFRX_CR_CHSEL)\r
-/**\r
- * @}\r
- */\r
-\r
-/** @defgroup SPDIFRX_Data_Format SPDIFRX Data Format\r
- * @{\r
- */\r
-#define SPDIFRX_DATAFORMAT_LSB ((uint32_t)0x00000000)\r
-#define SPDIFRX_DATAFORMAT_MSB ((uint32_t)0x00000010)\r
-#define SPDIFRX_DATAFORMAT_32BITS ((uint32_t)0x00000020)\r
-/**\r
- * @}\r
- */ \r
-\r
-/** @defgroup SPDIFRX_Stereo_Mode SPDIFRX Stereo Mode\r
- * @{\r
- */\r
-#define SPDIFRX_STEREOMODE_DISABLE ((uint32_t)0x00000000)\r
-#define SPDIFRX_STEREOMODE_ENABLE ((uint32_t)SPDIFRX_CR_RXSTEO)\r
-/**\r
- * @}\r
- */ \r
-\r
-/** @defgroup SPDIFRX_State SPDIFRX State\r
- * @{\r
- */\r
-\r
-#define SPDIFRX_STATE_IDLE ((uint32_t)0xFFFFFFFC)\r
-#define SPDIFRX_STATE_SYNC ((uint32_t)0x00000001)\r
-#define SPDIFRX_STATE_RCV ((uint32_t)SPDIFRX_CR_SPDIFEN)\r
-/**\r
- * @}\r
- */\r
- \r
-/** @defgroup SPDIFRX_Interrupts_Definition SPDIFRX Interrupts Definition\r
- * @{\r
- */\r
-#define SPDIFRX_IT_RXNE ((uint32_t)SPDIFRX_IMR_RXNEIE)\r
-#define SPDIFRX_IT_CSRNE ((uint32_t)SPDIFRX_IMR_CSRNEIE)\r
-#define SPDIFRX_IT_PERRIE ((uint32_t)SPDIFRX_IMR_PERRIE)\r
-#define SPDIFRX_IT_OVRIE ((uint32_t)SPDIFRX_IMR_OVRIE)\r
-#define SPDIFRX_IT_SBLKIE ((uint32_t)SPDIFRX_IMR_SBLKIE)\r
-#define SPDIFRX_IT_SYNCDIE ((uint32_t)SPDIFRX_IMR_SYNCDIE)\r
-#define SPDIFRX_IT_IFEIE ((uint32_t)SPDIFRX_IMR_IFEIE )\r
-/**\r
- * @}\r
- */\r
- \r
-/** @defgroup SPDIFRX_Flags_Definition SPDIFRX Flags Definition\r
- * @{\r
- */\r
-#define SPDIFRX_FLAG_RXNE ((uint32_t)SPDIFRX_SR_RXNE)\r
-#define SPDIFRX_FLAG_CSRNE ((uint32_t)SPDIFRX_SR_CSRNE)\r
-#define SPDIFRX_FLAG_PERR ((uint32_t)SPDIFRX_SR_PERR)\r
-#define SPDIFRX_FLAG_OVR ((uint32_t)SPDIFRX_SR_OVR)\r
-#define SPDIFRX_FLAG_SBD ((uint32_t)SPDIFRX_SR_SBD)\r
-#define SPDIFRX_FLAG_SYNCD ((uint32_t)SPDIFRX_SR_SYNCD)\r
-#define SPDIFRX_FLAG_FERR ((uint32_t)SPDIFRX_SR_FERR)\r
-#define SPDIFRX_FLAG_SERR ((uint32_t)SPDIFRX_SR_SERR)\r
-#define SPDIFRX_FLAG_TERR ((uint32_t)SPDIFRX_SR_TERR)\r
-/**\r
- * @}\r
- */\r
-\r
-/**\r
- * @}\r
- */ \r
- \r
-/* Exported macros -----------------------------------------------------------*/\r
-/** @defgroup SPDIFRX_Exported_macros SPDIFRX Exported Macros\r
- * @{\r
- */\r
-\r
-/** @brief Reset SPDIFRX handle state\r
- * @param __HANDLE__: SPDIFRX handle.\r
- * @retval None\r
- */\r
-#define __HAL_SPDIFRX_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = (uint16_t)SPDIFRX_CR_SPDIFEN)\r
-\r
-/** @brief Disable the specified SPDIFRX peripheral (IDLE State).\r
- * @param __HANDLE__: specifies the SPDIFRX Handle. \r
- * @retval None\r
- */\r
-#define __HAL_SPDIFRX_IDLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= SPDIFRX_STATE_IDLE)\r
-\r
-/** @brief Enable the specified SPDIFRX peripheral (SYNC State).\r
- * @param __HANDLE__: specifies the SPDIFRX Handle. \r
- * @retval None\r
- */\r
-#define __HAL_SPDIFRX_SYNC(__HANDLE__) ((__HANDLE__)->Instance->CR |= SPDIFRX_STATE_SYNC)\r
-\r
-\r
-/** @brief Enable the specified SPDIFRX peripheral (RCV State).\r
- * @param __HANDLE__: specifies the SPDIFRX Handle. \r
- * @retval None\r
- */\r
-#define __HAL_SPDIFRX_RCV(__HANDLE__) ((__HANDLE__)->Instance->CR |= SPDIFRX_STATE_RCV)\r
-\r
-\r
-/** @brief Enable or disable the specified SPDIFRX interrupts.\r
- * @param __HANDLE__: specifies the SPDIFRX Handle.\r
- * @param __INTERRUPT__: specifies the interrupt source to enable or disable.\r
- * This parameter can be one of the following values:\r
- * @arg SPDIFRX_IT_RXNE\r
- * @arg SPDIFRX_IT_CSRNE\r
- * @arg SPDIFRX_IT_PERRIE\r
- * @arg SPDIFRX_IT_OVRIE\r
- * @arg SPDIFRX_IT_SBLKIE\r
- * @arg SPDIFRX_IT_SYNCDIE\r
- * @arg SPDIFRX_IT_IFEIE\r
- * @retval None\r
- */ \r
-#define __HAL_SPDIFRX_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IMR |= (__INTERRUPT__))\r
-#define __HAL_SPDIFRX_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->IMR &= (uint16_t)(~(__INTERRUPT__)))\r
- \r
-/** @brief Checks if the specified SPDIFRX interrupt source is enabled or disabled.\r
- * @param __HANDLE__: specifies the SPDIFRX Handle.\r
- * @param __INTERRUPT__: specifies the SPDIFRX interrupt source to check.\r
- * This parameter can be one of the following values:\r
- * @arg SPDIFRX_IT_RXNE\r
- * @arg SPDIFRX_IT_CSRNE\r
- * @arg SPDIFRX_IT_PERRIE\r
- * @arg SPDIFRX_IT_OVRIE\r
- * @arg SPDIFRX_IT_SBLKIE\r
- * @arg SPDIFRX_IT_SYNCDIE\r
- * @arg SPDIFRX_IT_IFEIE\r
- * @retval The new state of __IT__ (TRUE or FALSE).\r
- */\r
-#define __HAL_SPDIFRX_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->IMR & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)\r
-\r
-/** @brief Checks whether the specified SPDIFRX flag is set or not.\r
- * @param __HANDLE__: specifies the SPDIFRX Handle.\r
- * @param __FLAG__: specifies the flag to check.\r
- * This parameter can be one of the following values:\r
- * @arg SPDIFRX_FLAG_RXNE\r
- * @arg SPDIFRX_FLAG_CSRNE\r
- * @arg SPDIFRX_FLAG_PERR\r
- * @arg SPDIFRX_FLAG_OVR\r
- * @arg SPDIFRX_FLAG_SBD\r
- * @arg SPDIFRX_FLAG_SYNCD \r
- * @arg SPDIFRX_FLAG_FERR \r
- * @arg SPDIFRX_FLAG_SERR \r
- * @arg SPDIFRX_FLAG_TERR \r
- * @retval The new state of __FLAG__ (TRUE or FALSE).\r
- */\r
-#define __HAL_SPDIFRX_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))\r
-\r
-/** @brief Clears the specified SPDIFRX SR flag, in setting the proper IFCR register bit.\r
- * @param __HANDLE__: specifies the USART Handle.\r
- * @param __IT_CLEAR__: specifies the interrupt clear register flag that needs to be set\r
- * to clear the corresponding interrupt\r
- * This parameter can be one of the following values:\r
- * @arg SPDIFRX_FLAG_PERR\r
- * @arg SPDIFRX_FLAG_OVR\r
- * @arg SPDIFRX_SR_SBD\r
- * @arg SPDIFRX_SR_SYNCD\r
- * @retval None\r
- */\r
-#define __HAL_SPDIFRX_CLEAR_IT(__HANDLE__, __IT_CLEAR__) ((__HANDLE__)->Instance->IFCR = (uint32_t)(__IT_CLEAR__)) \r
- \r
-/**\r
- * @}\r
- */\r
- \r
-/* Exported functions --------------------------------------------------------*/\r
-/** @addtogroup SPDIFRX_Exported_Functions\r
- * @{\r
- */\r
- \r
-/** @addtogroup SPDIFRX_Exported_Functions_Group1\r
- * @{\r
- */\r
-/* Initialization/de-initialization functions **********************************/\r
-HAL_StatusTypeDef HAL_SPDIFRX_Init(SPDIFRX_HandleTypeDef *hspdif);\r
-HAL_StatusTypeDef HAL_SPDIFRX_DeInit (SPDIFRX_HandleTypeDef *hspdif);\r
-void HAL_SPDIFRX_MspInit(SPDIFRX_HandleTypeDef *hspdif);\r
-void HAL_SPDIFRX_MspDeInit(SPDIFRX_HandleTypeDef *hspdif);\r
-HAL_StatusTypeDef HAL_SPDIFRX_SetDataFormat(SPDIFRX_HandleTypeDef *hspdif, SPDIFRX_SetDataFormatTypeDef sDataFormat);\r
-/**\r
- * @}\r
- */\r
-\r
-/** @addtogroup SPDIFRX_Exported_Functions_Group2\r
- * @{\r
- */\r
-/* I/O operation functions ***************************************************/\r
- /* Blocking mode: Polling */\r
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout);\r
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size, uint32_t Timeout);\r
-\r
- /* Non-Blocking mode: Interrupt */\r
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);\r
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_IT(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);\r
-void HAL_SPDIFRX_IRQHandler(SPDIFRX_HandleTypeDef *hspdif);\r
-\r
-/* Non-Blocking mode: DMA */\r
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveControlFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);\r
-HAL_StatusTypeDef HAL_SPDIFRX_ReceiveDataFlow_DMA(SPDIFRX_HandleTypeDef *hspdif, uint32_t *pData, uint16_t Size);\r
-\r
-HAL_StatusTypeDef HAL_SPDIFRX_DMAStop(SPDIFRX_HandleTypeDef *hspdif);\r
-\r
-/* Callbacks used in non blocking modes (Interrupt and DMA) *******************/\r
-void HAL_SPDIFRX_RxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif);\r
-void HAL_SPDIFRX_RxCpltCallback(SPDIFRX_HandleTypeDef *hspdif);\r
-void HAL_SPDIFRX_ErrorCallback(SPDIFRX_HandleTypeDef *hspdif);\r
-void HAL_SPDIFRX_CxHalfCpltCallback(SPDIFRX_HandleTypeDef *hspdif);\r
-void HAL_SPDIFRX_CxCpltCallback(SPDIFRX_HandleTypeDef *hspdif);\r
-/**\r
- * @}\r
- */\r
-\r
-/** @addtogroup SPDIFRX_Exported_Functions_Group3\r
- * @{\r
- */\r
-/* Peripheral Control and State functions ************************************/\r
-HAL_SPDIFRX_StateTypeDef HAL_SPDIFRX_GetState(SPDIFRX_HandleTypeDef *hspdif);\r
-uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef *hspdif);\r
-/**\r
- * @}\r
- */\r
-\r
-/**\r
- * @}\r
- */ \r
-/* Private types -------------------------------------------------------------*/\r
-/* Private variables ---------------------------------------------------------*/\r
-/* Private constants ---------------------------------------------------------*/\r
-/* Private macros ------------------------------------------------------------*/\r
-/** @defgroup SPDIFRX_Private_Macros SPDIFRX Private Macros\r
- * @{\r
- */\r
-#define IS_SPDIFRX_INPUT_SELECT(INPUT) (((INPUT) == SPDIFRX_INPUT_IN1) || \\r
- ((INPUT) == SPDIFRX_INPUT_IN2) || \\r
- ((INPUT) == SPDIFRX_INPUT_IN3) || \\r
- ((INPUT) == SPDIFRX_INPUT_IN0))\r
-#define IS_SPDIFRX_MAX_RETRIES(RET) (((RET) == SPDIFRX_MAXRETRIES_NONE) || \\r
- ((RET) == SPDIFRX_MAXRETRIES_3) || \\r
- ((RET) == SPDIFRX_MAXRETRIES_15) || \\r
- ((RET) == SPDIFRX_MAXRETRIES_63))\r
-#define IS_SPDIFRX_WAIT_FOR_ACTIVITY(VAL) (((VAL) == SPDIFRX_WAITFORACTIVITY_ON) || \\r
- ((VAL) == SPDIFRX_WAITFORACTIVITY_OFF))\r
-#define IS_PREAMBLE_TYPE_MASK(VAL) (((VAL) == SPDIFRX_PREAMBLETYPEMASK_ON) || \\r
- ((VAL) == SPDIFRX_PREAMBLETYPEMASK_OFF))\r
-#define IS_VALIDITY_MASK(VAL) (((VAL) == SPDIFRX_VALIDITYMASK_OFF) || \\r
- ((VAL) == SPDIFRX_VALIDITYMASK_ON))\r
-#define IS_PARITY_ERROR_MASK(VAL) (((VAL) == SPDIFRX_PARITYERRORMASK_OFF) || \\r
- ((VAL) == SPDIFRX_PARITYERRORMASK_ON))\r
-#define IS_SPDIFRX_CHANNEL(CHANNEL) (((CHANNEL) == SPDIFRX_CHANNEL_A) || \\r
- ((CHANNEL) == SPDIFRX_CHANNEL_B))\r
-#define IS_SPDIFRX_DATA_FORMAT(FORMAT) (((FORMAT) == SPDIFRX_DATAFORMAT_LSB) || \\r
- ((FORMAT) == SPDIFRX_DATAFORMAT_MSB) || \\r
- ((FORMAT) == SPDIFRX_DATAFORMAT_32BITS))\r
-#define IS_STEREO_MODE(MODE) (((MODE) == SPDIFRX_STEREOMODE_DISABLE) || \\r
- ((MODE) == SPDIFRX_STEREOMODE_ENABLE))\r
- \r
-#define IS_CHANNEL_STATUS_MASK(VAL) (((VAL) == SPDIFRX_CHANNELSTATUS_ON) || \\r
- ((VAL) == SPDIFRX_CHANNELSTATUS_OFF))\r
-/** \r
- * @}\r
- */\r
-\r
-/* Private functions ---------------------------------------------------------*/\r
-/** @defgroup SPDIFRX_Private_Functions SPDIFRX Private Functions\r
- * @{\r
- */\r
-/**\r
- * @}\r
- */\r
- \r
-/**\r
- * @}\r
- */\r
-\r
-/**\r
- * @}\r
- */\r
- \r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-\r
-#endif /* __STM32F7xx_HAL_SPDIFRX_H */\r
-\r
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r