1 /*
2  * Copyright (c) 2006-2023, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2018-10-30     zylx         first version
9  */
10 
11 #ifndef __UART_CONFIG_H__
12 #define __UART_CONFIG_H__
13 
14 #include <rtthread.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 #if defined(BSP_USING_LPUART1)
21 #ifndef LPUART1_CONFIG
22 #if defined(STM32G071xx) || defined(STM32G081xx)
23 #define LPUART1_CONFIG                                              \
24     {                                                               \
25         .name = "lpuart1",                                          \
26         .Instance = LPUART1,                                        \
27         .irq_type = USART3_4_LPUART1_IRQn,                          \
28     }
29 #elif defined(STM32G0B1xx) || defined(STM32G0C1xx)
30 #define LPUART1_CONFIG                                              \
31     {                                                               \
32         .name = "lpuart1",                                          \
33         .Instance = LPUART1,                                        \
34         .irq_type = USART3_4_5_6_LPUART1_IRQn,                      \
35     }
36 #endif /* defined(STM32G071xx) || defined(STM32G081xx) */
37 #endif /* LPUART1_CONFIG */
38 #if defined(BSP_LPUART1_RX_USING_DMA)
39 #ifndef LPUART1_DMA_CONFIG
40 #define LPUART1_DMA_CONFIG                                          \
41     {                                                               \
42         .Instance = LPUART1_RX_DMA_INSTANCE,                        \
43         .request =  LPUART1_RX_DMA_REQUEST,                         \
44         .dma_rcc  = LPUART1_RX_DMA_RCC,                             \
45         .dma_irq  = LPUART1_RX_DMA_IRQ,                             \
46     }
47 #endif /* LPUART1_DMA_CONFIG */
48 #endif /* BSP_LPUART1_RX_USING_DMA */
49 #endif /* BSP_USING_LPUART1 */
50 
51 #if defined(BSP_USING_UART1)
52 #ifndef UART1_CONFIG
53 #define UART1_CONFIG                                                \
54     {                                                               \
55         .name = "uart1",                                            \
56         .Instance = USART1,                                         \
57         .irq_type = USART1_IRQn,                                    \
58     }
59 #endif /* UART1_CONFIG */
60 #endif /* BSP_USING_UART1 */
61 
62 #if defined(BSP_UART1_RX_USING_DMA)
63 #ifndef UART1_DMA_RX_CONFIG
64 #define UART1_DMA_RX_CONFIG                                         \
65     {                                                               \
66         .Instance = UART1_RX_DMA_INSTANCE,                          \
67         .request =  UART1_RX_DMA_REQUEST,                           \
68         .dma_rcc  = UART1_RX_DMA_RCC,                               \
69         .dma_irq  = UART1_RX_DMA_IRQ,                               \
70     }
71 #endif /* UART1_DMA_RX_CONFIG */
72 #endif /* BSP_UART1_RX_USING_DMA */
73 
74 #if defined(BSP_UART1_TX_USING_DMA)
75 #ifndef UART1_DMA_TX_CONFIG
76 #define UART1_DMA_TX_CONFIG                                         \
77     {                                                               \
78         .Instance = UART1_TX_DMA_INSTANCE,                          \
79         .request =  UART1_TX_DMA_REQUEST,                           \
80         .dma_rcc  = UART1_TX_DMA_RCC,                               \
81         .dma_irq  = UART1_TX_DMA_IRQ,                               \
82     }
83 #endif /* UART1_DMA_TX_CONFIG */
84 #endif /* BSP_UART1_TX_USING_DMA */
85 
86 #if defined(BSP_USING_UART2)
87 #ifndef UART2_CONFIG
88 #if defined(STM32G0B1xx) || defined(STM32G0C1xx)
89 #define UART2_CONFIG                                                \
90     {                                                               \
91         .name = "uart2",                                            \
92         .Instance = USART2,                                         \
93         .irq_type = USART2_LPUART2_IRQn ,                           \
94     }
95 #else
96 #define UART2_CONFIG                                                \
97     {                                                               \
98         .name = "uart2",                                            \
99         .Instance = USART2,                                         \
100         .irq_type = USART2_IRQn,                                    \
101     }
102 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */
103 #endif /* UART2_CONFIG */
104 #endif /* BSP_USING_UART2 */
105 
106 #if defined(BSP_UART2_RX_USING_DMA)
107 #ifndef UART2_DMA_RX_CONFIG
108 #define UART2_DMA_RX_CONFIG                                         \
109     {                                                               \
110         .Instance = UART2_RX_DMA_INSTANCE,                          \
111         .request =  UART2_RX_DMA_REQUEST,                           \
112         .dma_rcc  = UART2_RX_DMA_RCC,                               \
113         .dma_irq  = UART2_RX_DMA_IRQ,                               \
114     }
115 #endif /* UART2_DMA_RX_CONFIG */
116 #endif /* BSP_UART2_RX_USING_DMA */
117 
118 #if defined(BSP_UART2_TX_USING_DMA)
119 #ifndef UART2_DMA_TX_CONFIG
120 #define UART2_DMA_TX_CONFIG                                         \
121     {                                                               \
122         .Instance = UART2_TX_DMA_INSTANCE,                          \
123         .request =  UART2_TX_DMA_REQUEST,                           \
124         .dma_rcc  = UART2_TX_DMA_RCC,                               \
125         .dma_irq  = UART2_TX_DMA_IRQ,                               \
126     }
127 #endif /* UART2_DMA_TX_CONFIG */
128 #endif /* BSP_UART2_TX_USING_DMA */
129 
130 #if defined(BSP_USING_UART3)
131 #ifndef UART3_CONFIG
132 #if defined(STM32G0B1xx) || defined(STM32G0C1xx)
133 #define UART3_CONFIG                                                \
134     {                                                               \
135         .name = "uart3",                                            \
136         .Instance = USART3,                                         \
137         .irq_type = USART3_4_5_6_LPUART1_IRQn,                      \
138     }
139 #elif defined(STM32G070xx)
140 #define UART3_CONFIG                                                \
141     {                                                               \
142         .name = "uart3",                                            \
143         .Instance = USART3,                                         \
144         .irq_type = USART3_4_IRQn,                                  \
145     }
146 #elif defined(STM32G071xx) || defined(STM32G081xx)
147 #define UART3_CONFIG                                                \
148     {                                                               \
149         .name = "uart3",                                            \
150         .Instance = USART3,                                         \
151         .irq_type = USART3_4_LPUART1_IRQn,                          \
152     }
153 #elif defined(STM32G0B0xx)
154 #define UART3_CONFIG                                                \
155     {                                                               \
156         .name = "uart3",                                            \
157         .Instance = USART3,                                         \
158         .irq_type = USART3_4_5_6_IRQn,                              \
159     }
160 #else
161 #define UART3_CONFIG                                                \
162     {                                                               \
163         .name = "uart3",                                            \
164         .Instance = USART3,                                         \
165         .irq_type = USART3_IRQn,                                    \
166     }
167 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */
168 #endif /* UART3_CONFIG */
169 #endif /* BSP_USING_UART3 */
170 
171 #if defined(BSP_UART3_RX_USING_DMA)
172 #ifndef UART3_DMA_RX_CONFIG
173 #define UART3_DMA_RX_CONFIG                                            \
174     {                                                               \
175         .Instance = UART3_RX_DMA_INSTANCE,                          \
176         .request =  UART3_RX_DMA_REQUEST,                           \
177         .dma_rcc  = UART3_RX_DMA_RCC,                               \
178         .dma_irq  = UART3_RX_DMA_IRQ,                               \
179     }
180 #endif /* UART3_DMA_RX_CONFIG */
181 #endif /* BSP_UART3_RX_USING_DMA */
182 
183 #if defined(BSP_USING_UART4)
184 #ifndef UART4_CONFIG
185 #if defined(STM32G0B1xx) || defined(STM32G0C1xx)
186 #define UART4_CONFIG                                                \
187     {                                                               \
188         .name = "uart4",                                            \
189         .Instance = USART4,                                         \
190         .irq_type = USART3_4_5_6_LPUART1_IRQn,                      \
191     }
192 #elif defined(STM32G070xx)
193 #define UART4_CONFIG                                                \
194     {                                                               \
195         .name = "uart4",                                            \
196         .Instance = USART4,                                         \
197         .irq_type = USART3_4_IRQn,                                  \
198     }
199 #elif defined(STM32G071xx) || defined(STM32G081xx)
200 #define UART4_CONFIG                                                \
201     {                                                               \
202         .name = "uart4",                                            \
203         .Instance = USART4,                                         \
204         .irq_type = USART3_4_LPUART1_IRQn,                          \
205     }
206 #elif defined(STM32G0B0xx)
207 #define UART4_CONFIG                                                \
208     {                                                               \
209         .name = "uart4",                                            \
210         .Instance = USART4,                                         \
211         .irq_type = USART3_4_5_6_IRQn,                              \
212     }
213 #else
214 #define UART4_CONFIG                                                \
215     {                                                               \
216         .name = "uart4",                                            \
217         .Instance = USART4,                                         \
218         .irq_type = USART4_IRQn,                                    \
219     }
220 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */
221 #endif /* UART4_CONFIG */
222 #endif /* BSP_USING_UART4 */
223 
224 #if defined(BSP_UART4_RX_USING_DMA)
225 #ifndef UART4_DMA_RX_CONFIG
226 #define UART4_DMA_RX_CONFIG                                            \
227     {                                                               \
228         .Instance = UART4_RX_DMA_INSTANCE,                          \
229         .request =  UART4_RX_DMA_REQUEST,                           \
230         .dma_rcc  = UART4_RX_DMA_RCC,                               \
231         .dma_irq  = UART4_RX_DMA_IRQ,                               \
232     }
233 #endif /* UART4_DMA_RX_CONFIG */
234 #endif /* BSP_UART4_RX_USING_DMA */
235 
236 #if defined(BSP_USING_UART5)
237 #ifndef UART5_CONFIG
238 #if defined(STM32G0B1xx) || defined(STM32G0C1xx)
239 #define UART5_CONFIG                                                \
240     {                                                               \
241         .name = "uart5",                                            \
242         .Instance = UART5,                                          \
243         .irq_type = USART3_4_5_6_LPUART1_IRQn,                      \
244     }
245 #elif defined(STM32G0B0xx)
246 #define UART5_CONFIG                                                \
247     {                                                               \
248         .name = "uart5",                                            \
249         .Instance = UART5,                                          \
250         .irq_type = USART3_4_5_6_IRQn,                              \
251     }
252 #else
253 #define UART5_CONFIG                                                \
254     {                                                               \
255         .name = "uart5",                                            \
256         .Instance = UART5,                                          \
257         .irq_type = UART5_IRQn,                                     \
258     }
259 #endif /* defined(STM32G0B1xx) || defined(STM32G0C1xx) */
260 #endif /* UART5_CONFIG */
261 #endif /* BSP_USING_UART5 */
262 
263 #if defined(BSP_UART5_RX_USING_DMA)
264 #ifndef UART5_DMA_RX_CONFIG
265 #define UART5_DMA_RX_CONFIG                                            \
266     {                                                               \
267         .Instance = DMA_NOT_AVAILABLE,                              \
268     }
269 #endif /* UART5_DMA_RX_CONFIG */
270 #endif /* BSP_UART5_RX_USING_DMA */
271 
272 #ifdef __cplusplus
273 }
274 #endif
275 
276 #endif /* __UART_CONFIG_H__ */
277