1 /**
2   ******************************************************************************
3   * @file    stm32l4xx_hal_sai_ex.h
4   * @author  MCD Application Team
5   * @brief   Header file of SAI HAL extended module.
6   ******************************************************************************
7   * @attention
8   *
9   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
10   *
11   * Redistribution and use in source and binary forms, with or without modification,
12   * are permitted provided that the following conditions are met:
13   *   1. Redistributions of source code must retain the above copyright notice,
14   *      this list of conditions and the following disclaimer.
15   *   2. Redistributions in binary form must reproduce the above copyright notice,
16   *      this list of conditions and the following disclaimer in the documentation
17   *      and/or other materials provided with the distribution.
18   *   3. Neither the name of STMicroelectronics nor the names of its contributors
19   *      may be used to endorse or promote products derived from this software
20   *      without specific prior written permission.
21   *
22   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   *
33   ******************************************************************************
34   */
35 
36 /* Define to prevent recursive inclusion -------------------------------------*/
37 #ifndef STM32L4xx_HAL_SAI_EX_H
38 #define STM32L4xx_HAL_SAI_EX_H
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 #if defined(STM32L4R5xx) || defined(STM32L4R7xx) || defined(STM32L4R9xx) || defined(STM32L4S5xx) || defined(STM32L4S7xx) || defined(STM32L4S9xx)
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32l4xx_hal_def.h"
48 
49 /** @addtogroup STM32L4xx_HAL_Driver
50   * @{
51   */
52 
53 /** @addtogroup SAIEx
54   * @{
55   */
56 
57 /* Exported types ------------------------------------------------------------*/
58 /** @defgroup SAIEx_Exported_Types SAIEx Exported Types
59   * @{
60   */
61 
62 /**
63   * @brief  PDM microphone delay structure definition
64   */
65 typedef struct
66 {
67   uint32_t MicPair;     /*!< Specifies which pair of microphones is selected.
68                              This parameter must be a number between Min_Data = 1 and Max_Data = 3. */
69 
70   uint32_t LeftDelay;   /*!< Specifies the delay in PDM clock unit to apply on left microphone.
71                              This parameter must be a number between Min_Data = 0 and Max_Data = 7. */
72 
73   uint32_t RightDelay;  /*!< Specifies the delay in PDM clock unit to apply on right microphone.
74                              This parameter must be a number between Min_Data = 0 and Max_Data = 7. */
75 } SAIEx_PdmMicDelayParamTypeDef;
76 
77 /**
78   * @}
79   */
80 
81 /* Exported constants --------------------------------------------------------*/
82 /* Exported macros -----------------------------------------------------------*/
83 /* Exported functions --------------------------------------------------------*/
84 /** @addtogroup SAIEx_Exported_Functions SAIEx Extended Exported Functions
85   * @{
86   */
87 
88 /** @addtogroup SAIEx_Exported_Functions_Group1 Peripheral Control functions
89   * @{
90   */
91 HAL_StatusTypeDef HAL_SAIEx_ConfigPdmMicDelay(SAI_HandleTypeDef *hsai, SAIEx_PdmMicDelayParamTypeDef *pdmMicDelay);
92 /**
93   * @}
94   */
95 
96 /**
97   * @}
98   */
99 
100 /* Private macros ------------------------------------------------------------*/
101 /** @addtogroup SAIEx_Private_Macros SAIEx Extended Private Macros
102   * @{
103   */
104 #define IS_SAI_PDM_MIC_DELAY(VALUE)   ((VALUE) <= 7U)
105 /**
106   * @}
107   */
108 
109 /**
110   * @}
111   */
112 
113 /**
114   * @}
115   */
116 
117 #endif /* STM32L4R5xx || STM32L4R7xx || STM32L4R9xx || STM32L4S5xx || STM32L4S7xx || STM32L4S9xx */
118 
119 #ifdef __cplusplus
120 }
121 #endif
122 
123 #endif /* STM32L4xx_HAL_SAI_EX_H */
124 
125 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
126