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  * 2022-11-09     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      UART4_IRQHandler
25 #define UART5_IRQHandler      UART5_IRQHandler
26 
27 #if defined(BSP_USING_UART1)
28 #define UART1_CONFIG                                                \
29     {                                                               \
30         .name = "uart1",                                            \
31         .uart_x = USART1,                                           \
32         .irqn = USART1_IRQn,                                        \
33     }
34 
35 #if defined(BSP_UART1_RX_USING_DMA)
36 #define UART1_RX_DMA_CONFIG                                         \
37     {                                                               \
38         .dma_channel = UART1_RX_DMA_CHANNEL,                        \
39         .dma_clock = UART1_RX_DMA_CLOCK,                            \
40         .dma_irqn = UART1_RX_DMA_IRQ,                               \
41     }
42 #endif /* BSP_UART1_RX_USING_DMA */
43 
44 #if defined(BSP_UART1_TX_USING_DMA)
45 #define UART1_TX_DMA_CONFIG                                         \
46     {                                                               \
47         .dma_channel = UART1_TX_DMA_CHANNEL,                        \
48         .dma_clock = UART1_TX_DMA_CLOCK,                            \
49         .dma_irqn = UART1_TX_DMA_IRQ,                               \
50     }
51 #endif /* BSP_UART1_TX_USING_DMA */
52 #endif /* BSP_USING_UART1 */
53 
54 #if defined(BSP_USING_UART2)
55 #define UART2_CONFIG                                                \
56     {                                                               \
57         .name = "uart2",                                            \
58         .uart_x = USART2,                                           \
59         .irqn = USART2_IRQn,                                        \
60     }
61 
62 #if defined(BSP_UART2_RX_USING_DMA)
63 #define UART2_RX_DMA_CONFIG                                         \
64     {                                                               \
65         .dma_channel = UART2_RX_DMA_CHANNEL,                        \
66         .dma_clock = UART2_RX_DMA_CLOCK,                            \
67         .dma_irqn = UART2_RX_DMA_IRQ,                               \
68     }
69 #endif /* BSP_UART2_RX_USING_DMA */
70 
71 #if defined(BSP_UART2_TX_USING_DMA)
72 #define UART2_TX_DMA_CONFIG                                         \
73     {                                                               \
74         .dma_channel = UART2_TX_DMA_CHANNEL,                        \
75         .dma_clock = UART2_TX_DMA_CLOCK,                            \
76         .dma_irqn = UART2_TX_DMA_IRQ,                               \
77     }
78 #endif /* BSP_UART2_TX_USING_DMA */
79 #endif /* BSP_USING_UART2 */
80 
81 #if defined(BSP_USING_UART3)
82 #define UART3_CONFIG                                                \
83     {                                                               \
84         .name = "uart3",                                            \
85         .uart_x = USART3,                                           \
86         .irqn = USART3_IRQn,                                        \
87     }
88 
89 #if defined(BSP_UART3_RX_USING_DMA)
90 #define UART3_RX_DMA_CONFIG                                         \
91     {                                                               \
92         .dma_channel = UART3_RX_DMA_CHANNEL,                        \
93         .dma_clock = UART3_RX_DMA_CLOCK,                            \
94         .dma_irqn = UART3_RX_DMA_IRQ,                               \
95     }
96 #endif /* BSP_UART3_RX_USING_DMA */
97 
98 #if defined(BSP_UART3_TX_USING_DMA)
99 #define UART3_TX_DMA_CONFIG                                         \
100     {                                                               \
101         .dma_channel = UART3_TX_DMA_CHANNEL,                        \
102         .dma_clock = UART3_TX_DMA_CLOCK,                            \
103         .dma_irqn = UART3_TX_DMA_IRQ,                               \
104     }
105 #endif /* BSP_UART3_TX_USING_DMA */
106 #endif /* BSP_USING_UART3 */
107 
108 #if defined(BSP_USING_UART4)
109 #define UART4_CONFIG                                                \
110     {                                                               \
111         .name = "uart4",                                            \
112         .uart_x = UART4,                                            \
113         .irqn = UART4_IRQn,                                         \
114     }
115 
116 #if defined(BSP_UART4_RX_USING_DMA)
117 #define UART4_RX_DMA_CONFIG                                         \
118     {                                                               \
119         .dma_channel = UART4_RX_DMA_CHANNEL,                        \
120         .dma_clock = UART4_RX_DMA_CLOCK,                            \
121         .dma_irqn = UART4_RX_DMA_IRQ,                               \
122     }
123 #endif /* BSP_UART4_RX_USING_DMA */
124 
125 #if defined(BSP_UART4_TX_USING_DMA)
126 #define UART4_TX_DMA_CONFIG                                         \
127     {                                                               \
128         .dma_channel = UART4_TX_DMA_CHANNEL,                        \
129         .dma_clock = UART4_TX_DMA_CLOCK,                            \
130         .dma_irqn = UART4_TX_DMA_IRQ,                               \
131     }
132 #endif /* BSP_UART4_TX_USING_DMA */
133 #endif /* BSP_USING_UART4 */
134 
135 #if defined(BSP_USING_UART5)
136 #define UART5_CONFIG                                                \
137     {                                                               \
138         .name = "uart5",                                            \
139         .uart_x = UART5,                                            \
140         .irqn = UART5_IRQn,                                         \
141     }
142 #endif /* BSP_USING_UART5 */
143 
144 #ifdef __cplusplus
145 }
146 #endif
147 
148 #endif
149