1 /**
2   ******************************************************************************
3   * @file    stm32c0xx_ll_dmamux.h
4   * @author  MCD Application Team
5   * @brief   Header file of DMAMUX LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2022 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32C0xx_LL_DMAMUX_H
21 #define STM32C0xx_LL_DMAMUX_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32c0xx.h"
29 
30 /** @addtogroup STM32C0xx_LL_Driver
31   * @{
32   */
33 
34 #if defined (DMAMUX1)
35 
36 /** @defgroup DMAMUX_LL DMAMUX
37   * @{
38   */
39 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /* Private constants ---------------------------------------------------------*/
43 /** @defgroup DMAMUX_LL_Private_Constants DMAMUX Private Constants
44   * @{
45   */
46 /* Define used to get DMAMUX CCR register size */
47 #define DMAMUX_CCR_SIZE                   0x00000004UL
48 
49 /* Define used to get DMAMUX RGCR register size */
50 #define DMAMUX_RGCR_SIZE                  0x00000004UL
51 /**
52   * @}
53   */
54 
55 /* Private macros ------------------------------------------------------------*/
56 /* Exported types ------------------------------------------------------------*/
57 /* Exported constants --------------------------------------------------------*/
58 /** @defgroup DMAMUX_LL_Exported_Constants DMAMUX Exported Constants
59   * @{
60   */
61 /** @defgroup DMAMUX_LL_EC_CLEAR_FLAG Clear Flags Defines
62   * @brief    Flags defines which can be used with LL_DMAMUX_WriteReg function
63   * @{
64   */
65 #define LL_DMAMUX_CFR_CSOF0               DMAMUX_CFR_CSOF0       /*!< Synchronization Event Overrun Flag Channel 0 */
66 #define LL_DMAMUX_CFR_CSOF1               DMAMUX_CFR_CSOF1       /*!< Synchronization Event Overrun Flag Channel 1 */
67 #define LL_DMAMUX_CFR_CSOF2               DMAMUX_CFR_CSOF2       /*!< Synchronization Event Overrun Flag Channel 2 */
68 #if defined(DMAMUX1_Channel3)
69 #define LL_DMAMUX_CFR_CSOF3               DMAMUX_CFR_CSOF3       /*!< Synchronization Event Overrun Flag Channel 3 */
70 #endif /* DMAMUX1_Channel3 */
71 #if defined(DMAMUX1_Channel4)
72 #define LL_DMAMUX_CFR_CSOF4               DMAMUX_CFR_CSOF4       /*!< Synchronization Event Overrun Flag Channel 4 */
73 #endif /* DMAMUX1_Channel4 */
74 
75 #define LL_DMAMUX_RGCFR_RGCOF0            DMAMUX_RGCFR_COF0      /*!< Request Generator 0 Trigger Event Overrun Flag */
76 #define LL_DMAMUX_RGCFR_RGCOF1            DMAMUX_RGCFR_COF1      /*!< Request Generator 1 Trigger Event Overrun Flag */
77 #define LL_DMAMUX_RGCFR_RGCOF2            DMAMUX_RGCFR_COF2      /*!< Request Generator 2 Trigger Event Overrun Flag */
78 #if defined(DMAMUX1_Channel3)
79 #define LL_DMAMUX_RGCFR_RGCOF3            DMAMUX_RGCFR_COF3      /*!< Request Generator 3 Trigger Event Overrun Flag */
80 #endif /* DMAMUX1_Channel3 */
81 
82 /**
83   * @}
84   */
85 
86 /** @defgroup DMAMUX_LL_EC_GET_FLAG Get Flags Defines
87   * @brief    Flags defines which can be used with LL_DMAMUX_ReadReg function
88   * @{
89   */
90 #define LL_DMAMUX_CSR_SOF0                DMAMUX_CSR_SOF0       /*!< Synchronization Event Overrun Flag Channel 0  */
91 #define LL_DMAMUX_CSR_SOF1                DMAMUX_CSR_SOF1       /*!< Synchronization Event Overrun Flag Channel 1  */
92 #define LL_DMAMUX_CSR_SOF2                DMAMUX_CSR_SOF2       /*!< Synchronization Event Overrun Flag Channel 2  */
93 #if defined(DMAMUX1_Channel3)
94 #define LL_DMAMUX_CSR_SOF3                DMAMUX_CSR_SOF3       /*!< Synchronization Event Overrun Flag Channel 3  */
95 #endif /* DMAMUX1_Channel3 */
96 #if defined(DMAMUX1_Channel4)
97 #define LL_DMAMUX_CSR_SOF4                DMAMUX_CSR_SOF4       /*!< Synchronization Event Overrun Flag Channel 4  */
98 #endif /* DMAMUX1_Channel4 */
99 
100 #define LL_DMAMUX_RGSR_RGOF0              DMAMUX_RGSR_OF0       /*!< Request Generator 0 Trigger Event Overrun Flag */
101 #define LL_DMAMUX_RGSR_RGOF1              DMAMUX_RGSR_OF1       /*!< Request Generator 1 Trigger Event Overrun Flag */
102 #define LL_DMAMUX_RGSR_RGOF2              DMAMUX_RGSR_OF2       /*!< Request Generator 2 Trigger Event Overrun Flag */
103 #if defined(DMAMUX1_Channel3)
104 #define LL_DMAMUX_RGSR_RGOF3              DMAMUX_RGSR_OF3       /*!< Request Generator 3 Trigger Event Overrun Flag */
105 #endif /* DMAMUX1_Channel3 */
106 
107 /**
108   * @}
109   */
110 
111 /** @defgroup DMAMUX_LL_EC_IT IT Defines
112   * @brief    IT defines which can be used with LL_DMA_ReadReg and  LL_DMAMUX_WriteReg functions
113   * @{
114   */
115 #define LL_DMAMUX_CCR_SOIE                DMAMUX_CxCR_SOIE     /*!< Synchronization Event Overrun Interrupt */
116 #define LL_DMAMUX_RGCR_RGOIE              DMAMUX_RGxCR_OIE     /*!< Request Generation Trigger Event Overrun Interrupt*/
117 /**
118   * @}
119   */
120 
121 /** @defgroup DMAMUX_LL_EC_REQUEST Transfer request
122   * @{
123   */
124 #define LL_DMAMUX_REQ_MEM2MEM             0x00000000U  /*!< memory to memory transfer     */
125 #define LL_DMAMUX_REQ_GENERATOR0          0x00000001U  /*!< DMAMUX request generator 0    */
126 #define LL_DMAMUX_REQ_GENERATOR1          0x00000002U  /*!< DMAMUX request generator 1    */
127 #define LL_DMAMUX_REQ_GENERATOR2          0x00000003U  /*!< DMAMUX request generator 2    */
128 #define LL_DMAMUX_REQ_GENERATOR3          0x00000004U  /*!< DMAMUX request generator 3    */
129 #define LL_DMAMUX_REQ_ADC1                0x00000005U  /*!< DMAMUX ADC1 request           */
130 #define LL_DMAMUX_REQ_I2C1_RX             0x0000000AU  /*!< DMAMUX I2C1 RX request        */
131 #define LL_DMAMUX_REQ_I2C1_TX             0x0000000BU  /*!< DMAMUX I2C1 TX request        */
132 #if defined(I2C2)
133 #define LL_DMAMUX_REQ_I2C2_RX             0x0000000CU  /*!< DMAMUX I2C2 RX request        */
134 #define LL_DMAMUX_REQ_I2C2_TX             0x0000000DU  /*!< DMAMUX I2C2 TX request        */
135 #endif /* I2C2 */
136 #define LL_DMAMUX_REQ_SPI1_RX             0x00000010U  /*!< DMAMUX SPI1 RX request        */
137 #define LL_DMAMUX_REQ_SPI1_TX             0x00000011U  /*!< DMAMUX SPI1 TX request        */
138 #if defined(SPI2)
139 #define LL_DMAMUX_REQ_SPI2_RX             0x00000012U  /*!< DMAMUX SPI2 RX request        */
140 #define LL_DMAMUX_REQ_SPI2_TX             0x00000013U  /*!< DMAMUX SPI2 TX request        */
141 #endif /* SPI2 */
142 #define LL_DMAMUX_REQ_TIM1_CH1            0x00000014U  /*!< DMAMUX TIM1 CH1 request       */
143 #define LL_DMAMUX_REQ_TIM1_CH2            0x00000015U  /*!< DMAMUX TIM1 CH2 request       */
144 #define LL_DMAMUX_REQ_TIM1_CH3            0x00000016U  /*!< DMAMUX TIM1 CH3 request       */
145 #define LL_DMAMUX_REQ_TIM1_CH4            0x00000017U  /*!< DMAMUX TIM1 CH4 request       */
146 #define LL_DMAMUX_REQ_TIM1_TRIG_COM       0x00000018U  /*!< DMAMUX TIM1 TRIG COM request  */
147 #define LL_DMAMUX_REQ_TIM1_UP             0x00000019U  /*!< DMAMUX TIM1 UP request        */
148 #if defined(TIM2)
149 #define LL_DMAMUX_REQ_TIM2_CH1            0x0000001AU  /*!< DMAMUX TIM2 CH1 request       */
150 #define LL_DMAMUX_REQ_TIM2_CH2            0x0000001BU  /*!< DMAMUX TIM2 CH2 request       */
151 #define LL_DMAMUX_REQ_TIM2_CH3            0x0000001CU  /*!< DMAMUX TIM2 CH3 request       */
152 #define LL_DMAMUX_REQ_TIM2_CH4            0x0000001DU  /*!< DMAMUX TIM2 CH4 request       */
153 #define LL_DMAMUX_REQ_TIM2_TRIG           0x0000001EU  /*!< DMAMUX TIM2 TRIG request      */
154 #define LL_DMAMUX_REQ_TIM2_UP             0x0000001FU  /*!< DMAMUX TIM2 UP request        */
155 #endif /* TIM2 */
156 #define LL_DMAMUX_REQ_TIM3_CH1            0x00000020U  /*!< DMAMUX TIM3 CH1 request       */
157 #define LL_DMAMUX_REQ_TIM3_CH2            0x00000021U  /*!< DMAMUX TIM3 CH2 request       */
158 #define LL_DMAMUX_REQ_TIM3_CH3            0x00000022U  /*!< DMAMUX TIM3 CH3 request       */
159 #define LL_DMAMUX_REQ_TIM3_CH4            0x00000023U  /*!< DMAMUX TIM3 CH4 request       */
160 #define LL_DMAMUX_REQ_TIM3_TRIG           0x00000024U  /*!< DMAMUX TIM3 TRIG request      */
161 #define LL_DMAMUX_REQ_TIM3_UP             0x00000025U  /*!< DMAMUX TIM3 UP request        */
162 #define LL_DMAMUX_REQ_TIM16_CH1           0x0000002CU  /*!< DMAMUX TIM16 CH1 request      */
163 #define LL_DMAMUX_REQ_TIM16_TRIG_COM      0x0000002DU  /*!< DMAMUX TIM16 TRIG COM request */
164 #define LL_DMAMUX_REQ_TIM16_UP            0x0000002EU  /*!< DMAMUX TIM16 UP request       */
165 #define LL_DMAMUX_REQ_TIM17_CH1           0x0000002FU  /*!< DMAMUX TIM17 CH1 request      */
166 #define LL_DMAMUX_REQ_TIM17_TRIG_COM      0x00000030U  /*!< DMAMUX TIM17 TRIG COM request */
167 #define LL_DMAMUX_REQ_TIM17_UP            0x00000031U  /*!< DMAMUX TIM17 UP request       */
168 #define LL_DMAMUX_REQ_USART1_RX           0x00000032U  /*!< DMAMUX USART1 RX request      */
169 #define LL_DMAMUX_REQ_USART1_TX           0x00000033U  /*!< DMAMUX USART1 TX request      */
170 #define LL_DMAMUX_REQ_USART2_RX           0x00000034U  /*!< DMAMUX USART2 RX request      */
171 #define LL_DMAMUX_REQ_USART2_TX           0x00000035U  /*!< DMAMUX USART2 TX request      */
172 /**
173   * @}
174   */
175 
176 /** @defgroup DMAMUX_LL_EC_CHANNEL DMAMUX Channel
177   * @{
178   */
179 #define LL_DMAMUX_CHANNEL_0               0x00000000U             /*!< DMAMUX Channel 0 connected to DMA1 Channel 1  */
180 #define LL_DMAMUX_CHANNEL_1               0x00000001U             /*!< DMAMUX Channel 1 connected to DMA1 Channel 2  */
181 #define LL_DMAMUX_CHANNEL_2               0x00000002U             /*!< DMAMUX Channel 2 connected to DMA1 Channel 3  */
182 #if defined(DMAMUX1_Channel3)
183 #define LL_DMAMUX_CHANNEL_3               0x00000003U             /*!< DMAMUX Channel 3 connected to DMA1 Channel 4  */
184 #endif /* DMAMUX1_Channel3 */
185 #if defined(DMAMUX1_Channel4)
186 #define LL_DMAMUX_CHANNEL_4               0x00000004U             /*!< DMAMUX Channel 4 connected to DMA1 Channel 5  */
187 #endif /* DMAMUX1_Channel4 */
188 /**
189   * @}
190   */
191 
192 /** @defgroup DMAMUX_LL_EC_SYNC_NO Synchronization Signal Polarity
193   * @{
194   */
195 #define LL_DMAMUX_SYNC_NO_EVENT            0x00000000U                               /*!< All requests are blocked */
196 #define LL_DMAMUX_SYNC_POL_RISING          DMAMUX_CxCR_SPOL_0                        /*!< Synchronization on event
197                                                                                           on rising edge */
198 #define LL_DMAMUX_SYNC_POL_FALLING         DMAMUX_CxCR_SPOL_1                        /*!< Synchronization on event
199                                                                                           on falling edge */
200 #define LL_DMAMUX_SYNC_POL_RISING_FALLING  (DMAMUX_CxCR_SPOL_0 | DMAMUX_CxCR_SPOL_1) /*!< Synchronization on event on
201                                                                                           rising and falling edge */
202 /**
203   * @}
204   */
205 
206 /** @defgroup DMAMUX_LL_EC_SYNC_EVT Synchronization Signal Event
207   * @{
208   */
209 #define LL_DMAMUX_SYNC_EXTI_LINE0         0x00000000U                                                                                     /*!< Synchronization signal from EXTI Line0  */
210 #define LL_DMAMUX_SYNC_EXTI_LINE1         DMAMUX_CxCR_SYNC_ID_0                                                                           /*!< Synchronization signal from EXTI Line1  */
211 #define LL_DMAMUX_SYNC_EXTI_LINE2         DMAMUX_CxCR_SYNC_ID_1                                                                           /*!< Synchronization signal from EXTI Line2  */
212 #define LL_DMAMUX_SYNC_EXTI_LINE3         (DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0)                                                 /*!< Synchronization signal from EXTI Line3  */
213 #define LL_DMAMUX_SYNC_EXTI_LINE4         DMAMUX_CxCR_SYNC_ID_2                                                                           /*!< Synchronization signal from EXTI Line4  */
214 #define LL_DMAMUX_SYNC_EXTI_LINE5         (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0)                                                 /*!< Synchronization signal from EXTI Line5  */
215 #define LL_DMAMUX_SYNC_EXTI_LINE6         (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1)                                                 /*!< Synchronization signal from EXTI Line6  */
216 #define LL_DMAMUX_SYNC_EXTI_LINE7         (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0)                         /*!< Synchronization signal from EXTI Line7  */
217 #define LL_DMAMUX_SYNC_EXTI_LINE8         DMAMUX_CxCR_SYNC_ID_3                                                                           /*!< Synchronization signal from EXTI Line8  */
218 #define LL_DMAMUX_SYNC_EXTI_LINE9         (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_0)                                                 /*!< Synchronization signal from EXTI Line9  */
219 #define LL_DMAMUX_SYNC_EXTI_LINE10        (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1)                                                 /*!< Synchronization signal from EXTI Line10  */
220 #define LL_DMAMUX_SYNC_EXTI_LINE11        (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0)                         /*!< Synchronization signal from EXTI Line11  */
221 #define LL_DMAMUX_SYNC_EXTI_LINE12        (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2)                                                 /*!< Synchronization signal from EXTI Line12  */
222 #define LL_DMAMUX_SYNC_EXTI_LINE13        (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0)                         /*!< Synchronization signal from EXTI Line1 3 */
223 #define LL_DMAMUX_SYNC_EXTI_LINE14        (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1)                         /*!< Synchronization signal from EXTI Line1 4 */
224 #define LL_DMAMUX_SYNC_EXTI_LINE15        (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line1 5 */
225 #define LL_DMAMUX_SYNC_DMAMUX_CH0         DMAMUX_CxCR_SYNC_ID_4                                                                           /*!< Synchronization signal from DMAMUX channel0 Event */
226 #define LL_DMAMUX_SYNC_DMAMUX_CH1         (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_0)                                                 /*!< Synchronization signal from DMAMUX channel1 Event */
227 #define LL_DMAMUX_SYNC_DMAMUX_CH2         (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1)                                                 /*!< Synchronization signal from DMAMUX channel2 Event */
228 #define LL_DMAMUX_SYNC_DMAMUX_CH3         (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0)                         /*!< Synchronization signal from DMAMUX channel3 Event */
229 #define LL_DMAMUX_SYNC_TIM14_OC           (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0)                         /*!< Synchronization signal from TIM14 OC */
230 /**
231   * @}
232   */
233 
234 /** @defgroup DMAMUX_LL_EC_REQUEST_GENERATOR Request Generator Channel
235   * @{
236   */
237 #define LL_DMAMUX_REQ_GEN_0               0x00000000U
238 #define LL_DMAMUX_REQ_GEN_1               0x00000001U
239 #define LL_DMAMUX_REQ_GEN_2               0x00000002U
240 #define LL_DMAMUX_REQ_GEN_3               0x00000003U
241 /**
242   * @}
243   */
244 
245 /** @defgroup DMAMUX_LL_EC_REQUEST_GEN_POLARITY External Request Signal Generation Polarity
246   * @{
247   */
248 #define LL_DMAMUX_REQ_GEN_NO_EVENT           0x00000000U                                 /*!< No external DMA request
249                                                                                          generation */
250 #define LL_DMAMUX_REQ_GEN_POL_RISING         DMAMUX_RGxCR_GPOL_0                         /*!< External DMA request
251                                                                                          generation on event on rising
252                                                                                          edge */
253 #define LL_DMAMUX_REQ_GEN_POL_FALLING        DMAMUX_RGxCR_GPOL_1                         /*!< External DMA request
254                                                                                          generation on event on falling
255                                                                                          edge */
256 #define LL_DMAMUX_REQ_GEN_POL_RISING_FALLING (DMAMUX_RGxCR_GPOL_0 | DMAMUX_RGxCR_GPOL_1) /*!< External DMA request
257                                                                                          generation on rising and
258                                                                                          falling edge */
259 /**
260   * @}
261   */
262 
263 /** @defgroup DMAMUX_LL_EC_REQUEST_GEN External Request Signal Generation
264   * @{
265   */
266 #define LL_DMAMUX_REQ_GEN_EXTI_LINE0      0x00000000U                                                                                     /*!< Request signal generation from EXTI Line0  */
267 #define LL_DMAMUX_REQ_GEN_EXTI_LINE1      DMAMUX_RGxCR_SIG_ID_0                                                                           /*!< Request signal generation from EXTI Line1  */
268 #define LL_DMAMUX_REQ_GEN_EXTI_LINE2      DMAMUX_RGxCR_SIG_ID_1                                                                           /*!< Request signal generation from EXTI Line2  */
269 #define LL_DMAMUX_REQ_GEN_EXTI_LINE3      (DMAMUX_RGxCR_SIG_ID_1 |DMAMUX_RGxCR_SIG_ID_0)                                                  /*!< Request signal generation from EXTI Line3  */
270 #define LL_DMAMUX_REQ_GEN_EXTI_LINE4      DMAMUX_RGxCR_SIG_ID_2                                                                           /*!< Request signal generation from EXTI Line4  */
271 #define LL_DMAMUX_REQ_GEN_EXTI_LINE5      (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0)                                                 /*!< Request signal generation from EXTI Line5  */
272 #define LL_DMAMUX_REQ_GEN_EXTI_LINE6      (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1)                                                 /*!< Request signal generation from EXTI Line6  */
273 #define LL_DMAMUX_REQ_GEN_EXTI_LINE7      (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0)                         /*!< Request signal generation from EXTI Line7  */
274 #define LL_DMAMUX_REQ_GEN_EXTI_LINE8      DMAMUX_RGxCR_SIG_ID_3                                                                           /*!< Request signal generation from EXTI Line8  */
275 #define LL_DMAMUX_REQ_GEN_EXTI_LINE9      (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_0)                                                 /*!< Request signal generation from EXTI Line9  */
276 #define LL_DMAMUX_REQ_GEN_EXTI_LINE10     (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1)                                                 /*!< Request signal generation from EXTI Line10 */
277 #define LL_DMAMUX_REQ_GEN_EXTI_LINE11     (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0)                         /*!< Request signal generation from EXTI Line11 */
278 #define LL_DMAMUX_REQ_GEN_EXTI_LINE12     (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2)                                                 /*!< Request signal generation from EXTI Line12 */
279 #define LL_DMAMUX_REQ_GEN_EXTI_LINE13     (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0)                         /*!< Request signal generation from EXTI Line13 */
280 #define LL_DMAMUX_REQ_GEN_EXTI_LINE14     (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1)                         /*!< Request signal generation from EXTI Line14 */
281 #define LL_DMAMUX_REQ_GEN_EXTI_LINE15     (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line15 */
282 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH0      DMAMUX_RGxCR_SIG_ID_4                                                                           /*!< Request signal generation from DMAMUX channel0 Event */
283 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH1      (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_0)                                                 /*!< Request signal generation from DMAMUX channel1 Event */
284 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH2      (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1)                                                 /*!< Request signal generation from DMAMUX channel2 Event */
285 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH3      (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1 | DMAMUX_RGxCR_SIG_ID_0)                         /*!< Request signal generation from DMAMUX channel3 Event */
286 #define LL_DMAMUX_REQ_GEN_TIM14_OC        (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1)                         /*!< Request signal generation from TIM14 OC */
287 /**
288   * @}
289   */
290 
291 /**
292   * @}
293   */
294 
295 /* Exported macro ------------------------------------------------------------*/
296 /** @defgroup DMAMUX_LL_Exported_Macros DMAMUX Exported Macros
297   * @{
298   */
299 
300 /** @defgroup DMAMUX_LL_EM_WRITE_READ Common Write and read registers macros
301   * @{
302   */
303 /**
304   * @brief  Write a value in DMAMUX register
305   * @param  __INSTANCE__ DMAMUX Instance
306   * @param  __REG__ Register to be written
307   * @param  __VALUE__ Value to be written in the register
308   * @retval None
309   */
310 #define LL_DMAMUX_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
311 
312 /**
313   * @brief  Read a value in DMAMUX register
314   * @param  __INSTANCE__ DMAMUX Instance
315   * @param  __REG__ Register to be read
316   * @retval Register value
317   */
318 #define LL_DMAMUX_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
319 /**
320   * @}
321   */
322 
323 /**
324   * @}
325   */
326 
327 /* Exported functions --------------------------------------------------------*/
328 /** @defgroup DMAMUX_LL_Exported_Functions DMAMUX Exported Functions
329   * @{
330   */
331 
332 /** @defgroup DMAMUX_LL_EF_Configuration Configuration
333   * @{
334   */
335 /**
336   * @brief  Set DMAMUX request ID for DMAMUX Channel x.
337   * @note   DMAMUX channel 0 to 4 are mapped to DMA1 channel 1 to 5.
338   * @rmtoll CxCR         DMAREQ_ID     LL_DMAMUX_SetRequestID
339   * @param  DMAMUXx DMAMUXx Instance
340   * @param  Channel This parameter can be one of the following values:
341   *         @arg @ref LL_DMAMUX_CHANNEL_0
342   *         @arg @ref LL_DMAMUX_CHANNEL_1
343   *         @arg @ref LL_DMAMUX_CHANNEL_2
344   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
345   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
346   * @param  Request This parameter can be one of the following values:
347   *         @arg @ref LL_DMAMUX_REQ_MEM2MEM
348   *         @arg @ref LL_DMAMUX_REQ_GENERATOR0
349   *         @arg @ref LL_DMAMUX_REQ_GENERATOR1
350   *         @arg @ref LL_DMAMUX_REQ_GENERATOR2
351   *         @arg @ref LL_DMAMUX_REQ_GENERATOR3
352   *         @arg @ref LL_DMAMUX_REQ_ADC1
353   *         @arg @ref LL_DMAMUX_REQ_I2C1_RX
354   *         @arg @ref LL_DMAMUX_REQ_I2C1_TX
355   *         @arg @ref LL_DMAMUX_REQ_I2C2_RX (*)
356   *         @arg @ref LL_DMAMUX_REQ_I2C2_TX (*)
357   *         @arg @ref LL_DMAMUX_REQ_SPI1_RX
358   *         @arg @ref LL_DMAMUX_REQ_SPI1_TX
359   *         @arg @ref LL_DMAMUX_REQ_SPI2_RX (*)
360   *         @arg @ref LL_DMAMUX_REQ_SPI2_TX (*)
361   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH1
362   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH2
363   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH3
364   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH4
365   *         @arg @ref LL_DMAMUX_REQ_TIM1_TRIG_COM
366   *         @arg @ref LL_DMAMUX_REQ_TIM1_UP
367   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH1 (*)
368   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH2 (*)
369   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH3 (*)
370   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH4 (*)
371   *         @arg @ref LL_DMAMUX_REQ_TIM2_TRIG_COM (*)
372   *         @arg @ref LL_DMAMUX_REQ_TIM2_UP (*)
373   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH1
374   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH2
375   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH3
376   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH4
377   *         @arg @ref LL_DMAMUX_REQ_TIM3_TRIG
378   *         @arg @ref LL_DMAMUX_REQ_TIM3_UP
379   *         @arg @ref LL_DMAMUX_REQ_TIM16_CH1
380   *         @arg @ref LL_DMAMUX_REQ_TIM16_TRIG_COM
381   *         @arg @ref LL_DMAMUX_REQ_TIM16_UP
382   *         @arg @ref LL_DMAMUX_REQ_TIM17_CH1
383   *         @arg @ref LL_DMAMUX_REQ_TIM17_TRIG_COM
384   *         @arg @ref LL_DMAMUX_REQ_TIM17_UP
385   *         @arg @ref LL_DMAMUX_REQ_USART1_RX
386   *         @arg @ref LL_DMAMUX_REQ_USART1_TX
387   *         @arg @ref LL_DMAMUX_REQ_USART2_RX
388   *         @arg @ref LL_DMAMUX_REQ_USART2_TX
389   * @note (*) Availability depends on devices
390   * @retval None
391   */
LL_DMAMUX_SetRequestID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t Request)392 __STATIC_INLINE void LL_DMAMUX_SetRequestID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Request)
393 {
394   (void)(DMAMUXx);
395   MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
396 }
397 
398 /**
399   * @brief  Get DMAMUX request ID for DMAMUX Channel x.
400   * @note   DMAMUX channel 0 to 4 are mapped to DMA1 channel 1 to 5.
401   * @rmtoll CxCR         DMAREQ_ID     LL_DMAMUX_GetRequestID
402   * @param  DMAMUXx DMAMUXx Instance
403   * @param  Channel This parameter can be one of the following values:
404   *         @arg @ref LL_DMAMUX_CHANNEL_0
405   *         @arg @ref LL_DMAMUX_CHANNEL_1
406   *         @arg @ref LL_DMAMUX_CHANNEL_2
407   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
408   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
409   * @retval Returned value can be one of the following values:
410   *         @arg @ref LL_DMAMUX_REQ_MEM2MEM
411   *         @arg @ref LL_DMAMUX_REQ_GENERATOR0
412   *         @arg @ref LL_DMAMUX_REQ_GENERATOR1
413   *         @arg @ref LL_DMAMUX_REQ_GENERATOR2
414   *         @arg @ref LL_DMAMUX_REQ_GENERATOR3
415   *         @arg @ref LL_DMAMUX_REQ_ADC1
416   *         @arg @ref LL_DMAMUX_REQ_I2C1_RX
417   *         @arg @ref LL_DMAMUX_REQ_I2C1_TX
418   *         @arg @ref LL_DMAMUX_REQ_I2C2_RX (*)
419   *         @arg @ref LL_DMAMUX_REQ_I2C2_TX (*)
420   *         @arg @ref LL_DMAMUX_REQ_SPI1_RX
421   *         @arg @ref LL_DMAMUX_REQ_SPI1_TX
422   *         @arg @ref LL_DMAMUX_REQ_SPI2_RX (*)
423   *         @arg @ref LL_DMAMUX_REQ_SPI2_TX (*)
424   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH1
425   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH2
426   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH3
427   *         @arg @ref LL_DMAMUX_REQ_TIM1_CH4
428   *         @arg @ref LL_DMAMUX_REQ_TIM1_TRIG_COM
429   *         @arg @ref LL_DMAMUX_REQ_TIM1_UP
430   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH1 (*)
431   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH2 (*)
432   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH3 (*)
433   *         @arg @ref LL_DMAMUX_REQ_TIM2_CH4 (*)
434   *         @arg @ref LL_DMAMUX_REQ_TIM2_TRIG_COM (*)
435   *         @arg @ref LL_DMAMUX_REQ_TIM2_UP (*)
436   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH1
437   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH2
438   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH3
439   *         @arg @ref LL_DMAMUX_REQ_TIM3_CH4
440   *         @arg @ref LL_DMAMUX_REQ_TIM3_TRIG
441   *         @arg @ref LL_DMAMUX_REQ_TIM3_UP
442   *         @arg @ref LL_DMAMUX_REQ_TIM16_CH1
443   *         @arg @ref LL_DMAMUX_REQ_TIM16_TRIG_COM
444   *         @arg @ref LL_DMAMUX_REQ_TIM16_UP
445   *         @arg @ref LL_DMAMUX_REQ_TIM17_CH1
446   *         @arg @ref LL_DMAMUX_REQ_TIM17_TRIG_COM
447   *         @arg @ref LL_DMAMUX_REQ_TIM17_UP
448   *         @arg @ref LL_DMAMUX_REQ_USART1_RX
449   *         @arg @ref LL_DMAMUX_REQ_USART1_TX
450   *         @arg @ref LL_DMAMUX_REQ_USART2_RX
451   *         @arg @ref LL_DMAMUX_REQ_USART2_TX
452   * @note (*) Availability depends on devices
453   */
LL_DMAMUX_GetRequestID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)454 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
455 {
456   (void)(DMAMUXx);
457   return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID));
458 }
459 
460 /**
461   * @brief  Set the number of DMA request that will be autorized after a synchronization event and/or the number of DMA
462             request needed to generate an event.
463   * @rmtoll CxCR         NBREQ         LL_DMAMUX_SetSyncRequestNb
464   * @param  DMAMUXx DMAMUXx Instance
465   * @param  Channel This parameter can be one of the following values:
466   *         @arg @ref LL_DMAMUX_CHANNEL_0
467   *         @arg @ref LL_DMAMUX_CHANNEL_1
468   *         @arg @ref LL_DMAMUX_CHANNEL_2
469   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
470   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
471   * @note (*) Availability depends on devices
472   * @param  RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
473   * @retval None
474   */
LL_DMAMUX_SetSyncRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t RequestNb)475 __STATIC_INLINE void LL_DMAMUX_SetSyncRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel,
476                                                 uint32_t RequestNb)
477 {
478   (void)(DMAMUXx);
479   MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ, ((RequestNb - 1U) << DMAMUX_CxCR_NBREQ_Pos));
480 }
481 
482 /**
483   * @brief  Get the number of DMA request that will be autorized after a synchronization event and/or the number of DMA
484             request needed to generate an event.
485   * @rmtoll CxCR         NBREQ         LL_DMAMUX_GetSyncRequestNb
486   * @param  DMAMUXx DMAMUXx Instance
487   * @param  Channel This parameter can be one of the following values:
488   *         @arg @ref LL_DMAMUX_CHANNEL_0
489   *         @arg @ref LL_DMAMUX_CHANNEL_1
490   *         @arg @ref LL_DMAMUX_CHANNEL_2
491   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
492   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
493   * @note (*) Availability depends on devices
494   * @retval Between Min_Data = 1 and Max_Data = 32
495   */
LL_DMAMUX_GetSyncRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)496 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
497 {
498   (void)(DMAMUXx);
499   return (uint32_t)(((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ)) >> DMAMUX_CxCR_NBREQ_Pos) + 1U);
500 }
501 
502 /**
503   * @brief  Set the polarity of the signal on which the DMA request is synchronized.
504   * @rmtoll CxCR         SPOL          LL_DMAMUX_SetSyncPolarity
505   * @param  DMAMUXx DMAMUXx Instance
506   * @param  Channel This parameter can be one of the following values:
507   *         @arg @ref LL_DMAMUX_CHANNEL_0
508   *         @arg @ref LL_DMAMUX_CHANNEL_1
509   *         @arg @ref LL_DMAMUX_CHANNEL_2
510   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
511   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
512   * @note (*) Availability depends on devices
513   * @param  Polarity This parameter can be one of the following values:
514   *         @arg @ref LL_DMAMUX_SYNC_NO_EVENT
515   *         @arg @ref LL_DMAMUX_SYNC_POL_RISING
516   *         @arg @ref LL_DMAMUX_SYNC_POL_FALLING
517   *         @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
518   * @retval None
519   */
LL_DMAMUX_SetSyncPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t Polarity)520 __STATIC_INLINE void LL_DMAMUX_SetSyncPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel,
521                                                uint32_t Polarity)
522 {
523   (void)(DMAMUXx);
524   MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL, Polarity);
525 }
526 
527 /**
528   * @brief  Get the polarity of the signal on which the DMA request is synchronized.
529   * @rmtoll CxCR         SPOL          LL_DMAMUX_GetSyncPolarity
530   * @param  DMAMUXx DMAMUXx Instance
531   * @param  Channel This parameter can be one of the following values:
532   *         @arg @ref LL_DMAMUX_CHANNEL_0
533   *         @arg @ref LL_DMAMUX_CHANNEL_1
534   *         @arg @ref LL_DMAMUX_CHANNEL_2
535   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
536   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
537   * @note (*) Availability depends on devices
538   * @retval Returned value can be one of the following values:
539   *         @arg @ref LL_DMAMUX_SYNC_NO_EVENT
540   *         @arg @ref LL_DMAMUX_SYNC_POL_RISING
541   *         @arg @ref LL_DMAMUX_SYNC_POL_FALLING
542   *         @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
543   */
LL_DMAMUX_GetSyncPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)544 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
545 {
546   (void)(DMAMUXx);
547   return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL));
548 }
549 
550 /**
551   * @brief  Enable the Event Generation on DMAMUX channel x.
552   * @rmtoll CxCR         EGE           LL_DMAMUX_EnableEventGeneration
553   * @param  DMAMUXx DMAMUXx Instance
554   * @param  Channel This parameter can be one of the following values:
555   *         @arg @ref LL_DMAMUX_CHANNEL_0
556   *         @arg @ref LL_DMAMUX_CHANNEL_1
557   *         @arg @ref LL_DMAMUX_CHANNEL_2
558   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
559   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
560   * @note (*) Availability depends on devices
561   * @retval None
562   */
LL_DMAMUX_EnableEventGeneration(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)563 __STATIC_INLINE void LL_DMAMUX_EnableEventGeneration(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
564 {
565   (void)(DMAMUXx);
566   SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE);
567 }
568 
569 /**
570   * @brief  Disable the Event Generation on DMAMUX channel x.
571   * @rmtoll CxCR         EGE           LL_DMAMUX_DisableEventGeneration
572   * @param  DMAMUXx DMAMUXx Instance
573   * @param  Channel This parameter can be one of the following values:
574   *         @arg @ref LL_DMAMUX_CHANNEL_0
575   *         @arg @ref LL_DMAMUX_CHANNEL_1
576   *         @arg @ref LL_DMAMUX_CHANNEL_2
577   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
578   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
579   * @note (*) Availability depends on devices
580   * @retval None
581   */
LL_DMAMUX_DisableEventGeneration(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)582 __STATIC_INLINE void LL_DMAMUX_DisableEventGeneration(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
583 {
584   (void)(DMAMUXx);
585   CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE);
586 }
587 
588 /**
589   * @brief  Check if the Event Generation on DMAMUX channel x is enabled or disabled.
590   * @rmtoll CxCR         EGE           LL_DMAMUX_IsEnabledEventGeneration
591   * @param  DMAMUXx DMAMUXx Instance
592   * @param  Channel This parameter can be one of the following values:
593   *         @arg @ref LL_DMAMUX_CHANNEL_0
594   *         @arg @ref LL_DMAMUX_CHANNEL_1
595   *         @arg @ref LL_DMAMUX_CHANNEL_2
596   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
597   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
598   * @note (*) Availability depends on devices
599   * @retval State of bit (1 or 0).
600   */
LL_DMAMUX_IsEnabledEventGeneration(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)601 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledEventGeneration(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
602 {
603   (void)(DMAMUXx);
604   return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE) == (DMAMUX_CxCR_EGE)) ? 1UL : 0UL);
605 }
606 
607 /**
608   * @brief  Enable the synchronization mode.
609   * @rmtoll CxCR         SE            LL_DMAMUX_EnableSync
610   * @param  DMAMUXx DMAMUXx Instance
611   * @param  Channel This parameter can be one of the following values:
612   *         @arg @ref LL_DMAMUX_CHANNEL_0
613   *         @arg @ref LL_DMAMUX_CHANNEL_1
614   *         @arg @ref LL_DMAMUX_CHANNEL_2
615   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
616   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
617   * @note (*) Availability depends on devices
618   * @retval None
619   */
LL_DMAMUX_EnableSync(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)620 __STATIC_INLINE void LL_DMAMUX_EnableSync(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
621 {
622   (void)(DMAMUXx);
623   SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE);
624 }
625 
626 /**
627   * @brief  Disable the synchronization mode.
628   * @rmtoll CxCR         SE            LL_DMAMUX_DisableSync
629   * @param  DMAMUXx DMAMUXx Instance
630   * @param  Channel This parameter can be one of the following values:
631   *         @arg @ref LL_DMAMUX_CHANNEL_0
632   *         @arg @ref LL_DMAMUX_CHANNEL_1
633   *         @arg @ref LL_DMAMUX_CHANNEL_2
634   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
635   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
636   * @note (*) Availability depends on devices
637   * @retval None
638   */
LL_DMAMUX_DisableSync(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)639 __STATIC_INLINE void LL_DMAMUX_DisableSync(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
640 {
641   (void)(DMAMUXx);
642   CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE);
643 }
644 
645 /**
646   * @brief  Check if the synchronization mode is enabled or disabled.
647   * @rmtoll CxCR         SE            LL_DMAMUX_IsEnabledSync
648   * @param  DMAMUXx DMAMUXx Instance
649   * @param  Channel This parameter can be one of the following values:
650   *         @arg @ref LL_DMAMUX_CHANNEL_0
651   *         @arg @ref LL_DMAMUX_CHANNEL_1
652   *         @arg @ref LL_DMAMUX_CHANNEL_2
653   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
654   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
655   * @note (*) Availability depends on devices
656   * @retval State of bit (1 or 0).
657   */
LL_DMAMUX_IsEnabledSync(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)658 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledSync(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
659 {
660   (void)(DMAMUXx);
661   return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE) == (DMAMUX_CxCR_SE)) ? 1UL : 0UL);
662 }
663 
664 /**
665   * @brief  Set DMAMUX synchronization ID  on DMAMUX Channel x.
666   * @rmtoll CxCR         SYNC_ID       LL_DMAMUX_SetSyncID
667   * @param  DMAMUXx DMAMUXx Instance
668   * @param  Channel This parameter can be one of the following values:
669   *         @arg @ref LL_DMAMUX_CHANNEL_0
670   *         @arg @ref LL_DMAMUX_CHANNEL_1
671   *         @arg @ref LL_DMAMUX_CHANNEL_2
672   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
673   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
674   * @param  SyncID This parameter can be one of the following values:
675   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0
676   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1
677   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2
678   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3
679   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4
680   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5
681   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6
682   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7
683   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8
684   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9
685   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10
686   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11
687   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12
688   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13
689   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14
690   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15
691   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0
692   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1
693   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH2
694   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH3 (*)
695   *         @arg @ref LL_DMAMUX_SYNC_TIM14_OC
696   * @note (*) Availability depends on devices
697   * @retval None
698   */
LL_DMAMUX_SetSyncID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t SyncID)699 __STATIC_INLINE void LL_DMAMUX_SetSyncID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t SyncID)
700 {
701   (void)(DMAMUXx);
702   MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID, SyncID);
703 }
704 
705 /**
706   * @brief  Get DMAMUX synchronization ID  on DMAMUX Channel x.
707   * @rmtoll CxCR         SYNC_ID       LL_DMAMUX_GetSyncID
708   * @param  DMAMUXx DMAMUXx Instance
709   * @param  Channel This parameter can be one of the following values:
710   *         @arg @ref LL_DMAMUX_CHANNEL_0
711   *         @arg @ref LL_DMAMUX_CHANNEL_1
712   *         @arg @ref LL_DMAMUX_CHANNEL_2
713   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
714   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
715   * @retval Returned value can be one of the following values:
716   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0
717   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1
718   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2
719   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3
720   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4
721   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5
722   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6
723   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7
724   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8
725   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9
726   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10
727   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11
728   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12
729   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13
730   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14
731   *         @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15
732   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0
733   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1
734   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH2
735   *         @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH3 (*)
736   *         @arg @ref LL_DMAMUX_SYNC_TIM14_OC
737   * @note (*) Availability depends on devices
738   */
LL_DMAMUX_GetSyncID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)739 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
740 {
741   (void)(DMAMUXx);
742   return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID));
743 }
744 
745 /**
746   * @brief  Enable the Request Generator.
747   * @rmtoll RGxCR        GE            LL_DMAMUX_EnableRequestGen
748   * @param  DMAMUXx DMAMUXx Instance
749   * @param  RequestGenChannel This parameter can be one of the following values:
750   *         @arg @ref LL_DMAMUX_REQ_GEN_0
751   *         @arg @ref LL_DMAMUX_REQ_GEN_1
752   *         @arg @ref LL_DMAMUX_REQ_GEN_2
753   *         @arg @ref LL_DMAMUX_REQ_GEN_3
754   * @retval None
755   */
LL_DMAMUX_EnableRequestGen(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)756 __STATIC_INLINE void LL_DMAMUX_EnableRequestGen(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
757 {
758   (void)(DMAMUXx);
759   SET_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE *
760                                                     (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE);
761 }
762 
763 /**
764   * @brief  Disable the Request Generator.
765   * @rmtoll RGxCR        GE            LL_DMAMUX_DisableRequestGen
766   * @param  DMAMUXx DMAMUXx Instance
767   * @param  RequestGenChannel This parameter can be one of the following values:
768   *         @arg @ref LL_DMAMUX_REQ_GEN_0
769   *         @arg @ref LL_DMAMUX_REQ_GEN_1
770   *         @arg @ref LL_DMAMUX_REQ_GEN_2
771   *         @arg @ref LL_DMAMUX_REQ_GEN_3
772   * @retval None
773   */
LL_DMAMUX_DisableRequestGen(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)774 __STATIC_INLINE void LL_DMAMUX_DisableRequestGen(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
775 {
776   (void)(DMAMUXx);
777   CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE *
778                                                       (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE);
779 }
780 
781 /**
782   * @brief  Check if the Request Generator is enabled or disabled.
783   * @rmtoll RGxCR        GE            LL_DMAMUX_IsEnabledRequestGen
784   * @param  DMAMUXx DMAMUXx Instance
785   * @param  RequestGenChannel This parameter can be one of the following values:
786   *         @arg @ref LL_DMAMUX_REQ_GEN_0
787   *         @arg @ref LL_DMAMUX_REQ_GEN_1
788   *         @arg @ref LL_DMAMUX_REQ_GEN_2
789   *         @arg @ref LL_DMAMUX_REQ_GEN_3
790   * @retval State of bit (1 or 0).
791   */
LL_DMAMUX_IsEnabledRequestGen(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)792 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledRequestGen(const DMAMUX_Channel_TypeDef *DMAMUXx,
793                                                        uint32_t RequestGenChannel)
794 {
795   (void)(DMAMUXx);
796   return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE *
797                                                               (RequestGenChannel)))))->RGCR,
798                     DMAMUX_RGxCR_GE) == (DMAMUX_RGxCR_GE)) ? 1UL : 0UL);
799 }
800 
801 /**
802   * @brief  Set the polarity of the signal on which the DMA request is generated.
803   * @rmtoll RGxCR        GPOL          LL_DMAMUX_SetRequestGenPolarity
804   * @param  DMAMUXx DMAMUXx Instance
805   * @param  RequestGenChannel This parameter can be one of the following values:
806   *         @arg @ref LL_DMAMUX_REQ_GEN_0
807   *         @arg @ref LL_DMAMUX_REQ_GEN_1
808   *         @arg @ref LL_DMAMUX_REQ_GEN_2
809   *         @arg @ref LL_DMAMUX_REQ_GEN_3
810   * @param  Polarity This parameter can be one of the following values:
811   *         @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
812   *         @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
813   *         @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
814   *         @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
815   * @retval None
816   */
LL_DMAMUX_SetRequestGenPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t Polarity)817 __STATIC_INLINE void LL_DMAMUX_SetRequestGenPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel,
818                                                      uint32_t Polarity)
819 {
820   (void)(DMAMUXx);
821   MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE *
822                                                        (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL, Polarity);
823 }
824 
825 /**
826   * @brief  Get the polarity of the signal on which the DMA request is generated.
827   * @rmtoll RGxCR        GPOL          LL_DMAMUX_GetRequestGenPolarity
828   * @param  DMAMUXx DMAMUXx Instance
829   * @param  RequestGenChannel This parameter can be one of the following values:
830   *         @arg @ref LL_DMAMUX_REQ_GEN_0
831   *         @arg @ref LL_DMAMUX_REQ_GEN_1
832   *         @arg @ref LL_DMAMUX_REQ_GEN_2
833   *         @arg @ref LL_DMAMUX_REQ_GEN_3
834   * @retval Returned value can be one of the following values:
835   *         @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
836   *         @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
837   *         @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
838   *         @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
839   */
LL_DMAMUX_GetRequestGenPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)840 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestGenPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx,
841                                                          uint32_t RequestGenChannel)
842 {
843   (void)(DMAMUXx);
844   return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 +
845                                                                        (DMAMUX_RGCR_SIZE * \
846                                                                         (RequestGenChannel)))))->RGCR,
847                              DMAMUX_RGxCR_GPOL));
848 }
849 
850 /**
851   * @brief  Set the number of DMA request that will be autorized after a generation event.
852   * @note   This field can only be written when Generator is disabled.
853   * @rmtoll RGxCR        GNBREQ        LL_DMAMUX_SetGenRequestNb
854   * @param  DMAMUXx DMAMUXx Instance
855   * @param  RequestGenChannel This parameter can be one of the following values:
856   *         @arg @ref LL_DMAMUX_REQ_GEN_0
857   *         @arg @ref LL_DMAMUX_REQ_GEN_1
858   *         @arg @ref LL_DMAMUX_REQ_GEN_2
859   *         @arg @ref LL_DMAMUX_REQ_GEN_3
860   * @param  RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
861   * @retval None
862   */
LL_DMAMUX_SetGenRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t RequestNb)863 __STATIC_INLINE void LL_DMAMUX_SetGenRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel,
864                                                uint32_t RequestNb)
865 {
866   (void)(DMAMUXx);
867   MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE *
868                                                        (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GNBREQ,
869              (RequestNb - 1U) << DMAMUX_RGxCR_GNBREQ_Pos);
870 }
871 
872 /**
873   * @brief  Get the number of DMA request that will be autorized after a generation event.
874   * @rmtoll RGxCR        GNBREQ        LL_DMAMUX_GetGenRequestNb
875   * @param  DMAMUXx DMAMUXx Instance
876   * @param  RequestGenChannel This parameter can be one of the following values:
877   *         @arg @ref LL_DMAMUX_REQ_GEN_0
878   *         @arg @ref LL_DMAMUX_REQ_GEN_1
879   *         @arg @ref LL_DMAMUX_REQ_GEN_2
880   *         @arg @ref LL_DMAMUX_REQ_GEN_3
881   * @retval Between Min_Data = 1 and Max_Data = 32
882   */
LL_DMAMUX_GetGenRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)883 __STATIC_INLINE uint32_t LL_DMAMUX_GetGenRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
884 {
885   (void)(DMAMUXx);
886   return (uint32_t)((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 +
887                                                                         (DMAMUX_RGCR_SIZE * \
888                                                                          (RequestGenChannel)))))->RGCR,
889                               DMAMUX_RGxCR_GNBREQ) >> DMAMUX_RGxCR_GNBREQ_Pos) + 1U);
890 }
891 
892 /**
893   * @brief  Set DMAMUX external Request Signal ID on DMAMUX Request Generation Trigger Event Channel x.
894   * @rmtoll RGxCR        SIG_ID        LL_DMAMUX_SetRequestSignalID
895   * @param  DMAMUXx DMAMUXx Instance
896   * @param  RequestGenChannel This parameter can be one of the following values:
897   *         @arg @ref LL_DMAMUX_REQ_GEN_0
898   *         @arg @ref LL_DMAMUX_REQ_GEN_1
899   *         @arg @ref LL_DMAMUX_REQ_GEN_2
900   *         @arg @ref LL_DMAMUX_REQ_GEN_3
901   * @param  RequestSignalID This parameter can be one of the following values:
902   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0
903   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1
904   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2
905   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3
906   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4
907   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5
908   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6
909   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7
910   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8
911   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9
912   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10
913   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11
914   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12
915   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13
916   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14
917   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15
918   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0
919   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1
920   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH2
921   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH3 (*)
922   *         @arg @ref LL_DMAMUX_REQ_GEN_TIM14_OC
923   * @note (*) Availability depends on devices
924   * @retval None
925   */
LL_DMAMUX_SetRequestSignalID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t RequestSignalID)926 __STATIC_INLINE void LL_DMAMUX_SetRequestSignalID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel,
927                                                   uint32_t RequestSignalID)
928 {
929   (void)(DMAMUXx);
930   MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + (DMAMUX_RGCR_SIZE *
931                                                        (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID,
932              RequestSignalID);
933 }
934 
935 /**
936   * @brief  Get DMAMUX external Request Signal ID set on DMAMUX Channel x.
937   * @rmtoll RGxCR        SIG_ID        LL_DMAMUX_GetRequestSignalID
938   * @param  DMAMUXx DMAMUXx Instance
939   * @param  RequestGenChannel This parameter can be one of the following values:
940   *         @arg @ref LL_DMAMUX_REQ_GEN_0
941   *         @arg @ref LL_DMAMUX_REQ_GEN_1
942   *         @arg @ref LL_DMAMUX_REQ_GEN_2
943   *         @arg @ref LL_DMAMUX_REQ_GEN_3
944   * @retval Returned value can be one of the following values:
945   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0
946   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1
947   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2
948   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3
949   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4
950   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5
951   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6
952   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7
953   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8
954   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9
955   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10
956   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11
957   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12
958   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13
959   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14
960   *         @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15
961   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0
962   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1
963   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH2
964   *         @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH3 (*)
965   *         @arg @ref LL_DMAMUX_REQ_GEN_TIM14_OC
966   * @note (*) Availability depends on devices
967   */
LL_DMAMUX_GetRequestSignalID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)968 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestSignalID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
969 {
970   (void)(DMAMUXx);
971   return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 +
972                                                                        (DMAMUX_RGCR_SIZE * \
973                                                                         (RequestGenChannel)))))->RGCR,
974                              DMAMUX_RGxCR_SIG_ID));
975 }
976 
977 /**
978   * @}
979   */
980 
981 /** @defgroup DMAMUX_LL_EF_FLAG_Management FLAG_Management
982   * @{
983   */
984 
985 /**
986   * @brief  Get Synchronization Event Overrun Flag Channel 0.
987   * @rmtoll CSR          SOF0          LL_DMAMUX_IsActiveFlag_SO0
988   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
989   * @retval State of bit (1 or 0).
990   */
LL_DMAMUX_IsActiveFlag_SO0(const DMAMUX_Channel_TypeDef * DMAMUXx)991 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
992 {
993   (void)(DMAMUXx);
994   return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF0) == (DMAMUX_CSR_SOF0)) ? 1UL : 0UL);
995 }
996 
997 /**
998   * @brief  Get Synchronization Event Overrun Flag Channel 1.
999   * @rmtoll CSR          SOF1          LL_DMAMUX_IsActiveFlag_SO1
1000   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1001   * @retval State of bit (1 or 0).
1002   */
LL_DMAMUX_IsActiveFlag_SO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1003 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1004 {
1005   (void)(DMAMUXx);
1006   return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF1) == (DMAMUX_CSR_SOF1)) ? 1UL : 0UL);;
1007 }
1008 
1009 /**
1010   * @brief  Get Synchronization Event Overrun Flag Channel 2.
1011   * @rmtoll CSR          SOF2          LL_DMAMUX_IsActiveFlag_SO2
1012   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1013   * @retval State of bit (1 or 0).
1014   */
LL_DMAMUX_IsActiveFlag_SO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1015 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1016 {
1017   (void)(DMAMUXx);
1018   return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF2) == (DMAMUX_CSR_SOF2)) ? 1UL : 0UL);;
1019 }
1020 
1021 #if defined(DMAMUX_CSR_SOF3)
1022 /**
1023   * @brief  Get Synchronization Event Overrun Flag Channel 3.
1024   * @rmtoll CSR          SOF3          LL_DMAMUX_IsActiveFlag_SO3
1025   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1026   * @retval State of bit (1 or 0).
1027   */
LL_DMAMUX_IsActiveFlag_SO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1028 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1029 {
1030   (void)(DMAMUXx);
1031   return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF3) == (DMAMUX_CSR_SOF3)) ? 1UL : 0UL);;
1032 }
1033 #endif /* DMAMUX_CSR_SOF3 */
1034 
1035 #if defined(DMAMUX_CSR_SOF4)
1036 /**
1037   * @brief  Get Synchronization Event Overrun Flag Channel 4.
1038   * @rmtoll CSR          SOF4          LL_DMAMUX_IsActiveFlag_SO4
1039   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1040   * @retval State of bit (1 or 0).
1041   */
LL_DMAMUX_IsActiveFlag_SO4(const DMAMUX_Channel_TypeDef * DMAMUXx)1042 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO4(const DMAMUX_Channel_TypeDef *DMAMUXx)
1043 {
1044   (void)(DMAMUXx);
1045   return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF4) == (DMAMUX_CSR_SOF4)) ? 1UL : 0UL);;
1046 }
1047 #endif /* DMAMUX_CSR_SOF4 */
1048 
1049 /**
1050   * @brief  Get Request Generator 0 Trigger Event Overrun Flag.
1051   * @rmtoll RGSR         OF0           LL_DMAMUX_IsActiveFlag_RGO0
1052   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1053   * @retval State of bit (1 or 0).
1054   */
LL_DMAMUX_IsActiveFlag_RGO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1055 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1056 {
1057   (void)(DMAMUXx);
1058   return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF0) == (DMAMUX_RGSR_OF0)) ? 1UL : 0UL);;
1059 }
1060 
1061 /**
1062   * @brief  Get Request Generator 1 Trigger Event Overrun Flag.
1063   * @rmtoll RGSR         OF1           LL_DMAMUX_IsActiveFlag_RGO1
1064   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1065   * @retval State of bit (1 or 0).
1066   */
LL_DMAMUX_IsActiveFlag_RGO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1067 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1068 {
1069   (void)(DMAMUXx);
1070   return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF1) == (DMAMUX_RGSR_OF1)) ? 1UL : 0UL);;
1071 }
1072 
1073 /**
1074   * @brief  Get Request Generator 2 Trigger Event Overrun Flag.
1075   * @rmtoll RGSR         OF2           LL_DMAMUX_IsActiveFlag_RGO2
1076   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1077   * @retval State of bit (1 or 0).
1078   */
LL_DMAMUX_IsActiveFlag_RGO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1079 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1080 {
1081   (void)(DMAMUXx);
1082   return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF2) == (DMAMUX_RGSR_OF2)) ? 1UL : 0UL);;
1083 }
1084 
1085 /**
1086   * @brief  Get Request Generator 3 Trigger Event Overrun Flag.
1087   * @rmtoll RGSR         OF3           LL_DMAMUX_IsActiveFlag_RGO3
1088   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1089   * @retval State of bit (1 or 0).
1090   */
LL_DMAMUX_IsActiveFlag_RGO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1091 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1092 {
1093   (void)(DMAMUXx);
1094   return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF3) == (DMAMUX_RGSR_OF3)) ? 1UL : 0UL);;
1095 }
1096 
1097 /**
1098   * @brief  Clear Synchronization Event Overrun Flag Channel 0.
1099   * @rmtoll CFR          CSOF0         LL_DMAMUX_ClearFlag_SO0
1100   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1101   * @retval None
1102   */
LL_DMAMUX_ClearFlag_SO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1103 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1104 {
1105   (void)(DMAMUXx);
1106   SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF0);
1107 }
1108 
1109 /**
1110   * @brief  Clear Synchronization Event Overrun Flag Channel 1.
1111   * @rmtoll CFR          CSOF1         LL_DMAMUX_ClearFlag_SO1
1112   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1113   * @retval None
1114   */
LL_DMAMUX_ClearFlag_SO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1115 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1116 {
1117   (void)(DMAMUXx);
1118   SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF1);
1119 }
1120 
1121 /**
1122   * @brief  Clear Synchronization Event Overrun Flag Channel 2.
1123   * @rmtoll CFR          CSOF2         LL_DMAMUX_ClearFlag_SO2
1124   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1125   * @retval None
1126   */
LL_DMAMUX_ClearFlag_SO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1127 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1128 {
1129   (void)(DMAMUXx);
1130   SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF2);
1131 }
1132 
1133 #if defined(DMAMUX_CFR_CSOF3)
1134 /**
1135   * @brief  Clear Synchronization Event Overrun Flag Channel 3.
1136   * @rmtoll CFR          CSOF3         LL_DMAMUX_ClearFlag_SO3
1137   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1138   * @retval None
1139   */
LL_DMAMUX_ClearFlag_SO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1140 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1141 {
1142   (void)(DMAMUXx);
1143   SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF3);
1144 }
1145 #endif /* DMAMUX_CFR_CSOF3 */
1146 
1147 #if defined(DMAMUX_CFR_CSOF4)
1148 /**
1149   * @brief  Clear Synchronization Event Overrun Flag Channel 4.
1150   * @rmtoll CFR          CSOF4         LL_DMAMUX_ClearFlag_SO4
1151   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1152   * @retval None
1153   */
LL_DMAMUX_ClearFlag_SO4(const DMAMUX_Channel_TypeDef * DMAMUXx)1154 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO4(const DMAMUX_Channel_TypeDef *DMAMUXx)
1155 {
1156   (void)(DMAMUXx);
1157   SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF4);
1158 }
1159 #endif /* DMAMUX_CFR_CSOF4 */
1160 
1161 /**
1162   * @brief  Clear Request Generator 0 Trigger Event Overrun Flag.
1163   * @rmtoll RGCFR        COF0          LL_DMAMUX_ClearFlag_RGO0
1164   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1165   * @retval None
1166   */
LL_DMAMUX_ClearFlag_RGO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1167 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1168 {
1169   (void)(DMAMUXx);
1170   SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF0);
1171 }
1172 
1173 /**
1174   * @brief  Clear Request Generator 1 Trigger Event Overrun Flag.
1175   * @rmtoll RGCFR        COF1          LL_DMAMUX_ClearFlag_RGO1
1176   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1177   * @retval None
1178   */
LL_DMAMUX_ClearFlag_RGO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1179 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1180 {
1181   (void)(DMAMUXx);
1182   SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF1);
1183 }
1184 
1185 /**
1186   * @brief  Clear Request Generator 2 Trigger Event Overrun Flag.
1187   * @rmtoll RGCFR        COF2          LL_DMAMUX_ClearFlag_RGO2
1188   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1189   * @retval None
1190   */
LL_DMAMUX_ClearFlag_RGO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1191 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1192 {
1193   (void)(DMAMUXx);
1194   SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF2);
1195 }
1196 
1197 /**
1198   * @brief  Clear Request Generator 3 Trigger Event Overrun Flag.
1199   * @rmtoll RGCFR        COF3          LL_DMAMUX_ClearFlag_RGO3
1200   * @param  DMAMUXx DMAMUXx DMAMUXx Instance
1201   * @retval None
1202   */
LL_DMAMUX_ClearFlag_RGO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1203 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1204 {
1205   (void)(DMAMUXx);
1206   SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF3);
1207 }
1208 
1209 /**
1210   * @}
1211   */
1212 
1213 /** @defgroup DMAMUX_LL_EF_IT_Management IT_Management
1214   * @{
1215   */
1216 
1217 /**
1218   * @brief  Enable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
1219   * @rmtoll CxCR         SOIE          LL_DMAMUX_EnableIT_SO
1220   * @param  DMAMUXx DMAMUXx Instance
1221   * @param  Channel This parameter can be one of the following values:
1222   *         @arg @ref LL_DMAMUX_CHANNEL_0
1223   *         @arg @ref LL_DMAMUX_CHANNEL_1
1224   *         @arg @ref LL_DMAMUX_CHANNEL_2
1225   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
1226   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
1227   * @note (*) Availability depends on devices
1228   * @retval None
1229   */
LL_DMAMUX_EnableIT_SO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1230 __STATIC_INLINE void LL_DMAMUX_EnableIT_SO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1231 {
1232   (void)(DMAMUXx);
1233   SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE);
1234 }
1235 
1236 /**
1237   * @brief  Disable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
1238   * @rmtoll CxCR         SOIE          LL_DMAMUX_DisableIT_SO
1239   * @param  DMAMUXx DMAMUXx Instance
1240   * @param  Channel This parameter can be one of the following values:
1241   *         @arg @ref LL_DMAMUX_CHANNEL_0
1242   *         @arg @ref LL_DMAMUX_CHANNEL_1
1243   *         @arg @ref LL_DMAMUX_CHANNEL_2
1244   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
1245   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
1246   * @note (*) Availability depends on devices
1247   * @retval None
1248   */
LL_DMAMUX_DisableIT_SO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1249 __STATIC_INLINE void LL_DMAMUX_DisableIT_SO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1250 {
1251   (void)(DMAMUXx);
1252   CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE);
1253 }
1254 
1255 /**
1256   * @brief  Check if the Synchronization Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
1257   * @rmtoll CxCR         SOIE          LL_DMAMUX_IsEnabledIT_SO
1258   * @param  DMAMUXx DMAMUXx Instance
1259   * @param  Channel This parameter can be one of the following values:
1260   *         @arg @ref LL_DMAMUX_CHANNEL_0
1261   *         @arg @ref LL_DMAMUX_CHANNEL_1
1262   *         @arg @ref LL_DMAMUX_CHANNEL_2
1263   *         @arg @ref LL_DMAMUX_CHANNEL_3 (*)
1264   *         @arg @ref LL_DMAMUX_CHANNEL_4 (*)
1265   * @note (*) Availability depends on devices
1266   * @retval State of bit (1 or 0).
1267   */
LL_DMAMUX_IsEnabledIT_SO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1268 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_SO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1269 {
1270   (void)(DMAMUXx);
1271   return (((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE)) == (DMAMUX_CxCR_SOIE)) ? 1UL : 0UL);
1272 }
1273 
1274 /**
1275   * @brief  Enable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
1276   * @rmtoll RGxCR        OIE           LL_DMAMUX_EnableIT_RGO
1277   * @param  DMAMUXx DMAMUXx Instance
1278   * @param  RequestGenChannel This parameter can be one of the following values:
1279   *         @arg @ref LL_DMAMUX_REQ_GEN_0
1280   *         @arg @ref LL_DMAMUX_REQ_GEN_1
1281   *         @arg @ref LL_DMAMUX_REQ_GEN_2
1282   *         @arg @ref LL_DMAMUX_REQ_GEN_3
1283   * @retval None
1284   */
LL_DMAMUX_EnableIT_RGO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1285 __STATIC_INLINE void LL_DMAMUX_EnableIT_RGO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1286 {
1287   (void)(DMAMUXx);
1288   SET_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE);
1289 }
1290 
1291 /**
1292   * @brief  Disable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
1293   * @rmtoll RGxCR        OIE           LL_DMAMUX_DisableIT_RGO
1294   * @param  DMAMUXx DMAMUXx Instance
1295   * @param  RequestGenChannel This parameter can be one of the following values:
1296   *         @arg @ref LL_DMAMUX_REQ_GEN_0
1297   *         @arg @ref LL_DMAMUX_REQ_GEN_1
1298   *         @arg @ref LL_DMAMUX_REQ_GEN_2
1299   *         @arg @ref LL_DMAMUX_REQ_GEN_3
1300   * @retval None
1301   */
LL_DMAMUX_DisableIT_RGO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1302 __STATIC_INLINE void LL_DMAMUX_DisableIT_RGO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1303 {
1304   (void)(DMAMUXx);
1305   CLEAR_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE);
1306 }
1307 
1308 /**
1309   * @brief  Check if the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
1310   * @rmtoll RGxCR        OIE           LL_DMAMUX_IsEnabledIT_RGO
1311   * @param  DMAMUXx DMAMUXx Instance
1312   * @param  RequestGenChannel This parameter can be one of the following values:
1313   *         @arg @ref LL_DMAMUX_REQ_GEN_0
1314   *         @arg @ref LL_DMAMUX_REQ_GEN_1
1315   *         @arg @ref LL_DMAMUX_REQ_GEN_2
1316   *         @arg @ref LL_DMAMUX_REQ_GEN_3
1317   * @retval State of bit (1 or 0).
1318   */
LL_DMAMUX_IsEnabledIT_RGO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1319 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_RGO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1320 {
1321   (void)(DMAMUXx);
1322   return ((READ_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE) == (DMAMUX_RGxCR_OIE)) ? \
1323           1UL : 0UL);
1324 }
1325 
1326 /**
1327   * @}
1328   */
1329 
1330 /**
1331   * @}
1332   */
1333 
1334 /**
1335   * @}
1336   */
1337 
1338 #endif /* DMAMUX1 */
1339 
1340 /**
1341   * @}
1342   */
1343 
1344 #ifdef __cplusplus
1345 }
1346 #endif
1347 
1348 #endif /* STM32C0xx_LL_DMAMUX_H */
1349