1 /*
2  * Copyright (c) 2006-2021, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2024-12-18     shelton      first version
9  */
10 
11 #ifndef __UART_CONFIG_H__
12 #define __UART_CONFIG_H__
13 
14 #include <rtthread.h>
15 #include "dma_config.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 #define UART1_IRQHandler      USART1_IRQHandler
22 #define UART2_IRQHandler      USART2_IRQHandler
23 #define UART3_IRQHandler      USART3_IRQHandler
24 #define UART4_IRQHandler      USART4_IRQHandler
25 #define UART5_IRQHandler      USART5_IRQHandler
26 #define UART6_IRQHandler      USART6_IRQHandler
27 #define UART7_IRQHandler      USART7_IRQHandler
28 #define UART8_IRQHandler      USART8_IRQHandler
29 
30 #if defined(BSP_USING_UART1)
31 #define UART1_CONFIG                                                \
32     {                                                               \
33         .name = "uart1",                                            \
34         .uart_x = USART1,                                           \
35         .irqn = USART1_IRQn,                                        \
36     }
37 
38 #if defined(BSP_UART1_RX_USING_DMA)
39 #define UART1_RX_DMA_CONFIG                                         \
40     {                                                               \
41         .dma_channel = UART1_RX_DMA_CHANNEL,                        \
42         .dma_clock = UART1_RX_DMA_CLOCK,                            \
43         .dma_irqn = UART1_RX_DMA_IRQ,                               \
44         .dmamux_channel = UART1_RX_DMA_MUX_CHANNEL,                 \
45         .request_id = UART1_RX_DMA_REQ_ID,                          \
46     }
47 #endif /* BSP_UART1_RX_USING_DMA */
48 
49 #if defined(BSP_UART1_TX_USING_DMA)
50 #define UART1_TX_DMA_CONFIG                                         \
51     {                                                               \
52         .dma_channel = UART1_TX_DMA_CHANNEL,                        \
53         .dma_clock = UART1_TX_DMA_CLOCK,                            \
54         .dma_irqn = UART1_TX_DMA_IRQ,                               \
55         .dmamux_channel = UART1_TX_DMA_MUX_CHANNEL,                 \
56         .request_id = UART1_TX_DMA_REQ_ID,                          \
57     }
58 #endif /* BSP_UART1_TX_USING_DMA */
59 #endif /* BSP_USING_UART1 */
60 
61 #if defined(BSP_USING_UART2)
62 #define UART2_CONFIG                                                \
63     {                                                               \
64         .name = "uart2",                                            \
65         .uart_x = USART2,                                           \
66         .irqn = USART2_IRQn,                                        \
67     }
68 
69 #if defined(BSP_UART2_RX_USING_DMA)
70 #define UART2_RX_DMA_CONFIG                                         \
71     {                                                               \
72         .dma_channel = UART2_RX_DMA_CHANNEL,                        \
73         .dma_clock = UART2_RX_DMA_CLOCK,                            \
74         .dma_irqn = UART2_RX_DMA_IRQ,                               \
75         .dmamux_channel = UART2_RX_DMA_MUX_CHANNEL,                 \
76         .request_id = UART2_RX_DMA_REQ_ID,                          \
77     }
78 #endif /* BSP_UART2_RX_USING_DMA */
79 
80 #if defined(BSP_UART2_TX_USING_DMA)
81 #define UART2_TX_DMA_CONFIG                                         \
82     {                                                               \
83         .dma_channel = UART2_TX_DMA_CHANNEL,                        \
84         .dma_clock = UART2_TX_DMA_CLOCK,                            \
85         .dma_irqn = UART2_TX_DMA_IRQ,                               \
86         .dmamux_channel = UART2_TX_DMA_MUX_CHANNEL,                 \
87         .request_id = UART2_TX_DMA_REQ_ID,                          \
88     }
89 #endif /* BSP_UART2_TX_USING_DMA */
90 #endif /* BSP_USING_UART2 */
91 
92 #if defined(BSP_USING_UART3)
93 #define UART3_CONFIG                                                \
94     {                                                               \
95         .name = "uart3",                                            \
96         .uart_x = USART3,                                           \
97         .irqn = USART3_IRQn,                                        \
98     }
99 
100 #if defined(BSP_UART3_RX_USING_DMA)
101 #define UART3_RX_DMA_CONFIG                                         \
102     {                                                               \
103         .dma_channel = UART3_RX_DMA_CHANNEL,                        \
104         .dma_clock = UART3_RX_DMA_CLOCK,                            \
105         .dma_irqn = UART3_RX_DMA_IRQ,                               \
106         .dmamux_channel = UART3_RX_DMA_MUX_CHANNEL,                 \
107         .request_id = UART3_RX_DMA_REQ_ID,                          \
108     }
109 #endif /* BSP_UART3_RX_USING_DMA */
110 
111 #if defined(BSP_UART3_TX_USING_DMA)
112 #define UART3_TX_DMA_CONFIG                                         \
113     {                                                               \
114         .dma_channel = UART3_TX_DMA_CHANNEL,                        \
115         .dma_clock = UART3_TX_DMA_CLOCK,                            \
116         .dma_irqn = UART3_TX_DMA_IRQ,                               \
117         .dmamux_channel = UART3_TX_DMA_MUX_CHANNEL,                 \
118         .request_id = UART3_TX_DMA_REQ_ID,                          \
119     }
120 #endif /* BSP_UART3_TX_USING_DMA */
121 #endif /* BSP_USING_UART3 */
122 
123 #if defined(BSP_USING_UART4)
124 #define UART4_CONFIG                                                \
125     {                                                               \
126         .name = "uart4",                                            \
127         .uart_x = USART4,                                           \
128         .irqn = USART4_IRQn,                                        \
129     }
130 
131 #if defined(BSP_UART4_RX_USING_DMA)
132 #define UART4_RX_DMA_CONFIG                                         \
133     {                                                               \
134         .dma_channel = UART4_RX_DMA_CHANNEL,                        \
135         .dma_clock = UART4_RX_DMA_CLOCK,                            \
136         .dma_irqn = UART4_RX_DMA_IRQ,                               \
137         .dmamux_channel = UART4_RX_DMA_MUX_CHANNEL,                 \
138         .request_id = UART4_RX_DMA_REQ_ID,                          \
139     }
140 #endif /* BSP_UART4_RX_USING_DMA */
141 
142 #if defined(BSP_UART4_TX_USING_DMA)
143 #define UART4_TX_DMA_CONFIG                                         \
144     {                                                               \
145         .dma_channel = UART4_TX_DMA_CHANNEL,                        \
146         .dma_clock = UART4_TX_DMA_CLOCK,                            \
147         .dma_irqn = UART4_TX_DMA_IRQ,                               \
148         .dmamux_channel = UART4_TX_DMA_MUX_CHANNEL,                 \
149         .request_id = UART4_TX_DMA_REQ_ID,                          \
150     }
151 #endif /* BSP_UART4_TX_USING_DMA */
152 #endif /* BSP_USING_UART4 */
153 
154 #if defined(BSP_USING_UART5)
155 #define UART5_CONFIG                                                \
156     {                                                               \
157         .name = "uart5",                                            \
158         .uart_x = USART5,                                           \
159         .irqn = USART5_IRQn,                                        \
160     }
161 
162 #if defined(BSP_UART5_RX_USING_DMA)
163 #define UART5_RX_DMA_CONFIG                                         \
164     {                                                               \
165         .dma_channel = UART5_RX_DMA_CHANNEL,                        \
166         .dma_clock = UART5_RX_DMA_CLOCK,                            \
167         .dma_irqn = UART5_RX_DMA_IRQ,                               \
168         .dmamux_channel = UART5_RX_DMA_MUX_CHANNEL,                 \
169         .request_id = UART5_RX_DMA_REQ_ID,                          \
170     }
171 #endif /* BSP_UART5_RX_USING_DMA */
172 
173 #if defined(BSP_UART5_TX_USING_DMA)
174 #define UART5_TX_DMA_CONFIG                                         \
175     {                                                               \
176         .dma_channel = UART5_TX_DMA_CHANNEL,                        \
177         .dma_clock = UART5_TX_DMA_CLOCK,                            \
178         .dma_irqn = UART5_TX_DMA_IRQ,                               \
179         .dmamux_channel = UART5_TX_DMA_MUX_CHANNEL,                 \
180         .request_id = UART5_TX_DMA_REQ_ID,                          \
181     }
182 #endif /* BSP_UART5_TX_USING_DMA */
183 #endif /* BSP_USING_UART5 */
184 
185 #if defined(BSP_USING_UART6)
186 #define UART6_CONFIG                                                \
187     {                                                               \
188         .name = "uart6",                                            \
189         .uart_x = USART6,                                           \
190         .irqn = USART6_IRQn,                                        \
191     }
192 
193 #if defined(BSP_UART6_RX_USING_DMA)
194 #define UART6_RX_DMA_CONFIG                                         \
195     {                                                               \
196         .dma_channel = UART6_RX_DMA_CHANNEL,                        \
197         .dma_clock = UART6_RX_DMA_CLOCK,                            \
198         .dma_irqn = UART6_RX_DMA_IRQ,                               \
199         .dmamux_channel = UART6_RX_DMA_MUX_CHANNEL,                 \
200         .request_id = UART6_RX_DMA_REQ_ID,                          \
201     }
202 #endif /* BSP_UART6_RX_USING_DMA */
203 
204 #if defined(BSP_UART6_TX_USING_DMA)
205 #define UART6_TX_DMA_CONFIG                                         \
206     {                                                               \
207         .dma_channel = UART6_TX_DMA_CHANNEL,                        \
208         .dma_clock = UART6_TX_DMA_CLOCK,                            \
209         .dma_irqn = UART6_TX_DMA_IRQ,                               \
210         .dmamux_channel = UART6_TX_DMA_MUX_CHANNEL,                 \
211         .request_id = UART6_TX_DMA_REQ_ID,                          \
212     }
213 #endif /* BSP_UART6_TX_USING_DMA */
214 #endif /* BSP_USING_UART6 */
215 
216 #if defined(BSP_USING_UART7)
217 #define UART7_CONFIG                                                \
218     {                                                               \
219         .name = "uart7",                                            \
220         .uart_x = USART7,                                           \
221         .irqn = USART7_IRQn,                                        \
222     }
223 
224 #if defined(BSP_UART7_RX_USING_DMA)
225 #define UART7_RX_DMA_CONFIG                                         \
226     {                                                               \
227         .dma_channel = UART7_RX_DMA_CHANNEL,                        \
228         .dma_clock = UART7_RX_DMA_CLOCK,                            \
229         .dma_irqn = UART7_RX_DMA_IRQ,                               \
230         .dmamux_channel = UART7_RX_DMA_MUX_CHANNEL,                 \
231         .request_id = UART7_RX_DMA_REQ_ID,                          \
232     }
233 #endif /* BSP_UART7_RX_USING_DMA */
234 
235 #if defined(BSP_UART7_TX_USING_DMA)
236 #define UART7_TX_DMA_CONFIG                                         \
237     {                                                               \
238         .dma_channel = UART7_TX_DMA_CHANNEL,                        \
239         .dma_clock = UART7_TX_DMA_CLOCK,                            \
240         .dma_irqn = UART7_TX_DMA_IRQ,                               \
241         .dmamux_channel = UART7_TX_DMA_MUX_CHANNEL,                 \
242         .request_id = UART7_TX_DMA_REQ_ID,                          \
243     }
244 #endif /* BSP_UART7_TX_USING_DMA */
245 #endif /* BSP_USING_UART7 */
246 
247 #if defined(BSP_USING_UART8)
248 #define UART8_CONFIG                                                \
249     {                                                               \
250         .name = "uart8",                                            \
251         .uart_x = USART8,                                           \
252         .irqn = USART8_IRQn,                                        \
253     }
254 #endif /* BSP_USING_UART8 */
255 
256 #ifdef __cplusplus
257 }
258 #endif
259 
260 #endif
261