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     BalanceTWK   first version
9  * 2019-01-05     SummerGift   modify DMA support
10  */
11 
12 #ifndef __UART_CONFIG_H__
13 #define __UART_CONFIG_H__
14 
15 #include <rtthread.h>
16 #include "dma_config.h"
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #if defined(BSP_USING_UART1)
23 #ifndef UART1_CONFIG
24 #define UART1_CONFIG                                                \
25     {                                                               \
26         .name = "uart1",                                            \
27         .Instance = USART1,                                         \
28         .irq_type = USART1_IRQn,                                    \
29     }
30 #endif /* UART1_CONFIG */
31 
32 #if defined(BSP_UART1_RX_USING_DMA)
33 #ifndef UART1_DMA_RX_CONFIG
34 #define UART1_DMA_RX_CONFIG                                         \
35     {                                                               \
36         .Instance = UART1_RX_DMA_INSTANCE,                          \
37         .dma_rcc  = UART1_RX_DMA_RCC,                               \
38         .dma_irq  = UART1_RX_DMA_IRQ,                               \
39     }
40 #endif /* UART1_DMA_RX_CONFIG */
41 #endif /* BSP_UART1_RX_USING_DMA */
42 
43 #if defined(BSP_UART1_TX_USING_DMA)
44 #ifndef UART1_DMA_TX_CONFIG
45 #define UART1_DMA_TX_CONFIG                                         \
46     {                                                               \
47         .Instance = UART1_TX_DMA_INSTANCE,                          \
48         .dma_rcc  = UART1_TX_DMA_RCC,                               \
49         .dma_irq  = UART1_TX_DMA_IRQ,                               \
50     }
51 #endif /* UART1_DMA_TX_CONFIG */
52 #endif /* BSP_UART1_TX_USING_DMA */
53 #endif /* BSP_USING_UART1 */
54 
55 #if defined(BSP_USING_UART2)
56 #ifndef UART2_CONFIG
57 #define UART2_CONFIG                                                \
58     {                                                               \
59         .name = "uart2",                                            \
60         .Instance = USART2,                                         \
61         .irq_type = USART2_IRQn,                                    \
62     }
63 #endif /* UART2_CONFIG */
64 
65 #if defined(BSP_UART2_RX_USING_DMA)
66 #ifndef UART2_DMA_RX_CONFIG
67 #define UART2_DMA_RX_CONFIG                                         \
68     {                                                               \
69         .Instance = UART2_RX_DMA_INSTANCE,                          \
70         .dma_rcc  = UART2_RX_DMA_RCC,                               \
71         .dma_irq  = UART2_RX_DMA_IRQ,                               \
72     }
73 #endif /* UART2_DMA_RX_CONFIG */
74 #endif /* BSP_UART2_RX_USING_DMA */
75 
76 #if defined(BSP_UART2_TX_USING_DMA)
77 #ifndef UART2_DMA_TX_CONFIG
78 #define UART2_DMA_TX_CONFIG                                         \
79     {                                                               \
80         .Instance = UART2_TX_DMA_INSTANCE,                          \
81         .dma_rcc  = UART2_TX_DMA_RCC,                               \
82         .dma_irq  = UART2_TX_DMA_IRQ,                               \
83     }
84 #endif /* UART2_DMA_TX_CONFIG */
85 #endif /* BSP_UART2_TX_USING_DMA */
86 #endif /* BSP_USING_UART2 */
87 
88 #if defined(BSP_USING_UART3)
89 #ifndef UART3_CONFIG
90 #define UART3_CONFIG                                                \
91     {                                                               \
92         .name = "uart3",                                            \
93         .Instance = USART3,                                         \
94         .irq_type = USART3_IRQn,                                    \
95     }
96 #endif /* UART3_CONFIG */
97 
98 #if defined(BSP_UART3_RX_USING_DMA)
99 #ifndef UART3_DMA_RX_CONFIG
100 #define UART3_DMA_RX_CONFIG                                         \
101     {                                                               \
102         .Instance = UART3_RX_DMA_INSTANCE,                          \
103         .dma_rcc  = UART3_RX_DMA_RCC,                               \
104         .dma_irq  = UART3_RX_DMA_IRQ,                               \
105     }
106 #endif /* UART3_DMA_RX_CONFIG */
107 #endif /* BSP_UART3_RX_USING_DMA */
108 
109 #if defined(BSP_UART3_TX_USING_DMA)
110 #ifndef UART3_DMA_TX_CONFIG
111 #define UART3_DMA_TX_CONFIG                                         \
112     {                                                               \
113         .Instance = UART3_TX_DMA_INSTANCE,                          \
114         .dma_rcc  = UART3_TX_DMA_RCC,                               \
115         .dma_irq  = UART3_TX_DMA_IRQ,                               \
116     }
117 #endif /* UART3_DMA_TX_CONFIG */
118 #endif /* BSP_UART3_TX_USING_DMA */
119 #endif /* BSP_USING_UART3 */
120 
121 #if defined(BSP_USING_UART4)
122 #ifndef UART4_CONFIG
123 #define UART4_CONFIG                                                \
124     {                                                               \
125         .name = "uart4",                                            \
126         .Instance = UART4,                                          \
127         .irq_type = UART4_IRQn,                                     \
128     }
129 #endif /* UART4_CONFIG */
130 
131 #if defined(BSP_UART4_RX_USING_DMA)
132 #ifndef UART4_DMA_RX_CONFIG
133 #define UART4_DMA_RX_CONFIG                                         \
134     {                                                               \
135         .Instance = UART4_RX_DMA_INSTANCE,                          \
136         .dma_rcc  = UART4_RX_DMA_RCC,                               \
137         .dma_irq  = UART4_RX_DMA_IRQ,                               \
138     }
139 #endif /* UART4_DMA_RX_CONFIG */
140 #endif /* BSP_UART4_RX_USING_DMA */
141 
142 #if defined(BSP_UART4_TX_USING_DMA)
143 #ifndef UART4_DMA_TX_CONFIG
144 #define UART4_DMA_TX_CONFIG                                         \
145     {                                                               \
146         .Instance = UART4_TX_DMA_INSTANCE,                          \
147         .dma_rcc  = UART4_TX_DMA_RCC,                               \
148         .dma_irq  = UART4_TX_DMA_IRQ,                               \
149     }
150 #endif /* UART4_DMA_TX_CONFIG */
151 #endif /* BSP_UART4_TX_USING_DMA */
152 #endif /* BSP_USING_UART4 */
153 
154 #if defined(BSP_USING_UART5)
155 #ifndef UART5_CONFIG
156 #define UART5_CONFIG                                                \
157     {                                                               \
158         .name = "uart5",                                            \
159         .Instance = UART5,                                          \
160         .irq_type = UART5_IRQn,                                     \
161     }
162 #endif /* UART5_CONFIG */
163 #endif /* BSP_USING_UART5 */
164 
165 #if defined(BSP_UART5_RX_USING_DMA)
166 #ifndef UART5_DMA_RX_CONFIG
167 #define UART5_DMA_RX_CONFIG                                            \
168     {                                                               \
169         .Instance = DMA_NOT_AVAILABLE,                              \
170     }
171 #endif /* UART5_DMA_RX_CONFIG */
172 #endif /* BSP_UART5_RX_USING_DMA */
173 
174 #ifdef __cplusplus
175 }
176 #endif
177 
178 #endif
179