1 /**
2 ******************************************************************************
3 * @file stm32u0xx_ll_dmamux.h
4 * @author GPM Application Team
5 * @brief Header file of DMAMUX LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2023 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 STM32U0xx_LL_DMAMUX_H
21 #define STM32U0xx_LL_DMAMUX_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32u0xx.h"
29
30 /** @addtogroup STM32U0xx_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 #define LL_DMAMUX_CFR_CSOF3 DMAMUX_CFR_CSOF3 /*!< Synchronization Event Overrun Flag Channel 3 */
69 #define LL_DMAMUX_CFR_CSOF4 DMAMUX_CFR_CSOF4 /*!< Synchronization Event Overrun Flag Channel 4 */
70 #define LL_DMAMUX_CFR_CSOF5 DMAMUX_CFR_CSOF5 /*!< Synchronization Event Overrun Flag Channel 5 */
71 #define LL_DMAMUX_CFR_CSOF6 DMAMUX_CFR_CSOF6 /*!< Synchronization Event Overrun Flag Channel 6 */
72 #if defined(DMA2)
73 #define LL_DMAMUX_CFR_CSOF7 DMAMUX_CFR_CSOF7 /*!< Synchronization Event Overrun Flag Channel 7 */
74 #define LL_DMAMUX_CFR_CSOF8 DMAMUX_CFR_CSOF8 /*!< Synchronization Event Overrun Flag Channel 8 */
75 #define LL_DMAMUX_CFR_CSOF9 DMAMUX_CFR_CSOF9 /*!< Synchronization Event Overrun Flag Channel 9 */
76 #define LL_DMAMUX_CFR_CSOF10 DMAMUX_CFR_CSOF10 /*!< Synchronization Event Overrun Flag Channel 10 */
77 #define LL_DMAMUX_CFR_CSOF11 DMAMUX_CFR_CSOF11 /*!< Synchronization Event Overrun Flag Channel 11 */
78 #endif /* DMA2 */
79 #define LL_DMAMUX_RGCFR_RGCOF0 DMAMUX_RGCFR_COF0 /*!< Request Generator 0 Trigger Event Overrun Flag */
80 #define LL_DMAMUX_RGCFR_RGCOF1 DMAMUX_RGCFR_COF1 /*!< Request Generator 1 Trigger Event Overrun Flag */
81 #define LL_DMAMUX_RGCFR_RGCOF2 DMAMUX_RGCFR_COF2 /*!< Request Generator 2 Trigger Event Overrun Flag */
82 #define LL_DMAMUX_RGCFR_RGCOF3 DMAMUX_RGCFR_COF3 /*!< Request Generator 3 Trigger Event Overrun Flag */
83 /**
84 * @}
85 */
86
87 /** @defgroup DMAMUX_LL_EC_GET_FLAG Get Flags Defines
88 * @brief Flags defines which can be used with LL_DMAMUX_ReadReg function
89 * @{
90 */
91 #define LL_DMAMUX_CSR_SOF0 DMAMUX_CSR_SOF0 /*!< Synchronization Event Overrun Flag Channel 0 */
92 #define LL_DMAMUX_CSR_SOF1 DMAMUX_CSR_SOF1 /*!< Synchronization Event Overrun Flag Channel 1 */
93 #define LL_DMAMUX_CSR_SOF2 DMAMUX_CSR_SOF2 /*!< Synchronization Event Overrun Flag Channel 2 */
94 #define LL_DMAMUX_CSR_SOF3 DMAMUX_CSR_SOF3 /*!< Synchronization Event Overrun Flag Channel 3 */
95 #define LL_DMAMUX_CSR_SOF4 DMAMUX_CSR_SOF4 /*!< Synchronization Event Overrun Flag Channel 4 */
96 #define LL_DMAMUX_CSR_SOF5 DMAMUX_CSR_SOF5 /*!< Synchronization Event Overrun Flag Channel 5 */
97 #define LL_DMAMUX_CSR_SOF6 DMAMUX_CSR_SOF6 /*!< Synchronization Event Overrun Flag Channel 6 */
98 #if defined(DMA2)
99 #define LL_DMAMUX_CSR_SOF7 DMAMUX_CSR_SOF7 /*!< Synchronization Event Overrun Flag Channel 7 */
100 #define LL_DMAMUX_CSR_SOF8 DMAMUX_CSR_SOF8 /*!< Synchronization Event Overrun Flag Channel 8 */
101 #define LL_DMAMUX_CSR_SOF9 DMAMUX_CSR_SOF9 /*!< Synchronization Event Overrun Flag Channel 9 */
102 #define LL_DMAMUX_CSR_SOF10 DMAMUX_CSR_SOF10 /*!< Synchronization Event Overrun Flag Channel 10 */
103 #define LL_DMAMUX_CSR_SOF11 DMAMUX_CSR_SOF11 /*!< Synchronization Event Overrun Flag Channel 11 */
104 #endif /* DMA2 */
105 #define LL_DMAMUX_RGSR_RGOF0 DMAMUX_RGSR_OF0 /*!< Request Generator 0 Trigger Event Overrun Flag */
106 #define LL_DMAMUX_RGSR_RGOF1 DMAMUX_RGSR_OF1 /*!< Request Generator 1 Trigger Event Overrun Flag */
107 #define LL_DMAMUX_RGSR_RGOF2 DMAMUX_RGSR_OF2 /*!< Request Generator 2 Trigger Event Overrun Flag */
108 #define LL_DMAMUX_RGSR_RGOF3 DMAMUX_RGSR_OF3 /*!< Request Generator 3 Trigger Event Overrun Flag */
109 /**
110 * @}
111 */
112
113 /** @defgroup DMAMUX_LL_EC_IT IT Defines
114 * @brief IT defines which can be used with LL_DMA_ReadReg and LL_DMAMUX_WriteReg functions
115 * @{
116 */
117 #define LL_DMAMUX_CCR_SOIE DMAMUX_CxCR_SOIE /*!< Synchronization Event Overrun Interrupt */
118 #define LL_DMAMUX_RGCR_RGOIE DMAMUX_RGxCR_OIE /*!< Request Generation Trigger Event Overrun Interrupt */
119 /**
120 * @}
121 */
122
123 /** @defgroup DMAMUX_LL_EC_REQUEST Transfer request
124 * @{
125 */
126 #define LL_DMAMUX_REQ_MEM2MEM 0x00000000U /*!< memory to memory transfer */
127 #define LL_DMAMUX_REQ_GENERATOR0 0x00000001U /*!< DMAMUX request generator 0 */
128 #define LL_DMAMUX_REQ_GENERATOR1 0x00000002U /*!< DMAMUX request generator 1 */
129 #define LL_DMAMUX_REQ_GENERATOR2 0x00000003U /*!< DMAMUX request generator 2 */
130 #define LL_DMAMUX_REQ_GENERATOR3 0x00000004U /*!< DMAMUX request generator 3 */
131 #define LL_DMAMUX_REQ_ADC 0x00000005U /*!< DMAMUX ADC request */
132 #if defined(AES)
133 #define LL_DMAMUX_REQ_AES_IN 0x00000006U /*!< DMAMUX AES_IN request */
134 #define LL_DMAMUX_REQ_AES_OUT 0x00000007U /*!< DMAMUX AES_OUT request */
135 #endif /* AES */
136 #define LL_DMAMUX_REQ_DAC_CH1 0x00000008U /*!< DMAMUX DAC_CH1 request */
137 #define LL_DMAMUX_REQ_I2C1_RX 0x00000009U /*!< DMAMUX I2C1 RX request */
138 #define LL_DMAMUX_REQ_I2C1_TX 0x0000000AU /*!< DMAMUX I2C1 TX request */
139 #define LL_DMAMUX_REQ_I2C2_RX 0x0000000BU /*!< DMAMUX I2C2 RX request */
140 #define LL_DMAMUX_REQ_I2C2_TX 0x0000000CU /*!< DMAMUX I2C2 TX request */
141 #define LL_DMAMUX_REQ_I2C3_RX 0x0000000DU /*!< DMAMUX I2C3 RX request */
142 #define LL_DMAMUX_REQ_I2C3_TX 0x0000000EU /*!< DMAMUX I2C3 TX request */
143 #if defined(I2C4)
144 #define LL_DMAMUX_REQ_I2C4_RX 0x0000000FU /*!< DMAMUX I2C4 RX request */
145 #define LL_DMAMUX_REQ_I2C4_TX 0x00000010U /*!< DMAMUX I2C4 TX request */
146 #endif /* I2C4 */
147 #define LL_DMAMUX_REQ_LPTIM1_IC1 0x00000011U /*!< DMAMUX LPTIM1 IC1 request */
148 #define LL_DMAMUX_REQ_LPTIM1_IC2 0x00000012U /*!< DMAMUX LPTIM1 IC2 request */
149 #define LL_DMAMUX_REQ_LPTIM1_IC3 0x00000013U /*!< DMAMUX LPTIM1 IC3 request */
150 #define LL_DMAMUX_REQ_LPTIM1_IC4 0x00000014U /*!< DMAMUX LPTIM1 IC4 request */
151 #define LL_DMAMUX_REQ_LPTIM1_UE 0x00000015U /*!< DMAMUX LPTIM1 UE request */
152 #define LL_DMAMUX_REQ_LPTIM2_IC1 0x00000016U /*!< DMAMUX LPTIM2 IC1 request */
153 #define LL_DMAMUX_REQ_LPTIM2_IC2 0x00000017U /*!< DMAMUX LPTIM2 IC2 request */
154 #define LL_DMAMUX_REQ_LPTIM2_UE 0x00000018U /*!< DMAMUX LPTIM2 UE request */
155 #if defined(LPTIM3)
156 #define LL_DMAMUX_REQ_LPTIM3_IC1 0x00000019U /*!< DMAMUX LPTIM3 IC1 request */
157 #define LL_DMAMUX_REQ_LPTIM3_IC2 0x0000001AU /*!< DMAMUX LPTIM3 IC2 request */
158 #define LL_DMAMUX_REQ_LPTIM3_IC3 0x0000001BU /*!< DMAMUX LPTIM3 IC3 request */
159 #define LL_DMAMUX_REQ_LPTIM3_IC4 0x0000001CU /*!< DMAMUX LPTIM3 IC4 request */
160 #define LL_DMAMUX_REQ_LPTIM3_UE 0x0000001DU /*!< DMAMUX LPTIM3 UE request */
161 #endif /* LPTIM3 */
162 #define LL_DMAMUX_REQ_LPUART1_RX 0x0000001EU /*!< DMAMUX LPUART1 RX request */
163 #define LL_DMAMUX_REQ_LPUART1_TX 0x0000001FU /*!< DMAMUX LPUART1 TX request */
164 #define LL_DMAMUX_REQ_LPUART2_RX 0x00000020U /*!< DMAMUX LPUART2 RX request */
165 #define LL_DMAMUX_REQ_LPUART2_TX 0x00000021U /*!< DMAMUX LPUART2 TX request */
166 #if defined(LPUART3)
167 #define LL_DMAMUX_REQ_LPUART3_RX 0x00000022U /*!< DMAMUX LPUART3 RX request */
168 #define LL_DMAMUX_REQ_LPUART3_TX 0x00000023U /*!< DMAMUX LPUART3 TX request */
169 #endif /* LPUART */
170 #define LL_DMAMUX_REQ_SPI1_RX 0x00000024U /*!< DMAMUX SPI1 RX request */
171 #define LL_DMAMUX_REQ_SPI1_TX 0x00000025U /*!< DMAMUX SPI1 TX request */
172 #define LL_DMAMUX_REQ_SPI2_RX 0x00000026U /*!< DMAMUX SPI2 RX request */
173 #define LL_DMAMUX_REQ_SPI2_TX 0x00000027U /*!< DMAMUX SPI2 TX request */
174 #if defined(SPI3)
175 #define LL_DMAMUX_REQ_SPI3_RX 0x00000028U /*!< DMAMUX SPI3 RX request */
176 #define LL_DMAMUX_REQ_SPI3_TX 0x00000029U /*!< DMAMUX SPI3 TX request */
177 #endif /* SPI3 */
178 #define LL_DMAMUX_REQ_TIM1_CH1 0x0000002AU /*!< DMAMUX TIM1 CH1 request */
179 #define LL_DMAMUX_REQ_TIM1_CH2 0x0000002BU /*!< DMAMUX TIM1 CH2 request */
180 #define LL_DMAMUX_REQ_TIM1_CH3 0x0000002CU /*!< DMAMUX TIM1 CH3 request */
181 #define LL_DMAMUX_REQ_TIM1_CH4 0x0000002DU /*!< DMAMUX TIM1 CH4 request */
182 #define LL_DMAMUX_REQ_TIM1_TRIG_COM 0x0000002EU /*!< DMAMUX TIM1 TRIG COM request */
183 #define LL_DMAMUX_REQ_TIM1_UP 0x0000002FU /*!< DMAMUX TIM1 UP request */
184 #define LL_DMAMUX_REQ_TIM2_CH1 0x00000030U /*!< DMAMUX TIM2 CH1 request */
185 #define LL_DMAMUX_REQ_TIM2_CH2 0x00000031U /*!< DMAMUX TIM2 CH2 request */
186 #define LL_DMAMUX_REQ_TIM2_CH3 0x00000032U /*!< DMAMUX TIM2 CH3 request */
187 #define LL_DMAMUX_REQ_TIM2_CH4 0x00000033U /*!< DMAMUX TIM2 CH4 request */
188 #define LL_DMAMUX_REQ_TIM2_TRIG 0x00000034U /*!< DMAMUX TIM2 TRIG request */
189 #define LL_DMAMUX_REQ_TIM2_UP 0x00000035U /*!< DMAMUX TIM2 UP request */
190 #define LL_DMAMUX_REQ_TIM3_CH1 0x00000036U /*!< DMAMUX TIM3 CH1 request */
191 #define LL_DMAMUX_REQ_TIM3_CH2 0x00000037U /*!< DMAMUX TIM3 CH2 request */
192 #define LL_DMAMUX_REQ_TIM3_CH3 0x00000038U /*!< DMAMUX TIM3 CH3 request */
193 #define LL_DMAMUX_REQ_TIM3_CH4 0x00000039U /*!< DMAMUX TIM3 CH4 request */
194 #define LL_DMAMUX_REQ_TIM3_TRIG 0x0000003AU /*!< DMAMUX TIM3 TRIG request */
195 #define LL_DMAMUX_REQ_TIM3_UP 0x0000003BU /*!< DMAMUX TIM3 UP request */
196 #define LL_DMAMUX_REQ_TIM6_UP 0x0000003CU /*!< DMAMUX TIM6 UP request */
197 #define LL_DMAMUX_REQ_TIM7_UP 0x0000003DU /*!< DMAMUX TIM7 UP request */
198 #define LL_DMAMUX_REQ_TIM15_CH1 0x0000003EU /*!< DMAMUX TIM15 CH1 request */
199 #define LL_DMAMUX_REQ_TIM15_CH2 0x0000003FU /*!< DMAMUX TIM15 CH2 request */
200 #define LL_DMAMUX_REQ_TIM15_TRIG_COM 0x00000040U /*!< DMAMUX TIM15 TRIG COMrequest */
201 #define LL_DMAMUX_REQ_TIM15_UP 0x00000041U /*!< DMAMUX TIM15 UP request */
202 #define LL_DMAMUX_REQ_TIM16_CH1 0x00000042U /*!< DMAMUX TIM16 CH1 request */
203 #define LL_DMAMUX_REQ_TIM16_COM 0x00000043U /*!< DMAMUX TIM16 COM request */
204 #define LL_DMAMUX_REQ_TIM16_UP 0x00000044U /*!< DMAMUX TIM16 UP request */
205 #define LL_DMAMUX_REQ_USART1_RX 0x00000045U /*!< DMAMUX USART1 RX request */
206 #define LL_DMAMUX_REQ_USART1_TX 0x00000046U /*!< DMAMUX USART1 TX request */
207 #define LL_DMAMUX_REQ_USART2_RX 0x00000047U /*!< DMAMUX USART2 RX request */
208 #define LL_DMAMUX_REQ_USART2_TX 0x00000048U /*!< DMAMUX USART2 TX request */
209 #define LL_DMAMUX_REQ_USART3_RX 0x00000049U /*!< DMAMUX USART3 RX request */
210 #define LL_DMAMUX_REQ_USART3_TX 0x0000004AU /*!< DMAMUX USART3 TX request */
211 #define LL_DMAMUX_REQ_USART4_RX 0x0000004BU /*!< DMAMUX USART4 RX request */
212 #define LL_DMAMUX_REQ_USART4_TX 0x0000004CU /*!< DMAMUX USART4 TX request */
213
214 #define LL_DMAMUX_MAX_REQ LL_DMAMUX_REQ_USART4_TX
215 /**
216 * @}
217 */
218
219 /** @defgroup DMAMUX_LL_EC_CHANNEL DMAMUX Channel
220 * @{
221 */
222 #define LL_DMAMUX_CHANNEL_0 0x00000000U /*!< DMAMUX Channel 0 connected to DMA1 Channel 1 */
223 #define LL_DMAMUX_CHANNEL_1 0x00000001U /*!< DMAMUX Channel 1 connected to DMA1 Channel 2 */
224 #define LL_DMAMUX_CHANNEL_2 0x00000002U /*!< DMAMUX Channel 2 connected to DMA1 Channel 3 */
225 #define LL_DMAMUX_CHANNEL_3 0x00000003U /*!< DMAMUX Channel 3 connected to DMA1 Channel 4 */
226 #define LL_DMAMUX_CHANNEL_4 0x00000004U /*!< DMAMUX Channel 4 connected to DMA1 Channel 5 */
227 #define LL_DMAMUX_CHANNEL_5 0x00000005U /*!< DMAMUX Channel 5 connected to DMA1 Channel 6 */
228 #define LL_DMAMUX_CHANNEL_6 0x00000006U /*!< DMAMUX Channel 6 connected to DMA1 Channel 7 */
229 #if defined(DMA2)
230 #define LL_DMAMUX_CHANNEL_7 0x00000007U /*!< DMAMUX Channel 7 connected to DMA2 Channel 1 */
231 #define LL_DMAMUX_CHANNEL_8 0x00000008U /*!< DMAMUX Channel 8 connected to DMA2 Channel 2 */
232 #define LL_DMAMUX_CHANNEL_9 0x00000009U /*!< DMAMUX Channel 9 connected to DMA2 Channel 3 */
233 #define LL_DMAMUX_CHANNEL_10 0x0000000AU /*!< DMAMUX Channel 10 connected to DMA2 Channel 4 */
234 #define LL_DMAMUX_CHANNEL_11 0x0000000BU /*!< DMAMUX Channel 11 connected to DMA2 Channel 5 */
235 #endif /* DMA2 */
236 /**
237 * @}
238 */
239
240 /** @defgroup DMAMUX_LL_EC_SYNC_NO Synchronization Signal Polarity
241 * @{
242 */
243 #define LL_DMAMUX_SYNC_NO_EVENT 0x00000000U /*!< All requests are blocked */
244 #define LL_DMAMUX_SYNC_POL_RISING DMAMUX_CxCR_SPOL_0 /*!< Synchronization on event on rising edge */
245 #define LL_DMAMUX_SYNC_POL_FALLING DMAMUX_CxCR_SPOL_1 /*!< Synchronization on event on falling edge */
246 #define LL_DMAMUX_SYNC_POL_RISING_FALLING (DMAMUX_CxCR_SPOL_0 | DMAMUX_CxCR_SPOL_1) /*!< Synchronization on event on rising and falling edge */
247 /**
248 * @}
249 */
250
251 /** @defgroup DMAMUX_LL_EC_SYNC_EVT Synchronization Signal Event
252 * @{
253 */
254 #define LL_DMAMUX_SYNC_EXTI_LINE0 0x00000000U /*!< Synchronization signal from EXTI Line0 */
255 #define LL_DMAMUX_SYNC_EXTI_LINE1 DMAMUX_CxCR_SYNC_ID_0 /*!< Synchronization signal from EXTI Line1 */
256 #define LL_DMAMUX_SYNC_EXTI_LINE2 DMAMUX_CxCR_SYNC_ID_1 /*!< Synchronization signal from EXTI Line2 */
257 #define LL_DMAMUX_SYNC_EXTI_LINE3 (DMAMUX_CxCR_SYNC_ID_1 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line3 */
258 #define LL_DMAMUX_SYNC_EXTI_LINE4 DMAMUX_CxCR_SYNC_ID_2 /*!< Synchronization signal from EXTI Line4 */
259 #define LL_DMAMUX_SYNC_EXTI_LINE5 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line5 */
260 #define LL_DMAMUX_SYNC_EXTI_LINE6 (DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line6 */
261 #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 */
262 #define LL_DMAMUX_SYNC_EXTI_LINE8 DMAMUX_CxCR_SYNC_ID_3 /*!< Synchronization signal from EXTI Line8 */
263 #define LL_DMAMUX_SYNC_EXTI_LINE9 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line9 */
264 #define LL_DMAMUX_SYNC_EXTI_LINE10 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from EXTI Line10 */
265 #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 */
266 #define LL_DMAMUX_SYNC_EXTI_LINE12 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2) /*!< Synchronization signal from EXTI Line12 */
267 #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 */
268 #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 */
269 #define LL_DMAMUX_SYNC_EXTI_LINE15 (DMAMUX_CxCR_SYNC_ID_3 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1 | \
270 DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from EXTI Line1 5 */
271 #define LL_DMAMUX_SYNC_DMAMUX_CH0 DMAMUX_CxCR_SYNC_ID_4 /*!< Synchronization signal from DMAMUX channel0 Event */
272 #define LL_DMAMUX_SYNC_DMAMUX_CH1 (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from DMAMUX channel1 Event */
273 #define LL_DMAMUX_SYNC_DMAMUX_CH2 (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from DMAMUX channel2 Event */
274 #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 */
275 #if defined(LPTIM1)
276 #define LL_DMAMUX_SYNC_LPTIM1_OUT (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_2) /*!< Synchronization signal from LPTIM1 Output */
277 #endif /* LPTIM1 */
278 #if defined(LPTIM2)
279 #define LL_DMAMUX_SYNC_LPTIM2_OUT (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_0) /*!< Synchronization signal from LPTIM2 Output */
280 #endif /* LPTIM2 */
281 #if defined(LPTIM3)
282 #define LL_DMAMUX_SYNC_LPTIM3_OUT (DMAMUX_CxCR_SYNC_ID_4 | DMAMUX_CxCR_SYNC_ID_2 | DMAMUX_CxCR_SYNC_ID_1) /*!< Synchronization signal from LPTIM3 Output */
283 #endif /* LPTIM3 */
284 /**
285 * @}
286 */
287
288 /** @defgroup DMAMUX_LL_EC_REQUEST_GENERATOR Request Generator Channel
289 * @{
290 */
291 #define LL_DMAMUX_REQ_GEN_0 0x00000000U
292 #define LL_DMAMUX_REQ_GEN_1 0x00000001U
293 #define LL_DMAMUX_REQ_GEN_2 0x00000002U
294 #define LL_DMAMUX_REQ_GEN_3 0x00000003U
295 /**
296 * @}
297 */
298
299 /** @defgroup DMAMUX_LL_EC_REQUEST_GEN_POLARITY External Request Signal Generation Polarity
300 * @{
301 */
302 #define LL_DMAMUX_REQ_GEN_NO_EVENT 0x00000000U /*!< No external DMA request generation */
303 #define LL_DMAMUX_REQ_GEN_POL_RISING DMAMUX_RGxCR_GPOL_0 /*!< External DMA request generation on event on rising edge */
304 #define LL_DMAMUX_REQ_GEN_POL_FALLING DMAMUX_RGxCR_GPOL_1 /*!< External DMA request generation on event on falling edge */
305 #define LL_DMAMUX_REQ_GEN_POL_RISING_FALLING (DMAMUX_RGxCR_GPOL_0 | DMAMUX_RGxCR_GPOL_1) /*!< External DMA request generation on rising and falling edge */
306 /**
307 * @}
308 */
309
310 /** @defgroup DMAMUX_LL_EC_REQUEST_GEN External Request Signal Generation
311 * @{
312 */
313 #define LL_DMAMUX_REQ_GEN_EXTI_LINE0 0x00000000U /*!< Request signal generation from EXTI Line0 */
314 #define LL_DMAMUX_REQ_GEN_EXTI_LINE1 DMAMUX_RGxCR_SIG_ID_0 /*!< Request signal generation from EXTI Line1 */
315 #define LL_DMAMUX_REQ_GEN_EXTI_LINE2 DMAMUX_RGxCR_SIG_ID_1 /*!< Request signal generation from EXTI Line2 */
316 #define LL_DMAMUX_REQ_GEN_EXTI_LINE3 (DMAMUX_RGxCR_SIG_ID_1 |DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line3 */
317 #define LL_DMAMUX_REQ_GEN_EXTI_LINE4 DMAMUX_RGxCR_SIG_ID_2 /*!< Request signal generation from EXTI Line4 */
318 #define LL_DMAMUX_REQ_GEN_EXTI_LINE5 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line5 */
319 #define LL_DMAMUX_REQ_GEN_EXTI_LINE6 (DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line6 */
320 #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 */
321 #define LL_DMAMUX_REQ_GEN_EXTI_LINE8 DMAMUX_RGxCR_SIG_ID_3 /*!< Request signal generation from EXTI Line8 */
322 #define LL_DMAMUX_REQ_GEN_EXTI_LINE9 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line9 */
323 #define LL_DMAMUX_REQ_GEN_EXTI_LINE10 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from EXTI Line10 */
324 #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 */
325 #define LL_DMAMUX_REQ_GEN_EXTI_LINE12 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2) /*!< Request signal generation from EXTI Line12 */
326 #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 */
327 #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 */
328 #define LL_DMAMUX_REQ_GEN_EXTI_LINE15 (DMAMUX_RGxCR_SIG_ID_3 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1 | \
329 DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from EXTI Line15 */
330 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH0 DMAMUX_RGxCR_SIG_ID_4 /*!< Request signal generation from DMAMUX channel0 Event */
331 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH1 (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from DMAMUX channel1 Event */
332 #define LL_DMAMUX_REQ_GEN_DMAMUX_CH2 (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from DMAMUX channel2 Event */
333 #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 */
334 #if defined(LPTIM1)
335 #define LL_DMAMUX_REQ_GEN_LPTIM1_OUT (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_2) /*!< Request signal generation from LPTIM1 Output */
336 #endif /* LPTIM1 */
337 #if defined(LPTIM2)
338 #define LL_DMAMUX_REQ_GEN_LPTIM2_OUT (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_0) /*!< Request signal generation from LPTIM2 Output */
339 #endif /* LPTIM2 */
340 #if defined(LPTIM3)
341 #define LL_DMAMUX_REQ_GEN_LPTIM3_OUT (DMAMUX_RGxCR_SIG_ID_4 | DMAMUX_RGxCR_SIG_ID_2 | DMAMUX_RGxCR_SIG_ID_1) /*!< Request signal generation from LPTIM3 Output */
342 #endif /* LPTIM3 */
343 /**
344 * @}
345 */
346
347 /**
348 * @}
349 */
350
351 /* Exported macro ------------------------------------------------------------*/
352 /** @defgroup DMAMUX_LL_Exported_Macros DMAMUX Exported Macros
353 * @{
354 */
355
356 /** @defgroup DMAMUX_LL_EM_WRITE_READ Common Write and read registers macros
357 * @{
358 */
359 /**
360 * @brief Write a value in DMAMUX register
361 * @param __INSTANCE__ DMAMUX Instance
362 * @param __REG__ Register to be written
363 * @param __VALUE__ Value to be written in the register
364 * @retval None
365 */
366 #define LL_DMAMUX_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
367
368 /**
369 * @brief Read a value in DMAMUX register
370 * @param __INSTANCE__ DMAMUX Instance
371 * @param __REG__ Register to be read
372 * @retval Register value
373 */
374 #define LL_DMAMUX_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
375 /**
376 * @}
377 */
378
379 /**
380 * @}
381 */
382
383 /* Exported functions --------------------------------------------------------*/
384 /** @defgroup DMAMUX_LL_Exported_Functions DMAMUX Exported Functions
385 * @{
386 */
387
388 /** @defgroup DMAMUX_LL_EF_Configuration Configuration
389 * @{
390 */
391 /**
392 * @brief Set DMAMUX request ID for DMAMUX Channel x.
393 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
394 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
395 * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_SetRequestID
396 * @param DMAMUXx DMAMUXx Instance
397 * @param Channel This parameter can be one of the following values:
398 * @arg @ref LL_DMAMUX_CHANNEL_0
399 * @arg @ref LL_DMAMUX_CHANNEL_1
400 * @arg @ref LL_DMAMUX_CHANNEL_2
401 * @arg @ref LL_DMAMUX_CHANNEL_3
402 * @arg @ref LL_DMAMUX_CHANNEL_4
403 * @arg @ref LL_DMAMUX_CHANNEL_5
404 * @arg @ref LL_DMAMUX_CHANNEL_6
405 *
406 * @arg All the next values are only available on chip which support DMA2:
407 * @arg @ref LL_DMAMUX_CHANNEL_7
408 * @arg @ref LL_DMAMUX_CHANNEL_8
409 * @arg @ref LL_DMAMUX_CHANNEL_9
410 * @arg @ref LL_DMAMUX_CHANNEL_10
411 * @arg @ref LL_DMAMUX_CHANNEL_11
412 * @param Request This parameter can be one of the following values:
413 * @arg @ref LL_DMAMUX_REQ_MEM2MEM
414 * @arg @ref LL_DMAMUX_REQ_GENERATOR0
415 * @arg @ref LL_DMAMUX_REQ_GENERATOR1
416 * @arg @ref LL_DMAMUX_REQ_GENERATOR2
417 * @arg @ref LL_DMAMUX_REQ_GENERATOR3
418 * @arg @ref LL_DMAMUX_REQ_ADC
419 * @arg @ref LL_DMAMUX_REQ_AES_IN
420 * @arg @ref LL_DMAMUX_REQ_AES_OUT
421 * @arg @ref LL_DMAMUX_REQ_DAC_CH1
422 * @arg @ref LL_DMAMUX_REQ_I2C1_RX
423 * @arg @ref LL_DMAMUX_REQ_I2C1_TX
424 * @arg @ref LL_DMAMUX_REQ_I2C2_RX
425 * @arg @ref LL_DMAMUX_REQ_I2C2_TX
426 * @arg @ref LL_DMAMUX_REQ_I2C3_RX
427 * @arg @ref LL_DMAMUX_REQ_I2C3_TX
428 * @arg @ref LL_DMAMUX_REQ_I2C4_RX
429 * @arg @ref LL_DMAMUX_REQ_I2C4_TX
430 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC1
431 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC2
432 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC3
433 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC4
434 * @arg @ref LL_DMAMUX_REQ_LPTIM1_UE
435 * @arg @ref LL_DMAMUX_REQ_LPTIM2_IC1
436 * @arg @ref LL_DMAMUX_REQ_LPTIM2_IC2
437 * @arg @ref LL_DMAMUX_REQ_LPTIM2_UE
438 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC1
439 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC2
440 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC3
441 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC4
442 * @arg @ref LL_DMAMUX_REQ_LPTIM3_UE
443 * @arg @ref LL_DMAMUX_REQ_LPUART1_RX
444 * @arg @ref LL_DMAMUX_REQ_LPUART1_TX
445 * @arg @ref LL_DMAMUX_REQ_LPUART2_RX
446 * @arg @ref LL_DMAMUX_REQ_LPUART2_TX
447 * @arg @ref LL_DMAMUX_REQ_LPUART3_RX
448 * @arg @ref LL_DMAMUX_REQ_LPUART3_TX
449 * @arg @ref LL_DMAMUX_REQ_SPI1_RX
450 * @arg @ref LL_DMAMUX_REQ_SPI1_TX
451 * @arg @ref LL_DMAMUX_REQ_SPI2_RX
452 * @arg @ref LL_DMAMUX_REQ_SPI2_TX
453 * @arg @ref LL_DMAMUX_REQ_SPI3_RX
454 * @arg @ref LL_DMAMUX_REQ_SPI3_TX
455 * @arg @ref LL_DMAMUX_REQ_TIM1_CH1
456 * @arg @ref LL_DMAMUX_REQ_TIM1_CH2
457 * @arg @ref LL_DMAMUX_REQ_TIM1_CH3
458 * @arg @ref LL_DMAMUX_REQ_TIM1_CH4
459 * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG_COM
460 * @arg @ref LL_DMAMUX_REQ_TIM1_UP
461 * @arg @ref LL_DMAMUX_REQ_TIM2_CH1
462 * @arg @ref LL_DMAMUX_REQ_TIM2_CH2
463 * @arg @ref LL_DMAMUX_REQ_TIM2_CH3
464 * @arg @ref LL_DMAMUX_REQ_TIM2_CH4
465 * @arg @ref LL_DMAMUX_REQ_TIM2_TRIG
466 * @arg @ref LL_DMAMUX_REQ_TIM2_UP
467 * @arg @ref LL_DMAMUX_REQ_TIM3_CH1
468 * @arg @ref LL_DMAMUX_REQ_TIM3_CH2
469 * @arg @ref LL_DMAMUX_REQ_TIM3_CH3
470 * @arg @ref LL_DMAMUX_REQ_TIM3_CH4
471 * @arg @ref LL_DMAMUX_REQ_TIM3_TRIG
472 * @arg @ref LL_DMAMUX_REQ_TIM3_UP
473 * @arg @ref LL_DMAMUX_REQ_TIM6_UP
474 * @arg @ref LL_DMAMUX_REQ_TIM7_UP
475 * @arg @ref LL_DMAMUX_REQ_TIM15_CH1
476 * @arg @ref LL_DMAMUX_REQ_TIM15_CH2
477 * @arg @ref LL_DMAMUX_REQ_TIM15_TRIG_COM
478 * @arg @ref LL_DMAMUX_REQ_TIM15_UP
479 * @arg @ref LL_DMAMUX_REQ_TIM16_CH1
480 * @arg @ref LL_DMAMUX_REQ_TIM16_COM
481 * @arg @ref LL_DMAMUX_REQ_TIM16_UP
482 * @arg @ref LL_DMAMUX_REQ_USART1_RX
483 * @arg @ref LL_DMAMUX_REQ_USART1_TX
484 * @arg @ref LL_DMAMUX_REQ_USART2_RX
485 * @arg @ref LL_DMAMUX_REQ_USART2_TX
486 * @arg @ref LL_DMAMUX_REQ_USART3_RX
487 * @arg @ref LL_DMAMUX_REQ_USART3_TX
488 * @arg @ref LL_DMAMUX_REQ_USART4_RX
489 * @arg @ref LL_DMAMUX_REQ_USART4_TX
490 * @retval None
491 */
LL_DMAMUX_SetRequestID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t Request)492 __STATIC_INLINE void LL_DMAMUX_SetRequestID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Request)
493 {
494 (void)(DMAMUXx);
495 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
496 }
497
498 /**
499 * @brief Get DMAMUX request ID for DMAMUX Channel x.
500 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
501 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
502 * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_GetRequestID
503 * @param DMAMUXx DMAMUXx Instance
504 * @param Channel This parameter can be one of the following values:
505 * @arg @ref LL_DMAMUX_CHANNEL_0
506 * @arg @ref LL_DMAMUX_CHANNEL_1
507 * @arg @ref LL_DMAMUX_CHANNEL_2
508 * @arg @ref LL_DMAMUX_CHANNEL_3
509 * @arg @ref LL_DMAMUX_CHANNEL_4
510 * @arg @ref LL_DMAMUX_CHANNEL_5
511 * @arg @ref LL_DMAMUX_CHANNEL_6
512 *
513 * @arg All the next values are only available on chip which support DMA2:
514 * @arg @ref LL_DMAMUX_CHANNEL_7
515 * @arg @ref LL_DMAMUX_CHANNEL_8
516 * @arg @ref LL_DMAMUX_CHANNEL_9
517 * @arg @ref LL_DMAMUX_CHANNEL_10
518 * @arg @ref LL_DMAMUX_CHANNEL_11
519 * @retval Returned value can be one of the following values:
520 * @arg @ref LL_DMAMUX_REQ_MEM2MEM
521 * @arg @ref LL_DMAMUX_REQ_GENERATOR0
522 * @arg @ref LL_DMAMUX_REQ_GENERATOR1
523 * @arg @ref LL_DMAMUX_REQ_GENERATOR2
524 * @arg @ref LL_DMAMUX_REQ_GENERATOR3
525 * @arg @ref LL_DMAMUX_REQ_ADC
526 * @arg @ref LL_DMAMUX_REQ_AES_IN
527 * @arg @ref LL_DMAMUX_REQ_AES_OUT
528 * @arg @ref LL_DMAMUX_REQ_DAC_CH1
529 * @arg @ref LL_DMAMUX_REQ_I2C1_RX
530 * @arg @ref LL_DMAMUX_REQ_I2C1_TX
531 * @arg @ref LL_DMAMUX_REQ_I2C2_RX
532 * @arg @ref LL_DMAMUX_REQ_I2C2_TX
533 * @arg @ref LL_DMAMUX_REQ_I2C3_RX
534 * @arg @ref LL_DMAMUX_REQ_I2C3_TX
535 * @arg @ref LL_DMAMUX_REQ_I2C4_RX
536 * @arg @ref LL_DMAMUX_REQ_I2C4_TX
537 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC1
538 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC2
539 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC3
540 * @arg @ref LL_DMAMUX_REQ_LPTIM1_IC4
541 * @arg @ref LL_DMAMUX_REQ_LPTIM1_UE
542 * @arg @ref LL_DMAMUX_REQ_LPTIM2_IC1
543 * @arg @ref LL_DMAMUX_REQ_LPTIM2_IC2
544 * @arg @ref LL_DMAMUX_REQ_LPTIM2_UE
545 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC1
546 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC2
547 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC3
548 * @arg @ref LL_DMAMUX_REQ_LPTIM3_IC4
549 * @arg @ref LL_DMAMUX_REQ_LPTIM3_UE
550 * @arg @ref LL_DMAMUX_REQ_LPUART1_RX
551 * @arg @ref LL_DMAMUX_REQ_LPUART1_TX
552 * @arg @ref LL_DMAMUX_REQ_LPUART2_RX
553 * @arg @ref LL_DMAMUX_REQ_LPUART2_TX
554 * @arg @ref LL_DMAMUX_REQ_LPUART3_RX
555 * @arg @ref LL_DMAMUX_REQ_LPUART3_TX
556 * @arg @ref LL_DMAMUX_REQ_SPI1_RX
557 * @arg @ref LL_DMAMUX_REQ_SPI1_TX
558 * @arg @ref LL_DMAMUX_REQ_SPI2_RX
559 * @arg @ref LL_DMAMUX_REQ_SPI2_TX
560 * @arg @ref LL_DMAMUX_REQ_SPI3_RX
561 * @arg @ref LL_DMAMUX_REQ_SPI3_TX
562 * @arg @ref LL_DMAMUX_REQ_TIM1_CH1
563 * @arg @ref LL_DMAMUX_REQ_TIM1_CH2
564 * @arg @ref LL_DMAMUX_REQ_TIM1_CH3
565 * @arg @ref LL_DMAMUX_REQ_TIM1_CH4
566 * @arg @ref LL_DMAMUX_REQ_TIM1_TRIG_COM
567 * @arg @ref LL_DMAMUX_REQ_TIM1_UP
568 * @arg @ref LL_DMAMUX_REQ_TIM2_CH1
569 * @arg @ref LL_DMAMUX_REQ_TIM2_CH2
570 * @arg @ref LL_DMAMUX_REQ_TIM2_CH3
571 * @arg @ref LL_DMAMUX_REQ_TIM2_CH4
572 * @arg @ref LL_DMAMUX_REQ_TIM2_TRIG
573 * @arg @ref LL_DMAMUX_REQ_TIM2_UP
574 * @arg @ref LL_DMAMUX_REQ_TIM3_CH1
575 * @arg @ref LL_DMAMUX_REQ_TIM3_CH2
576 * @arg @ref LL_DMAMUX_REQ_TIM3_CH3
577 * @arg @ref LL_DMAMUX_REQ_TIM3_CH4
578 * @arg @ref LL_DMAMUX_REQ_TIM3_TRIG
579 * @arg @ref LL_DMAMUX_REQ_TIM3_UP
580 * @arg @ref LL_DMAMUX_REQ_TIM6_UP
581 * @arg @ref LL_DMAMUX_REQ_TIM7_UP
582 * @arg @ref LL_DMAMUX_REQ_TIM15_CH1
583 * @arg @ref LL_DMAMUX_REQ_TIM15_CH2
584 * @arg @ref LL_DMAMUX_REQ_TIM15_TRIG_COM
585 * @arg @ref LL_DMAMUX_REQ_TIM15_UP
586 * @arg @ref LL_DMAMUX_REQ_TIM16_CH1
587 * @arg @ref LL_DMAMUX_REQ_TIM16_COM
588 * @arg @ref LL_DMAMUX_REQ_TIM16_UP
589 * @arg @ref LL_DMAMUX_REQ_USART1_RX
590 * @arg @ref LL_DMAMUX_REQ_USART1_TX
591 * @arg @ref LL_DMAMUX_REQ_USART2_RX
592 * @arg @ref LL_DMAMUX_REQ_USART2_TX
593 * @arg @ref LL_DMAMUX_REQ_USART3_RX
594 * @arg @ref LL_DMAMUX_REQ_USART3_TX
595 * @arg @ref LL_DMAMUX_REQ_USART4_RX
596 * @arg @ref LL_DMAMUX_REQ_USART4_TX
597 */
LL_DMAMUX_GetRequestID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)598 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
599 {
600 (void)(DMAMUXx);
601 return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_DMAREQ_ID));
602 }
603
604 /**
605 * @brief Set the number of DMA request that will be autorized after a synchronization event and/or the number of
606 * DMA request needed to generate an event.
607 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
608 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
609 * @rmtoll CxCR NBREQ LL_DMAMUX_SetSyncRequestNb
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 * @arg @ref LL_DMAMUX_CHANNEL_5
618 * @arg @ref LL_DMAMUX_CHANNEL_6
619 *
620 * @arg All the next values are only available on chip which support DMA2:
621 * @arg @ref LL_DMAMUX_CHANNEL_7
622 * @arg @ref LL_DMAMUX_CHANNEL_8
623 * @arg @ref LL_DMAMUX_CHANNEL_9
624 * @arg @ref LL_DMAMUX_CHANNEL_10
625 * @arg @ref LL_DMAMUX_CHANNEL_11
626 * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
627 * @retval None
628 */
LL_DMAMUX_SetSyncRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t RequestNb)629 __STATIC_INLINE void LL_DMAMUX_SetSyncRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel,
630 uint32_t RequestNb)
631 {
632 (void)(DMAMUXx);
633 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ, ((RequestNb - 1U) << DMAMUX_CxCR_NBREQ_Pos));
634 }
635
636 /**
637 * @brief Get the number of DMA request that will be autorized after a synchronization event and/or the number of
638 * DMA request needed to generate an event.
639 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
640 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
641 * @rmtoll CxCR NBREQ LL_DMAMUX_GetSyncRequestNb
642 * @param DMAMUXx DMAMUXx Instance
643 * @param Channel This parameter can be one of the following values:
644 * @arg @ref LL_DMAMUX_CHANNEL_0
645 * @arg @ref LL_DMAMUX_CHANNEL_1
646 * @arg @ref LL_DMAMUX_CHANNEL_2
647 * @arg @ref LL_DMAMUX_CHANNEL_3
648 * @arg @ref LL_DMAMUX_CHANNEL_4
649 * @arg @ref LL_DMAMUX_CHANNEL_5
650 * @arg @ref LL_DMAMUX_CHANNEL_6
651 *
652 * @arg All the next values are only available on chip which support DMA2:
653 * @arg @ref LL_DMAMUX_CHANNEL_7
654 * @arg @ref LL_DMAMUX_CHANNEL_8
655 * @arg @ref LL_DMAMUX_CHANNEL_9
656 * @arg @ref LL_DMAMUX_CHANNEL_10
657 * @arg @ref LL_DMAMUX_CHANNEL_11
658 * @retval Between Min_Data = 1 and Max_Data = 32
659 */
LL_DMAMUX_GetSyncRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)660 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
661 {
662 (void)(DMAMUXx);
663 return (uint32_t)(((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_NBREQ)) >> DMAMUX_CxCR_NBREQ_Pos) + 1U);
664 }
665
666 /**
667 * @brief Set the polarity of the signal on which the DMA request is synchronized.
668 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
669 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
670 * @rmtoll CxCR SPOL LL_DMAMUX_SetSyncPolarity
671 * @param DMAMUXx DMAMUXx Instance
672 * @param Channel This parameter can be one of the following values:
673 * @arg @ref LL_DMAMUX_CHANNEL_0
674 * @arg @ref LL_DMAMUX_CHANNEL_1
675 * @arg @ref LL_DMAMUX_CHANNEL_2
676 * @arg @ref LL_DMAMUX_CHANNEL_3
677 * @arg @ref LL_DMAMUX_CHANNEL_4
678 * @arg @ref LL_DMAMUX_CHANNEL_5
679 * @arg @ref LL_DMAMUX_CHANNEL_6
680 *
681 * @arg All the next values are only available on chip which support DMA2:
682 * @arg @ref LL_DMAMUX_CHANNEL_7
683 * @arg @ref LL_DMAMUX_CHANNEL_8
684 * @arg @ref LL_DMAMUX_CHANNEL_9
685 * @arg @ref LL_DMAMUX_CHANNEL_10
686 * @arg @ref LL_DMAMUX_CHANNEL_11
687 * @param Polarity This parameter can be one of the following values:
688 * @arg @ref LL_DMAMUX_SYNC_NO_EVENT
689 * @arg @ref LL_DMAMUX_SYNC_POL_RISING
690 * @arg @ref LL_DMAMUX_SYNC_POL_FALLING
691 * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
692 * @retval None
693 */
LL_DMAMUX_SetSyncPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t Polarity)694 __STATIC_INLINE void LL_DMAMUX_SetSyncPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel,
695 uint32_t Polarity)
696 {
697 (void)(DMAMUXx);
698 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL, Polarity);
699 }
700
701 /**
702 * @brief Get the polarity of the signal on which the DMA request is synchronized.
703 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
704 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
705 * @rmtoll CxCR SPOL LL_DMAMUX_GetSyncPolarity
706 * @param DMAMUXx DMAMUXx Instance
707 * @param Channel This parameter can be one of the following values:
708 * @arg @ref LL_DMAMUX_CHANNEL_0
709 * @arg @ref LL_DMAMUX_CHANNEL_1
710 * @arg @ref LL_DMAMUX_CHANNEL_2
711 * @arg @ref LL_DMAMUX_CHANNEL_3
712 * @arg @ref LL_DMAMUX_CHANNEL_4
713 * @arg @ref LL_DMAMUX_CHANNEL_5
714 * @arg @ref LL_DMAMUX_CHANNEL_6
715 *
716 * @arg All the next values are only available on chip which support DMA2:
717 * @arg @ref LL_DMAMUX_CHANNEL_7
718 * @arg @ref LL_DMAMUX_CHANNEL_8
719 * @arg @ref LL_DMAMUX_CHANNEL_9
720 * @arg @ref LL_DMAMUX_CHANNEL_10
721 * @arg @ref LL_DMAMUX_CHANNEL_11
722 * @retval Returned value can be one of the following values:
723 * @arg @ref LL_DMAMUX_SYNC_NO_EVENT
724 * @arg @ref LL_DMAMUX_SYNC_POL_RISING
725 * @arg @ref LL_DMAMUX_SYNC_POL_FALLING
726 * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
727 */
LL_DMAMUX_GetSyncPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)728 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
729 {
730 (void)(DMAMUXx);
731 return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SPOL));
732 }
733
734 /**
735 * @brief Enable the Event Generation on DMAMUX channel x.
736 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
737 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
738 * @rmtoll CxCR EGE LL_DMAMUX_EnableEventGeneration
739 * @param DMAMUXx DMAMUXx Instance
740 * @param Channel This parameter can be one of the following values:
741 * @arg @ref LL_DMAMUX_CHANNEL_0
742 * @arg @ref LL_DMAMUX_CHANNEL_1
743 * @arg @ref LL_DMAMUX_CHANNEL_2
744 * @arg @ref LL_DMAMUX_CHANNEL_3
745 * @arg @ref LL_DMAMUX_CHANNEL_4
746 * @arg @ref LL_DMAMUX_CHANNEL_5
747 * @arg @ref LL_DMAMUX_CHANNEL_6
748 *
749 * @arg All the next values are only available on chip which support DMA2:
750 * @arg @ref LL_DMAMUX_CHANNEL_7
751 * @arg @ref LL_DMAMUX_CHANNEL_8
752 * @arg @ref LL_DMAMUX_CHANNEL_9
753 * @arg @ref LL_DMAMUX_CHANNEL_10
754 * @arg @ref LL_DMAMUX_CHANNEL_11
755 * @retval None
756 */
LL_DMAMUX_EnableEventGeneration(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)757 __STATIC_INLINE void LL_DMAMUX_EnableEventGeneration(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
758 {
759 (void)(DMAMUXx);
760 SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE);
761 }
762
763 /**
764 * @brief Disable the Event Generation on DMAMUX channel x.
765 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
766 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
767 * @rmtoll CxCR EGE LL_DMAMUX_DisableEventGeneration
768 * @param DMAMUXx DMAMUXx Instance
769 * @param Channel This parameter can be one of the following values:
770 * @arg @ref LL_DMAMUX_CHANNEL_0
771 * @arg @ref LL_DMAMUX_CHANNEL_1
772 * @arg @ref LL_DMAMUX_CHANNEL_2
773 * @arg @ref LL_DMAMUX_CHANNEL_3
774 * @arg @ref LL_DMAMUX_CHANNEL_4
775 * @arg @ref LL_DMAMUX_CHANNEL_5
776 * @arg @ref LL_DMAMUX_CHANNEL_6
777 *
778 * @arg All the next values are only available on chip which support DMA2:
779 * @arg @ref LL_DMAMUX_CHANNEL_7
780 * @arg @ref LL_DMAMUX_CHANNEL_8
781 * @arg @ref LL_DMAMUX_CHANNEL_9
782 * @arg @ref LL_DMAMUX_CHANNEL_10
783 * @arg @ref LL_DMAMUX_CHANNEL_11
784 * @retval None
785 */
LL_DMAMUX_DisableEventGeneration(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)786 __STATIC_INLINE void LL_DMAMUX_DisableEventGeneration(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
787 {
788 (void)(DMAMUXx);
789 CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE);
790 }
791
792 /**
793 * @brief Check if the Event Generation on DMAMUX channel x is enabled or disabled.
794 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
795 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
796 * @rmtoll CxCR EGE LL_DMAMUX_IsEnabledEventGeneration
797 * @param DMAMUXx DMAMUXx Instance
798 * @param Channel This parameter can be one of the following values:
799 * @arg @ref LL_DMAMUX_CHANNEL_0
800 * @arg @ref LL_DMAMUX_CHANNEL_1
801 * @arg @ref LL_DMAMUX_CHANNEL_2
802 * @arg @ref LL_DMAMUX_CHANNEL_3
803 * @arg @ref LL_DMAMUX_CHANNEL_4
804 * @arg @ref LL_DMAMUX_CHANNEL_5
805 * @arg @ref LL_DMAMUX_CHANNEL_6
806 *
807 * @arg All the next values are only available on chip which support DMA2:
808 * @arg @ref LL_DMAMUX_CHANNEL_7
809 * @arg @ref LL_DMAMUX_CHANNEL_8
810 * @arg @ref LL_DMAMUX_CHANNEL_9
811 * @arg @ref LL_DMAMUX_CHANNEL_10
812 * @arg @ref LL_DMAMUX_CHANNEL_11
813 * @retval State of bit (1 or 0).
814 */
LL_DMAMUX_IsEnabledEventGeneration(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)815 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledEventGeneration(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
816 {
817 (void)(DMAMUXx);
818 return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_EGE) == (DMAMUX_CxCR_EGE)) ? 1UL : 0UL);
819 }
820
821 /**
822 * @brief Enable the synchronization mode.
823 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
824 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
825 * @rmtoll CxCR SE LL_DMAMUX_EnableSync
826 * @param DMAMUXx DMAMUXx Instance
827 * @param Channel This parameter can be one of the following values:
828 * @arg @ref LL_DMAMUX_CHANNEL_0
829 * @arg @ref LL_DMAMUX_CHANNEL_1
830 * @arg @ref LL_DMAMUX_CHANNEL_2
831 * @arg @ref LL_DMAMUX_CHANNEL_3
832 * @arg @ref LL_DMAMUX_CHANNEL_4
833 * @arg @ref LL_DMAMUX_CHANNEL_5
834 * @arg @ref LL_DMAMUX_CHANNEL_6
835 *
836 * @arg All the next values are only available on chip which support DMA2:
837 * @arg @ref LL_DMAMUX_CHANNEL_7
838 * @arg @ref LL_DMAMUX_CHANNEL_8
839 * @arg @ref LL_DMAMUX_CHANNEL_9
840 * @arg @ref LL_DMAMUX_CHANNEL_10
841 * @arg @ref LL_DMAMUX_CHANNEL_11
842 * @retval None
843 */
LL_DMAMUX_EnableSync(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)844 __STATIC_INLINE void LL_DMAMUX_EnableSync(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
845 {
846 (void)(DMAMUXx);
847 SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE);
848 }
849
850 /**
851 * @brief Disable the synchronization mode.
852 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
853 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
854 * @rmtoll CxCR SE LL_DMAMUX_DisableSync
855 * @param DMAMUXx DMAMUXx Instance
856 * @param Channel This parameter can be one of the following values:
857 * @arg @ref LL_DMAMUX_CHANNEL_0
858 * @arg @ref LL_DMAMUX_CHANNEL_1
859 * @arg @ref LL_DMAMUX_CHANNEL_2
860 * @arg @ref LL_DMAMUX_CHANNEL_3
861 * @arg @ref LL_DMAMUX_CHANNEL_4
862 * @arg @ref LL_DMAMUX_CHANNEL_5
863 * @arg @ref LL_DMAMUX_CHANNEL_6
864 *
865 * @arg All the next values are only available on chip which support DMA2:
866 * @arg @ref LL_DMAMUX_CHANNEL_7
867 * @arg @ref LL_DMAMUX_CHANNEL_8
868 * @arg @ref LL_DMAMUX_CHANNEL_9
869 * @arg @ref LL_DMAMUX_CHANNEL_10
870 * @arg @ref LL_DMAMUX_CHANNEL_11
871 * @retval None
872 */
LL_DMAMUX_DisableSync(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)873 __STATIC_INLINE void LL_DMAMUX_DisableSync(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
874 {
875 (void)(DMAMUXx);
876 CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE);
877 }
878
879 /**
880 * @brief Check if the synchronization mode is enabled or disabled.
881 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
882 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
883 * @rmtoll CxCR SE LL_DMAMUX_IsEnabledSync
884 * @param DMAMUXx DMAMUXx Instance
885 * @param Channel This parameter can be one of the following values:
886 * @arg @ref LL_DMAMUX_CHANNEL_0
887 * @arg @ref LL_DMAMUX_CHANNEL_1
888 * @arg @ref LL_DMAMUX_CHANNEL_2
889 * @arg @ref LL_DMAMUX_CHANNEL_3
890 * @arg @ref LL_DMAMUX_CHANNEL_4
891 * @arg @ref LL_DMAMUX_CHANNEL_5
892 * @arg @ref LL_DMAMUX_CHANNEL_6
893 *
894 * @arg All the next values are only available on chip which support DMA2:
895 * @arg @ref LL_DMAMUX_CHANNEL_7
896 * @arg @ref LL_DMAMUX_CHANNEL_8
897 * @arg @ref LL_DMAMUX_CHANNEL_9
898 * @arg @ref LL_DMAMUX_CHANNEL_10
899 * @arg @ref LL_DMAMUX_CHANNEL_11
900 * @retval State of bit (1 or 0).
901 */
LL_DMAMUX_IsEnabledSync(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)902 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledSync(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
903 {
904 (void)(DMAMUXx);
905 return ((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SE) == (DMAMUX_CxCR_SE)) ? 1UL : 0UL);
906 }
907
908 /**
909 * @brief Set DMAMUX synchronization ID on DMAMUX Channel x.
910 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
911 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
912 * @rmtoll CxCR SYNC_ID LL_DMAMUX_SetSyncID
913 * @param DMAMUXx DMAMUXx Instance
914 * @param Channel This parameter can be one of the following values:
915 * @arg @ref LL_DMAMUX_CHANNEL_0
916 * @arg @ref LL_DMAMUX_CHANNEL_1
917 * @arg @ref LL_DMAMUX_CHANNEL_2
918 * @arg @ref LL_DMAMUX_CHANNEL_3
919 * @arg @ref LL_DMAMUX_CHANNEL_4
920 * @arg @ref LL_DMAMUX_CHANNEL_5
921 * @arg @ref LL_DMAMUX_CHANNEL_6
922 *
923 * @arg All the next values are only available on chip which support DMA2:
924 * @arg @ref LL_DMAMUX_CHANNEL_7
925 * @arg @ref LL_DMAMUX_CHANNEL_8
926 * @arg @ref LL_DMAMUX_CHANNEL_9
927 * @arg @ref LL_DMAMUX_CHANNEL_10
928 * @arg @ref LL_DMAMUX_CHANNEL_11
929 * @param SyncID This parameter can be one of the following values:
930 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0
931 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1
932 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2
933 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3
934 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4
935 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5
936 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6
937 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7
938 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8
939 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9
940 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10
941 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11
942 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12
943 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13
944 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14
945 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15
946 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0
947 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1
948 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH2
949 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH3
950 * @arg @ref LL_DMAMUX_SYNC_LPTIM1_OUT
951 * @arg @ref LL_DMAMUX_SYNC_LPTIM2_OUT
952 * @arg @ref LL_DMAMUX_SYNC_LPTIM3_OUT
953 * @retval None
954 */
LL_DMAMUX_SetSyncID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel,uint32_t SyncID)955 __STATIC_INLINE void LL_DMAMUX_SetSyncID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t SyncID)
956 {
957 (void)(DMAMUXx);
958 MODIFY_REG((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID, SyncID);
959 }
960
961 /**
962 * @brief Get DMAMUX synchronization ID on DMAMUX Channel x.
963 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
964 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
965 * @rmtoll CxCR SYNC_ID LL_DMAMUX_GetSyncID
966 * @param DMAMUXx DMAMUXx Instance
967 * @param Channel This parameter can be one of the following values:
968 * @arg @ref LL_DMAMUX_CHANNEL_0
969 * @arg @ref LL_DMAMUX_CHANNEL_1
970 * @arg @ref LL_DMAMUX_CHANNEL_2
971 * @arg @ref LL_DMAMUX_CHANNEL_3
972 * @arg @ref LL_DMAMUX_CHANNEL_4
973 * @arg @ref LL_DMAMUX_CHANNEL_5
974 * @arg @ref LL_DMAMUX_CHANNEL_6
975 *
976 * @arg All the next values are only available on chip which support DMA2:
977 * @arg @ref LL_DMAMUX_CHANNEL_7
978 * @arg @ref LL_DMAMUX_CHANNEL_8
979 * @arg @ref LL_DMAMUX_CHANNEL_9
980 * @arg @ref LL_DMAMUX_CHANNEL_10
981 * @arg @ref LL_DMAMUX_CHANNEL_11
982 * @retval Returned value can be one of the following values:
983 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE0
984 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE1
985 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE2
986 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE3
987 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE4
988 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE5
989 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE6
990 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE7
991 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE8
992 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE9
993 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE10
994 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE11
995 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE12
996 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE13
997 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE14
998 * @arg @ref LL_DMAMUX_SYNC_EXTI_LINE15
999 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH0
1000 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH1
1001 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH2
1002 * @arg @ref LL_DMAMUX_SYNC_DMAMUX_CH3
1003 * @arg @ref LL_DMAMUX_SYNC_LPTIM1_OUT
1004 * @arg @ref LL_DMAMUX_SYNC_LPTIM2_OUT
1005 * @arg @ref LL_DMAMUX_SYNC_LPTIM3_OUT
1006 */
LL_DMAMUX_GetSyncID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1007 __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1008 {
1009 (void)(DMAMUXx);
1010 return (uint32_t)(READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SYNC_ID));
1011 }
1012
1013 /**
1014 * @brief Enable the Request Generator.
1015 * @rmtoll RGxCR GE LL_DMAMUX_EnableRequestGen
1016 * @param DMAMUXx DMAMUXx Instance
1017 * @param RequestGenChannel This parameter can be one of the following values:
1018 * @arg @ref LL_DMAMUX_REQ_GEN_0
1019 * @arg @ref LL_DMAMUX_REQ_GEN_1
1020 * @arg @ref LL_DMAMUX_REQ_GEN_2
1021 * @arg @ref LL_DMAMUX_REQ_GEN_3
1022 * @retval None
1023 */
LL_DMAMUX_EnableRequestGen(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1024 __STATIC_INLINE void LL_DMAMUX_EnableRequestGen(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1025 {
1026 (void)(DMAMUXx);
1027 SET_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1028 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE);
1029 }
1030
1031 /**
1032 * @brief Disable the Request Generator.
1033 * @rmtoll RGxCR GE LL_DMAMUX_DisableRequestGen
1034 * @param DMAMUXx DMAMUXx Instance
1035 * @param RequestGenChannel This parameter can be one of the following values:
1036 * @arg @ref LL_DMAMUX_REQ_GEN_0
1037 * @arg @ref LL_DMAMUX_REQ_GEN_1
1038 * @arg @ref LL_DMAMUX_REQ_GEN_2
1039 * @arg @ref LL_DMAMUX_REQ_GEN_3
1040 * @retval None
1041 */
LL_DMAMUX_DisableRequestGen(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1042 __STATIC_INLINE void LL_DMAMUX_DisableRequestGen(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1043 {
1044 (void)(DMAMUXx);
1045 CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *) \
1046 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1047 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GE);
1048 }
1049
1050 /**
1051 * @brief Check if the Request Generator is enabled or disabled.
1052 * @rmtoll RGxCR GE LL_DMAMUX_IsEnabledRequestGen
1053 * @param DMAMUXx DMAMUXx Instance
1054 * @param RequestGenChannel This parameter can be one of the following values:
1055 * @arg @ref LL_DMAMUX_REQ_GEN_0
1056 * @arg @ref LL_DMAMUX_REQ_GEN_1
1057 * @arg @ref LL_DMAMUX_REQ_GEN_2
1058 * @arg @ref LL_DMAMUX_REQ_GEN_3
1059 * @retval State of bit (1 or 0).
1060 */
LL_DMAMUX_IsEnabledRequestGen(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1061 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledRequestGen(const DMAMUX_Channel_TypeDef *DMAMUXx,
1062 uint32_t RequestGenChannel)
1063 {
1064 (void)(DMAMUXx);
1065 return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1066 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR,
1067 DMAMUX_RGxCR_GE) == (DMAMUX_RGxCR_GE)) ? 1UL : 0UL);
1068 }
1069
1070 /**
1071 * @brief Set the polarity of the signal on which the DMA request is generated.
1072 * @rmtoll RGxCR GPOL LL_DMAMUX_SetRequestGenPolarity
1073 * @param DMAMUXx DMAMUXx Instance
1074 * @param RequestGenChannel This parameter can be one of the following values:
1075 * @arg @ref LL_DMAMUX_REQ_GEN_0
1076 * @arg @ref LL_DMAMUX_REQ_GEN_1
1077 * @arg @ref LL_DMAMUX_REQ_GEN_2
1078 * @arg @ref LL_DMAMUX_REQ_GEN_3
1079 * @param Polarity This parameter can be one of the following values:
1080 * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
1081 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
1082 * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
1083 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
1084 * @retval None
1085 */
LL_DMAMUX_SetRequestGenPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t Polarity)1086 __STATIC_INLINE void LL_DMAMUX_SetRequestGenPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel,
1087 uint32_t Polarity)
1088 {
1089 (void)(DMAMUXx);
1090 MODIFY_REG(((DMAMUX_RequestGen_TypeDef *) \
1091 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1092 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL, Polarity);
1093 }
1094
1095 /**
1096 * @brief Get the polarity of the signal on which the DMA request is generated.
1097 * @rmtoll RGxCR GPOL LL_DMAMUX_GetRequestGenPolarity
1098 * @param DMAMUXx DMAMUXx Instance
1099 * @param RequestGenChannel This parameter can be one of the following values:
1100 * @arg @ref LL_DMAMUX_REQ_GEN_0
1101 * @arg @ref LL_DMAMUX_REQ_GEN_1
1102 * @arg @ref LL_DMAMUX_REQ_GEN_2
1103 * @arg @ref LL_DMAMUX_REQ_GEN_3
1104 * @retval Returned value can be one of the following values:
1105 * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
1106 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
1107 * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
1108 * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
1109 */
LL_DMAMUX_GetRequestGenPolarity(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1110 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestGenPolarity(const DMAMUX_Channel_TypeDef *DMAMUXx,
1111 uint32_t RequestGenChannel)
1112 {
1113 (void)(DMAMUXx);
1114 return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *) \
1115 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1116 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GPOL));
1117 }
1118
1119 /**
1120 * @brief Set the number of DMA request that will be autorized after a generation event.
1121 * @note This field can only be written when Generator is disabled.
1122 * @rmtoll RGxCR GNBREQ LL_DMAMUX_SetGenRequestNb
1123 * @param DMAMUXx DMAMUXx Instance
1124 * @param RequestGenChannel This parameter can be one of the following values:
1125 * @arg @ref LL_DMAMUX_REQ_GEN_0
1126 * @arg @ref LL_DMAMUX_REQ_GEN_1
1127 * @arg @ref LL_DMAMUX_REQ_GEN_2
1128 * @arg @ref LL_DMAMUX_REQ_GEN_3
1129 * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
1130 * @retval None
1131 */
LL_DMAMUX_SetGenRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t RequestNb)1132 __STATIC_INLINE void LL_DMAMUX_SetGenRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel,
1133 uint32_t RequestNb)
1134 {
1135 (void)(DMAMUXx);
1136 MODIFY_REG(((DMAMUX_RequestGen_TypeDef *) \
1137 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1138 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR,
1139 DMAMUX_RGxCR_GNBREQ, (RequestNb - 1U) << DMAMUX_RGxCR_GNBREQ_Pos);
1140 }
1141
1142 /**
1143 * @brief Get the number of DMA request that will be autorized after a generation event.
1144 * @rmtoll RGxCR GNBREQ LL_DMAMUX_GetGenRequestNb
1145 * @param DMAMUXx DMAMUXx Instance
1146 * @param RequestGenChannel This parameter can be one of the following values:
1147 * @arg @ref LL_DMAMUX_REQ_GEN_0
1148 * @arg @ref LL_DMAMUX_REQ_GEN_1
1149 * @arg @ref LL_DMAMUX_REQ_GEN_2
1150 * @arg @ref LL_DMAMUX_REQ_GEN_3
1151 * @retval Between Min_Data = 1 and Max_Data = 32
1152 */
LL_DMAMUX_GetGenRequestNb(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1153 __STATIC_INLINE uint32_t LL_DMAMUX_GetGenRequestNb(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1154 {
1155 (void)(DMAMUXx);
1156 return (uint32_t)((READ_BIT(((DMAMUX_RequestGen_TypeDef *) \
1157 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1158 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_GNBREQ) >> \
1159 DMAMUX_RGxCR_GNBREQ_Pos) + 1U);
1160 }
1161
1162 /**
1163 * @brief Set DMAMUX external Request Signal ID on DMAMUX Request Generation Trigger Event Channel x.
1164 * @rmtoll RGxCR SIG_ID LL_DMAMUX_SetRequestSignalID
1165 * @param DMAMUXx DMAMUXx Instance
1166 * @param RequestGenChannel This parameter can be one of the following values:
1167 * @arg @ref LL_DMAMUX_REQ_GEN_0
1168 * @arg @ref LL_DMAMUX_REQ_GEN_1
1169 * @arg @ref LL_DMAMUX_REQ_GEN_2
1170 * @arg @ref LL_DMAMUX_REQ_GEN_3
1171 * @param RequestSignalID This parameter can be one of the following values:
1172 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0
1173 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1
1174 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2
1175 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3
1176 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4
1177 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5
1178 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6
1179 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7
1180 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8
1181 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9
1182 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10
1183 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11
1184 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12
1185 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13
1186 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14
1187 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15
1188 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0
1189 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1
1190 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH2
1191 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH3
1192 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM1_OUT
1193 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM2_OUT
1194 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM3_OUT
1195 * @retval None
1196 */
LL_DMAMUX_SetRequestSignalID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel,uint32_t RequestSignalID)1197 __STATIC_INLINE void LL_DMAMUX_SetRequestSignalID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel,
1198 uint32_t RequestSignalID)
1199 {
1200 (void)(DMAMUXx);
1201 MODIFY_REG(((DMAMUX_RequestGen_TypeDef *) \
1202 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1203 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID, RequestSignalID);
1204 }
1205
1206 /**
1207 * @brief Get DMAMUX external Request Signal ID set on DMAMUX Channel x.
1208 * @rmtoll RGxCR SIG_ID LL_DMAMUX_GetRequestSignalID
1209 * @param DMAMUXx DMAMUXx Instance
1210 * @param RequestGenChannel This parameter can be one of the following values:
1211 * @arg @ref LL_DMAMUX_REQ_GEN_0
1212 * @arg @ref LL_DMAMUX_REQ_GEN_1
1213 * @arg @ref LL_DMAMUX_REQ_GEN_2
1214 * @arg @ref LL_DMAMUX_REQ_GEN_3
1215 * @retval Returned value can be one of the following values:
1216 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE0
1217 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE1
1218 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE2
1219 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE3
1220 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE4
1221 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE5
1222 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE6
1223 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE7
1224 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE8
1225 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE9
1226 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE10
1227 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE11
1228 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE12
1229 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE13
1230 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE14
1231 * @arg @ref LL_DMAMUX_REQ_GEN_EXTI_LINE15
1232 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH0
1233 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH1
1234 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH2
1235 * @arg @ref LL_DMAMUX_REQ_GEN_DMAMUX_CH3
1236 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM1_OUT
1237 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM2_OUT
1238 * @arg @ref LL_DMAMUX_REQ_GEN_LPTIM3_OUT
1239 */
LL_DMAMUX_GetRequestSignalID(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1240 __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestSignalID(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1241 {
1242 (void)(DMAMUXx);
1243 return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *) \
1244 ((uint32_t)((uint32_t)DMAMUX1_RequestGenerator0 + \
1245 (DMAMUX_RGCR_SIZE * (RequestGenChannel)))))->RGCR, DMAMUX_RGxCR_SIG_ID));
1246 }
1247
1248 /**
1249 * @}
1250 */
1251
1252 /** @defgroup DMAMUX_LL_EF_FLAG_Management FLAG_Management
1253 * @{
1254 */
1255
1256 /**
1257 * @brief Get Synchronization Event Overrun Flag Channel 0.
1258 * @rmtoll CSR SOF0 LL_DMAMUX_IsActiveFlag_SO0
1259 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1260 * @retval State of bit (1 or 0).
1261 */
LL_DMAMUX_IsActiveFlag_SO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1262 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1263 {
1264 (void)(DMAMUXx);
1265 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF0) == (DMAMUX_CSR_SOF0)) ? 1UL : 0UL);
1266 }
1267
1268 /**
1269 * @brief Get Synchronization Event Overrun Flag Channel 1.
1270 * @rmtoll CSR SOF1 LL_DMAMUX_IsActiveFlag_SO1
1271 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1272 * @retval State of bit (1 or 0).
1273 */
LL_DMAMUX_IsActiveFlag_SO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1274 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1275 {
1276 (void)(DMAMUXx);
1277 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF1) == (DMAMUX_CSR_SOF1)) ? 1UL : 0UL);
1278 }
1279
1280 /**
1281 * @brief Get Synchronization Event Overrun Flag Channel 2.
1282 * @rmtoll CSR SOF2 LL_DMAMUX_IsActiveFlag_SO2
1283 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1284 * @retval State of bit (1 or 0).
1285 */
LL_DMAMUX_IsActiveFlag_SO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1286 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1287 {
1288 (void)(DMAMUXx);
1289 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF2) == (DMAMUX_CSR_SOF2)) ? 1UL : 0UL);
1290 }
1291
1292 /**
1293 * @brief Get Synchronization Event Overrun Flag Channel 3.
1294 * @rmtoll CSR SOF3 LL_DMAMUX_IsActiveFlag_SO3
1295 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1296 * @retval State of bit (1 or 0).
1297 */
LL_DMAMUX_IsActiveFlag_SO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1298 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1299 {
1300 (void)(DMAMUXx);
1301 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF3) == (DMAMUX_CSR_SOF3)) ? 1UL : 0UL);
1302 }
1303
1304 /**
1305 * @brief Get Synchronization Event Overrun Flag Channel 4.
1306 * @rmtoll CSR SOF4 LL_DMAMUX_IsActiveFlag_SO4
1307 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1308 * @retval State of bit (1 or 0).
1309 */
LL_DMAMUX_IsActiveFlag_SO4(const DMAMUX_Channel_TypeDef * DMAMUXx)1310 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO4(const DMAMUX_Channel_TypeDef *DMAMUXx)
1311 {
1312 (void)(DMAMUXx);
1313 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF4) == (DMAMUX_CSR_SOF4)) ? 1UL : 0UL);
1314 }
1315
1316 /**
1317 * @brief Get Synchronization Event Overrun Flag Channel 5.
1318 * @rmtoll CSR SOF5 LL_DMAMUX_IsActiveFlag_SO5
1319 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1320 * @retval State of bit (1 or 0).
1321 */
LL_DMAMUX_IsActiveFlag_SO5(const DMAMUX_Channel_TypeDef * DMAMUXx)1322 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO5(const DMAMUX_Channel_TypeDef *DMAMUXx)
1323 {
1324 (void)(DMAMUXx);
1325 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF5) == (DMAMUX_CSR_SOF5)) ? 1UL : 0UL);
1326 }
1327
1328 /**
1329 * @brief Get Synchronization Event Overrun Flag Channel 6.
1330 * @rmtoll CSR SOF6 LL_DMAMUX_IsActiveFlag_SO6
1331 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1332 * @retval State of bit (1 or 0).
1333 */
LL_DMAMUX_IsActiveFlag_SO6(const DMAMUX_Channel_TypeDef * DMAMUXx)1334 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO6(const DMAMUX_Channel_TypeDef *DMAMUXx)
1335 {
1336 (void)(DMAMUXx);
1337 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF6) == (DMAMUX_CSR_SOF6)) ? 1UL : 0UL);
1338 }
1339
1340 #if defined(DMAMUX1_Channel7)
1341 /**
1342 * @brief Get Synchronization Event Overrun Flag Channel 7.
1343 * @rmtoll CSR SOF7 LL_DMAMUX_IsActiveFlag_SO7
1344 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1345 * @retval State of bit (1 or 0).
1346 */
LL_DMAMUX_IsActiveFlag_SO7(const DMAMUX_Channel_TypeDef * DMAMUXx)1347 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO7(const DMAMUX_Channel_TypeDef *DMAMUXx)
1348 {
1349 (void)(DMAMUXx);
1350 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF7) == (DMAMUX_CSR_SOF7)) ? 1UL : 0UL);
1351 }
1352
1353 #endif /* DMAMUX1_Channel7 */
1354 #if defined(DMAMUX1_Channel8)
1355 /**
1356 * @brief Get Synchronization Event Overrun Flag Channel 8.
1357 * @rmtoll CSR SOF8 LL_DMAMUX_IsActiveFlag_SO8
1358 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1359 * @retval State of bit (1 or 0).
1360 */
LL_DMAMUX_IsActiveFlag_SO8(const DMAMUX_Channel_TypeDef * DMAMUXx)1361 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO8(const DMAMUX_Channel_TypeDef *DMAMUXx)
1362 {
1363 (void)(DMAMUXx);
1364 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF8) == (DMAMUX_CSR_SOF8)) ? 1UL : 0UL);
1365 }
1366
1367 #endif /* DMAMUX1_Channel8 */
1368 #if defined(DMAMUX1_Channel9)
1369 /**
1370 * @brief Get Synchronization Event Overrun Flag Channel 9.
1371 * @rmtoll CSR SOF9 LL_DMAMUX_IsActiveFlag_SO9
1372 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1373 * @retval State of bit (1 or 0).
1374 */
LL_DMAMUX_IsActiveFlag_SO9(const DMAMUX_Channel_TypeDef * DMAMUXx)1375 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO9(const DMAMUX_Channel_TypeDef *DMAMUXx)
1376 {
1377 (void)(DMAMUXx);
1378 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF9) == (DMAMUX_CSR_SOF9)) ? 1UL : 0UL);
1379 }
1380
1381 #endif /* DMAMUX1_Channel9 */
1382 #if defined(DMAMUX1_Channel10)
1383 /**
1384 * @brief Get Synchronization Event Overrun Flag Channel 10.
1385 * @rmtoll CSR SOF10 LL_DMAMUX_IsActiveFlag_SO10
1386 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1387 * @retval State of bit (1 or 0).
1388 */
LL_DMAMUX_IsActiveFlag_SO10(const DMAMUX_Channel_TypeDef * DMAMUXx)1389 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO10(const DMAMUX_Channel_TypeDef *DMAMUXx)
1390 {
1391 (void)(DMAMUXx);
1392 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF10) == (DMAMUX_CSR_SOF10)) ? 1UL : 0UL);
1393 }
1394
1395 #endif /* DMAMUX1_Channel10 */
1396 #if defined(DMAMUX1_Channel11)
1397 /**
1398 * @brief Get Synchronization Event Overrun Flag Channel 11.
1399 * @rmtoll CSR SOF11 LL_DMAMUX_IsActiveFlag_SO11
1400 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1401 * @retval State of bit (1 or 0).
1402 */
LL_DMAMUX_IsActiveFlag_SO11(const DMAMUX_Channel_TypeDef * DMAMUXx)1403 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO11(const DMAMUX_Channel_TypeDef *DMAMUXx)
1404 {
1405 (void)(DMAMUXx);
1406 return ((READ_BIT(DMAMUX1_ChannelStatus->CSR, DMAMUX_CSR_SOF11) == (DMAMUX_CSR_SOF11)) ? 1UL : 0UL);
1407 }
1408
1409 #endif /* DMAMUX1_Channel11 */
1410 /**
1411 * @brief Get Request Generator 0 Trigger Event Overrun Flag.
1412 * @rmtoll RGSR OF0 LL_DMAMUX_IsActiveFlag_RGO0
1413 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1414 * @retval State of bit (1 or 0).
1415 */
LL_DMAMUX_IsActiveFlag_RGO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1416 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1417 {
1418 (void)(DMAMUXx);
1419 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF0) == (DMAMUX_RGSR_OF0)) ? 1UL : 0UL);
1420 }
1421
1422 /**
1423 * @brief Get Request Generator 1 Trigger Event Overrun Flag.
1424 * @rmtoll RGSR OF1 LL_DMAMUX_IsActiveFlag_RGO1
1425 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1426 * @retval State of bit (1 or 0).
1427 */
LL_DMAMUX_IsActiveFlag_RGO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1428 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1429 {
1430 (void)(DMAMUXx);
1431 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF1) == (DMAMUX_RGSR_OF1)) ? 1UL : 0UL);
1432 }
1433
1434 /**
1435 * @brief Get Request Generator 2 Trigger Event Overrun Flag.
1436 * @rmtoll RGSR OF2 LL_DMAMUX_IsActiveFlag_RGO2
1437 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1438 * @retval State of bit (1 or 0).
1439 */
LL_DMAMUX_IsActiveFlag_RGO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1440 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1441 {
1442 (void)(DMAMUXx);
1443 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF2) == (DMAMUX_RGSR_OF2)) ? 1UL : 0UL);
1444 }
1445
1446 /**
1447 * @brief Get Request Generator 3 Trigger Event Overrun Flag.
1448 * @rmtoll RGSR OF3 LL_DMAMUX_IsActiveFlag_RGO3
1449 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1450 * @retval State of bit (1 or 0).
1451 */
LL_DMAMUX_IsActiveFlag_RGO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1452 __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1453 {
1454 (void)(DMAMUXx);
1455 return ((READ_BIT(DMAMUX1_RequestGenStatus->RGSR, DMAMUX_RGSR_OF3) == (DMAMUX_RGSR_OF3)) ? 1UL : 0UL);
1456 }
1457
1458 /**
1459 * @brief Clear Synchronization Event Overrun Flag Channel 0.
1460 * @rmtoll CFR CSOF0 LL_DMAMUX_ClearFlag_SO0
1461 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1462 * @retval None
1463 */
LL_DMAMUX_ClearFlag_SO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1464 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1465 {
1466 (void)(DMAMUXx);
1467 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF0);
1468 }
1469
1470 /**
1471 * @brief Clear Synchronization Event Overrun Flag Channel 1.
1472 * @rmtoll CFR CSOF1 LL_DMAMUX_ClearFlag_SO1
1473 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1474 * @retval None
1475 */
LL_DMAMUX_ClearFlag_SO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1476 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1477 {
1478 (void)(DMAMUXx);
1479 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF1);
1480 }
1481
1482 /**
1483 * @brief Clear Synchronization Event Overrun Flag Channel 2.
1484 * @rmtoll CFR CSOF2 LL_DMAMUX_ClearFlag_SO2
1485 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1486 * @retval None
1487 */
LL_DMAMUX_ClearFlag_SO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1488 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1489 {
1490 (void)(DMAMUXx);
1491 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF2);
1492 }
1493
1494 /**
1495 * @brief Clear Synchronization Event Overrun Flag Channel 3.
1496 * @rmtoll CFR CSOF3 LL_DMAMUX_ClearFlag_SO3
1497 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1498 * @retval None
1499 */
LL_DMAMUX_ClearFlag_SO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1500 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1501 {
1502 (void)(DMAMUXx);
1503 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF3);
1504 }
1505
1506 /**
1507 * @brief Clear Synchronization Event Overrun Flag Channel 4.
1508 * @rmtoll CFR CSOF4 LL_DMAMUX_ClearFlag_SO4
1509 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1510 * @retval None
1511 */
LL_DMAMUX_ClearFlag_SO4(const DMAMUX_Channel_TypeDef * DMAMUXx)1512 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO4(const DMAMUX_Channel_TypeDef *DMAMUXx)
1513 {
1514 (void)(DMAMUXx);
1515 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF4);
1516 }
1517
1518 /**
1519 * @brief Clear Synchronization Event Overrun Flag Channel 5.
1520 * @rmtoll CFR CSOF5 LL_DMAMUX_ClearFlag_SO5
1521 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1522 * @retval None
1523 */
LL_DMAMUX_ClearFlag_SO5(const DMAMUX_Channel_TypeDef * DMAMUXx)1524 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO5(const DMAMUX_Channel_TypeDef *DMAMUXx)
1525 {
1526 (void)(DMAMUXx);
1527 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF5);
1528 }
1529
1530 /**
1531 * @brief Clear Synchronization Event Overrun Flag Channel 6.
1532 * @rmtoll CFR CSOF6 LL_DMAMUX_ClearFlag_SO6
1533 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1534 * @retval None
1535 */
LL_DMAMUX_ClearFlag_SO6(const DMAMUX_Channel_TypeDef * DMAMUXx)1536 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO6(const DMAMUX_Channel_TypeDef *DMAMUXx)
1537 {
1538 (void)(DMAMUXx);
1539 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF6);
1540 }
1541
1542 #if defined(DMAMUX1_Channel7)
1543 /**
1544 * @brief Clear Synchronization Event Overrun Flag Channel 7.
1545 * @rmtoll CFR CSOF7 LL_DMAMUX_ClearFlag_SO7
1546 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1547 * @retval None
1548 */
LL_DMAMUX_ClearFlag_SO7(const DMAMUX_Channel_TypeDef * DMAMUXx)1549 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO7(const DMAMUX_Channel_TypeDef *DMAMUXx)
1550 {
1551 (void)(DMAMUXx);
1552 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF7);
1553 }
1554
1555 #endif /* DMAMUX1_Channel7 */
1556 #if defined(DMAMUX1_Channel8)
1557 /**
1558 * @brief Clear Synchronization Event Overrun Flag Channel 8.
1559 * @rmtoll CFR CSOF8 LL_DMAMUX_ClearFlag_SO8
1560 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1561 * @retval None
1562 */
LL_DMAMUX_ClearFlag_SO8(const DMAMUX_Channel_TypeDef * DMAMUXx)1563 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO8(const DMAMUX_Channel_TypeDef *DMAMUXx)
1564 {
1565 (void)(DMAMUXx);
1566 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF8);
1567 }
1568
1569 #endif /* DMAMUX1_Channel8 */
1570 #if defined(DMAMUX1_Channel9)
1571 /**
1572 * @brief Clear Synchronization Event Overrun Flag Channel 9.
1573 * @rmtoll CFR CSOF9 LL_DMAMUX_ClearFlag_SO9
1574 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1575 * @retval None
1576 */
LL_DMAMUX_ClearFlag_SO9(const DMAMUX_Channel_TypeDef * DMAMUXx)1577 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO9(const DMAMUX_Channel_TypeDef *DMAMUXx)
1578 {
1579 (void)(DMAMUXx);
1580 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF9);
1581 }
1582
1583 #endif /* DMAMUX1_Channel9 */
1584 #if defined(DMAMUX1_Channel10)
1585 /**
1586 * @brief Clear Synchronization Event Overrun Flag Channel 10.
1587 * @rmtoll CFR CSOF10 LL_DMAMUX_ClearFlag_SO10
1588 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1589 * @retval None
1590 */
LL_DMAMUX_ClearFlag_SO10(const DMAMUX_Channel_TypeDef * DMAMUXx)1591 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO10(const DMAMUX_Channel_TypeDef *DMAMUXx)
1592 {
1593 (void)(DMAMUXx);
1594 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF10);
1595 }
1596
1597 #endif /* DMAMUX1_Channel10 */
1598 #if defined(DMAMUX1_Channel11)
1599 /**
1600 * @brief Clear Synchronization Event Overrun Flag Channel 11.
1601 * @rmtoll CFR CSOF11 LL_DMAMUX_ClearFlag_SO11
1602 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1603 * @retval None
1604 */
LL_DMAMUX_ClearFlag_SO11(const DMAMUX_Channel_TypeDef * DMAMUXx)1605 __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO11(const DMAMUX_Channel_TypeDef *DMAMUXx)
1606 {
1607 (void)(DMAMUXx);
1608 SET_BIT(DMAMUX1_ChannelStatus->CFR, DMAMUX_CFR_CSOF11);
1609 }
1610
1611 #endif /* DMAMUX1_Channel11 */
1612 /**
1613 * @brief Clear Request Generator 0 Trigger Event Overrun Flag.
1614 * @rmtoll RGCFR COF0 LL_DMAMUX_ClearFlag_RGO0
1615 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1616 * @retval None
1617 */
LL_DMAMUX_ClearFlag_RGO0(const DMAMUX_Channel_TypeDef * DMAMUXx)1618 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO0(const DMAMUX_Channel_TypeDef *DMAMUXx)
1619 {
1620 (void)(DMAMUXx);
1621 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF0);
1622 }
1623
1624 /**
1625 * @brief Clear Request Generator 1 Trigger Event Overrun Flag.
1626 * @rmtoll RGCFR COF1 LL_DMAMUX_ClearFlag_RGO1
1627 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1628 * @retval None
1629 */
LL_DMAMUX_ClearFlag_RGO1(const DMAMUX_Channel_TypeDef * DMAMUXx)1630 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO1(const DMAMUX_Channel_TypeDef *DMAMUXx)
1631 {
1632 (void)(DMAMUXx);
1633 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF1);
1634 }
1635
1636 /**
1637 * @brief Clear Request Generator 2 Trigger Event Overrun Flag.
1638 * @rmtoll RGCFR COF2 LL_DMAMUX_ClearFlag_RGO2
1639 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1640 * @retval None
1641 */
LL_DMAMUX_ClearFlag_RGO2(const DMAMUX_Channel_TypeDef * DMAMUXx)1642 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO2(const DMAMUX_Channel_TypeDef *DMAMUXx)
1643 {
1644 (void)(DMAMUXx);
1645 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF2);
1646 }
1647
1648 /**
1649 * @brief Clear Request Generator 3 Trigger Event Overrun Flag.
1650 * @rmtoll RGCFR COF3 LL_DMAMUX_ClearFlag_RGO3
1651 * @param DMAMUXx DMAMUXx DMAMUXx Instance
1652 * @retval None
1653 */
LL_DMAMUX_ClearFlag_RGO3(const DMAMUX_Channel_TypeDef * DMAMUXx)1654 __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO3(const DMAMUX_Channel_TypeDef *DMAMUXx)
1655 {
1656 (void)(DMAMUXx);
1657 SET_BIT(DMAMUX1_RequestGenStatus->RGCFR, DMAMUX_RGCFR_COF3);
1658 }
1659
1660 /**
1661 * @}
1662 */
1663
1664 /** @defgroup DMAMUX_LL_EF_IT_Management IT_Management
1665 * @{
1666 */
1667
1668 /**
1669 * @brief Enable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
1670 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
1671 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
1672 * @rmtoll CxCR SOIE LL_DMAMUX_EnableIT_SO
1673 * @param DMAMUXx DMAMUXx Instance
1674 * @param Channel This parameter can be one of the following values:
1675 * @arg @ref LL_DMAMUX_CHANNEL_0
1676 * @arg @ref LL_DMAMUX_CHANNEL_1
1677 * @arg @ref LL_DMAMUX_CHANNEL_2
1678 * @arg @ref LL_DMAMUX_CHANNEL_3
1679 * @arg @ref LL_DMAMUX_CHANNEL_4
1680 * @arg @ref LL_DMAMUX_CHANNEL_5
1681 * @arg @ref LL_DMAMUX_CHANNEL_6
1682 *
1683 * @arg All the next values are only available on chip which support DMA2:
1684 * @arg @ref LL_DMAMUX_CHANNEL_7
1685 * @arg @ref LL_DMAMUX_CHANNEL_8
1686 * @arg @ref LL_DMAMUX_CHANNEL_9
1687 * @arg @ref LL_DMAMUX_CHANNEL_10
1688 * @arg @ref LL_DMAMUX_CHANNEL_11
1689 * @retval None
1690 */
LL_DMAMUX_EnableIT_SO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1691 __STATIC_INLINE void LL_DMAMUX_EnableIT_SO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1692 {
1693 (void)(DMAMUXx);
1694 SET_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE);
1695 }
1696
1697 /**
1698 * @brief Disable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
1699 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
1700 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
1701 * @rmtoll CxCR SOIE LL_DMAMUX_DisableIT_SO
1702 * @param DMAMUXx DMAMUXx Instance
1703 * @param Channel This parameter can be one of the following values:
1704 * @arg @ref LL_DMAMUX_CHANNEL_0
1705 * @arg @ref LL_DMAMUX_CHANNEL_1
1706 * @arg @ref LL_DMAMUX_CHANNEL_2
1707 * @arg @ref LL_DMAMUX_CHANNEL_3
1708 * @arg @ref LL_DMAMUX_CHANNEL_4
1709 * @arg @ref LL_DMAMUX_CHANNEL_5
1710 * @arg @ref LL_DMAMUX_CHANNEL_6
1711 *
1712 * @arg All the next values are only available on chip which support DMA2:
1713 * @arg @ref LL_DMAMUX_CHANNEL_7
1714 * @arg @ref LL_DMAMUX_CHANNEL_8
1715 * @arg @ref LL_DMAMUX_CHANNEL_9
1716 * @arg @ref LL_DMAMUX_CHANNEL_10
1717 * @arg @ref LL_DMAMUX_CHANNEL_11
1718 * @retval None
1719 */
LL_DMAMUX_DisableIT_SO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1720 __STATIC_INLINE void LL_DMAMUX_DisableIT_SO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1721 {
1722 (void)(DMAMUXx);
1723 CLEAR_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE);
1724 }
1725
1726 /**
1727 * @brief Check if the Synchronization Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
1728 * @note DMAMUX channel 0 to 6 are mapped to DMA1 channel 1 to 7.
1729 * DMAMUX channel 7 to 11 are mapped to DMA2 channel 1 to 5 (** only available on chip which support DMA2 **).
1730 * @rmtoll CxCR SOIE LL_DMAMUX_IsEnabledIT_SO
1731 * @param DMAMUXx DMAMUXx Instance
1732 * @param Channel This parameter can be one of the following values:
1733 * @arg @ref LL_DMAMUX_CHANNEL_0
1734 * @arg @ref LL_DMAMUX_CHANNEL_1
1735 * @arg @ref LL_DMAMUX_CHANNEL_2
1736 * @arg @ref LL_DMAMUX_CHANNEL_3
1737 * @arg @ref LL_DMAMUX_CHANNEL_4
1738 * @arg @ref LL_DMAMUX_CHANNEL_5
1739 * @arg @ref LL_DMAMUX_CHANNEL_6
1740 *
1741 * @arg All the next values are only available on chip which support DMA2:
1742 * @arg @ref LL_DMAMUX_CHANNEL_7
1743 * @arg @ref LL_DMAMUX_CHANNEL_8
1744 * @arg @ref LL_DMAMUX_CHANNEL_9
1745 * @arg @ref LL_DMAMUX_CHANNEL_10
1746 * @arg @ref LL_DMAMUX_CHANNEL_11
1747 * @retval State of bit (1 or 0).
1748 */
LL_DMAMUX_IsEnabledIT_SO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t Channel)1749 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_SO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
1750 {
1751 (void)(DMAMUXx);
1752 return (((READ_BIT((DMAMUX1_Channel0 + Channel)->CCR, DMAMUX_CxCR_SOIE)) == (DMAMUX_CxCR_SOIE)) ? 1UL : 0UL);
1753 }
1754
1755 /**
1756 * @brief Enable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
1757 * @rmtoll RGxCR OIE LL_DMAMUX_EnableIT_RGO
1758 * @param DMAMUXx DMAMUXx Instance
1759 * @param RequestGenChannel This parameter can be one of the following values:
1760 * @arg @ref LL_DMAMUX_REQ_GEN_0
1761 * @arg @ref LL_DMAMUX_REQ_GEN_1
1762 * @arg @ref LL_DMAMUX_REQ_GEN_2
1763 * @arg @ref LL_DMAMUX_REQ_GEN_3
1764 * @retval None
1765 */
LL_DMAMUX_EnableIT_RGO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1766 __STATIC_INLINE void LL_DMAMUX_EnableIT_RGO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1767 {
1768 (void)(DMAMUXx);
1769 SET_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE);
1770 }
1771
1772 /**
1773 * @brief Disable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
1774 * @rmtoll RGxCR OIE LL_DMAMUX_DisableIT_RGO
1775 * @param DMAMUXx DMAMUXx Instance
1776 * @param RequestGenChannel This parameter can be one of the following values:
1777 * @arg @ref LL_DMAMUX_REQ_GEN_0
1778 * @arg @ref LL_DMAMUX_REQ_GEN_1
1779 * @arg @ref LL_DMAMUX_REQ_GEN_2
1780 * @arg @ref LL_DMAMUX_REQ_GEN_3
1781 * @retval None
1782 */
LL_DMAMUX_DisableIT_RGO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1783 __STATIC_INLINE void LL_DMAMUX_DisableIT_RGO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1784 {
1785 (void)(DMAMUXx);
1786 CLEAR_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE);
1787 }
1788
1789 /**
1790 * @brief Check if the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
1791 * @rmtoll RGxCR OIE LL_DMAMUX_IsEnabledIT_RGO
1792 * @param DMAMUXx DMAMUXx Instance
1793 * @param RequestGenChannel This parameter can be one of the following values:
1794 * @arg @ref LL_DMAMUX_REQ_GEN_0
1795 * @arg @ref LL_DMAMUX_REQ_GEN_1
1796 * @arg @ref LL_DMAMUX_REQ_GEN_2
1797 * @arg @ref LL_DMAMUX_REQ_GEN_3
1798 * @retval State of bit (1 or 0).
1799 */
LL_DMAMUX_IsEnabledIT_RGO(const DMAMUX_Channel_TypeDef * DMAMUXx,uint32_t RequestGenChannel)1800 __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_RGO(const DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
1801 {
1802 (void)(DMAMUXx);
1803 return ((READ_BIT((DMAMUX1_RequestGenerator0 + RequestGenChannel)->RGCR, DMAMUX_RGxCR_OIE) == \
1804 (DMAMUX_RGxCR_OIE)) ? 1UL : 0UL);
1805 }
1806
1807 /**
1808 * @}
1809 */
1810
1811 /**
1812 * @}
1813 */
1814
1815 /**
1816 * @}
1817 */
1818
1819 #endif /* DMAMUX1 */
1820
1821 /**
1822 * @}
1823 */
1824
1825 #ifdef __cplusplus
1826 }
1827 #endif
1828
1829 #endif /* STM32U0xx_LL_DMAMUX_H */
1830