1 /*
2  * Copyright (c) 2006-2022, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2021-08-23     AisinoChip   the first version
9  */
10 
11 #ifndef __UART_CONFIG_H__
12 #define __UART_CONFIG_H__
13 
14 #include <rtthread.h>
15 #include "board.h"
16 
17 
18 #ifdef __cplusplus
19 extern "C" {
20 #endif
21 
22 #if defined(RT_USING_SERIAL)
23 
24 #if defined(BSP_USING_UART1)
25 
26 #if defined(RT_SERIAL_USING_DMA)
27 #if defined(BSP_UART1_RX_USING_DMA)
28 #ifndef UART1_DMA_RX_CONFIG
29 #define UART1_DMA_RX_CONFIG                                         \
30     {                                                               \
31         .Instance = UART1_RX_DMA_INSTANCE,                          \
32         .dma_rcc  = UART1_RX_DMA_RCC,                               \
33         .dma_irq  = UART1_RX_DMA_IRQ,                               \
34         .channel  = UART1_RX_DMA_CHANNEL,                           \
35         .request  = UART1_RX_DMA_REQUEST,                           \
36     }
37 #endif /* UART1_DMA_RX_CONFIG */
38 #endif /* BSP_UART1_RX_USING_DMA */
39 
40 #if defined(BSP_UART1_TX_USING_DMA)
41 #ifndef UART1_DMA_TX_CONFIG
42 #define UART1_DMA_TX_CONFIG                                         \
43     {                                                               \
44         .Instance = UART1_TX_DMA_INSTANCE,                          \
45         .dma_rcc  = UART1_TX_DMA_RCC,                               \
46         .dma_irq  = UART1_TX_DMA_IRQ,                               \
47         .channel  = UART1_RX_DMA_CHANNEL,                           \
48         .request  = UART1_RX_DMA_REQUEST,                           \
49     }
50 #endif /* UART1_DMA_TX_CONFIG */
51 #endif /* BSP_UART1_TX_USING_DMA */
52 #endif /* RT_SERIAL_USING_DMA */
53 
54 #ifndef UART1_CONFIG
55 #define UART1_CONFIG                                                \
56     {                                                               \
57         .name = "uart1",                                            \
58         .Instance = UART1,                                          \
59         .irq_type = UART1_IRQn,                                     \
60         .enable_id = EN_UART1,                                      \
61         .tx_port  = UART1_TX_PORT,                                  \
62         .rx_port  = UART1_RX_PORT,                                  \
63         .tx_pin   = UART1_TX_PIN,                                   \
64         .rx_pin   = UART1_RX_PIN,                                   \
65     }
66 #endif /* UART1_CONFIG */
67 #endif /* BSP_USING_UART1 */
68 
69 #if defined(BSP_USING_UART2)
70 
71 #if defined(RT_SERIAL_USING_DMA)
72 #if defined(BSP_UART2_RX_USING_DMA)
73 #ifndef UART2_DMA_RX_CONFIG
74 #define UART2_DMA_RX_CONFIG                                         \
75     {                                                               \
76         .Instance = UART2_RX_DMA_INSTANCE,                          \
77         .dma_rcc  = UART2_RX_DMA_RCC,                               \
78         .dma_irq  = UART2_RX_DMA_IRQ,                               \
79         .channel  = UART2_RX_DMA_CHANNEL,                           \
80         .request  = UART2_RX_DMA_REQUEST,                           \
81     }
82 #endif /* UART2_DMA_RX_CONFIG */
83 #endif /* BSP_UART2_RX_USING_DMA */
84 
85 #if defined(BSP_UART2_TX_USING_DMA)
86 #ifndef UART2_DMA_TX_CONFIG
87 #define UART2_DMA_TX_CONFIG                                         \
88     {                                                               \
89         .Instance = UART2_TX_DMA_INSTANCE,                          \
90         .dma_rcc  = UART2_TX_DMA_RCC,                               \
91         .dma_irq  = UART2_TX_DMA_IRQ,                               \
92         .channel  = UART2_TX_DMA_CHANNEL,                           \
93         .request  = UART2_TX_DMA_REQUEST,                           \
94     }
95 #endif /* UART2_DMA_TX_CONFIG */
96 #endif /* BSP_UART2_TX_USING_DMA */
97 #endif /* RT_SERIAL_USING_DMA */
98 
99 #ifndef UART2_CONFIG
100 #define UART2_CONFIG                                                \
101     {                                                               \
102         .name = "uart2",                                            \
103         .Instance = UART2,                                          \
104         .irq_type = UART2_IRQn,                                     \
105         .enable_id = EN_UART2,                                      \
106         .tx_port  = UART2_TX_PORT,                                  \
107         .rx_port  = UART2_RX_PORT,                                  \
108         .tx_pin   = UART2_TX_PIN,                                   \
109         .rx_pin   = UART2_RX_PIN,                                   \
110     }
111 #endif /* UART2_CONFIG */
112 #endif /* BSP_USING_UART2 */
113 
114 #if defined(BSP_USING_UART3)
115 
116 #if defined(RT_SERIAL_USING_DMA)
117 #if defined(BSP_UART3_RX_USING_DMA)
118 #ifndef UART3_DMA_RX_CONFIG
119 #define UART3_DMA_RX_CONFIG                                         \
120     {                                                               \
121         .Instance = UART3_RX_DMA_INSTANCE,                          \
122         .dma_rcc  = UART3_RX_DMA_RCC,                               \
123         .dma_irq  = UART3_RX_DMA_IRQ,                               \
124         .channel  = UART3_RX_DMA_CHANNEL,                           \
125         .request  = UART3_RX_DMA_REQUEST,                           \
126     }
127 #endif /* UART3_DMA_RX_CONFIG */
128 #endif /* BSP_UART3_RX_USING_DMA */
129 
130 #if defined(BSP_UART3_TX_USING_DMA)
131 #ifndef UART3_DMA_TX_CONFIG
132 #define UART3_DMA_TX_CONFIG                                         \
133     {                                                               \
134         .Instance = UART3_TX_DMA_INSTANCE,                          \
135         .dma_rcc  = UART3_TX_DMA_RCC,                               \
136         .dma_irq  = UART3_TX_DMA_IRQ,                               \
137         .channel  = UART3_TX_DMA_CHANNEL,                           \
138         .request  = UART3_TX_DMA_REQUEST,                           \
139     }
140 #endif /* UART3_DMA_TX_CONFIG */
141 #endif /* BSP_UART3_TX_USING_DMA */
142 #endif /* RT_SERIAL_USING_DMA */
143 
144 #ifndef UART3_CONFIG
145 #define UART3_CONFIG                                                \
146     {                                                               \
147         .name = "uart3",                                            \
148         .Instance = UART3,                                          \
149         .irq_type = UART3_IRQn,                                     \
150         .enable_id = EN_UART3,                                      \
151         .tx_port  = UART3_TX_PORT,                                  \
152         .rx_port  = UART3_RX_PORT,                                  \
153         .tx_pin   = UART3_TX_PIN,                                   \
154         .rx_pin   = UART3_RX_PIN,                                   \
155     }
156 #endif /* UART3_CONFIG */
157 #endif /* BSP_USING_UART3 */
158 
159 #ifdef __cplusplus
160 }
161 #endif
162 
163 #endif /* RT_USING_SERIAL */
164 
165 #endif /* __UART_CONFIG_H__ */
166