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  * 2023-01-31     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 
24 #if defined(BSP_USING_UART1)
25 #define UART1_CONFIG                                                \
26     {                                                               \
27         .name = "uart1",                                            \
28         .uart_x = USART1,                                           \
29         .irqn = USART1_IRQn,                                        \
30     }
31 
32 #if defined(BSP_UART1_RX_USING_DMA)
33 #define UART1_RX_DMA_CONFIG                                         \
34     {                                                               \
35         .dma_channel = UART1_RX_DMA_CHANNEL,                        \
36         .dma_clock = UART1_RX_DMA_CLOCK,                            \
37         .dma_irqn = UART1_RX_DMA_IRQ,                               \
38         .flex_channel = UART1_RX_DMA_FLEX_CHANNEL,                  \
39         .request_id = UART1_RX_DMA_REQ_ID,                          \
40     }
41 #endif /* BSP_UART1_RX_USING_DMA */
42 
43 #if defined(BSP_UART1_TX_USING_DMA)
44 #define UART1_TX_DMA_CONFIG                                         \
45     {                                                               \
46         .dma_channel = UART1_TX_DMA_CHANNEL,                        \
47         .dma_clock = UART1_TX_DMA_CLOCK,                            \
48         .dma_irqn = UART1_TX_DMA_IRQ,                               \
49         .flex_channel = UART1_TX_DMA_FLEX_CHANNEL,                  \
50         .request_id = UART1_TX_DMA_REQ_ID,                          \
51     }
52 #endif /* BSP_UART1_TX_USING_DMA */
53 #endif /* BSP_USING_UART1 */
54 
55 #if defined(BSP_USING_UART2)
56 #define UART2_CONFIG                                                \
57     {                                                               \
58         .name = "uart2",                                            \
59         .uart_x = USART2,                                           \
60         .irqn = USART2_IRQn,                                        \
61     }
62 
63 #if defined(BSP_UART2_RX_USING_DMA)
64 #define UART2_RX_DMA_CONFIG                                         \
65     {                                                               \
66         .dma_channel = UART2_RX_DMA_CHANNEL,                        \
67         .dma_clock = UART2_RX_DMA_CLOCK,                            \
68         .dma_irqn = UART2_RX_DMA_IRQ,                               \
69         .flex_channel = UART2_RX_DMA_FLEX_CHANNEL,                  \
70         .request_id = UART2_RX_DMA_REQ_ID,                          \
71     }
72 #endif /* BSP_UART2_RX_USING_DMA */
73 
74 #if defined(BSP_UART2_TX_USING_DMA)
75 #define UART2_TX_DMA_CONFIG                                         \
76     {                                                               \
77         .dma_channel = UART2_TX_DMA_CHANNEL,                        \
78         .dma_clock = UART2_TX_DMA_CLOCK,                            \
79         .dma_irqn = UART2_TX_DMA_IRQ,                               \
80         .flex_channel = UART2_TX_DMA_FLEX_CHANNEL,                  \
81         .request_id = UART2_TX_DMA_REQ_ID,                          \
82     }
83 #endif /* BSP_UART2_TX_USING_DMA */
84 #endif /* BSP_USING_UART2 */
85 
86 #if defined(BSP_USING_UART3)
87 #define UART3_CONFIG                                                \
88     {                                                               \
89         .name = "uart3",                                            \
90         .uart_x = USART3,                                           \
91         .irqn = USART4_3_IRQn,                                      \
92     }
93 
94 #if defined(BSP_UART3_RX_USING_DMA)
95 #define UART3_RX_DMA_CONFIG                                         \
96     {                                                               \
97         .dma_channel = UART3_RX_DMA_CHANNEL,                        \
98         .dma_clock = UART3_RX_DMA_CLOCK,                            \
99         .dma_irqn = UART3_RX_DMA_IRQ,                               \
100         .flex_channel = UART3_RX_DMA_FLEX_CHANNEL,                  \
101         .request_id = UART3_RX_DMA_REQ_ID,                          \
102     }
103 #endif /* BSP_UART3_RX_USING_DMA */
104 
105 #if defined(BSP_UART3_TX_USING_DMA)
106 #define UART3_TX_DMA_CONFIG                                         \
107     {                                                               \
108         .dma_channel = UART3_TX_DMA_CHANNEL,                        \
109         .dma_clock = UART3_TX_DMA_CLOCK,                            \
110         .dma_irqn = UART3_TX_DMA_IRQ,                               \
111         .flex_channel = UART3_TX_DMA_FLEX_CHANNEL,                  \
112         .request_id = UART3_TX_DMA_REQ_ID,                          \
113     }
114 #endif /* BSP_UART3_TX_USING_DMA */
115 #endif /* BSP_USING_UART3 */
116 
117 #if defined(BSP_USING_UART4)
118 #define UART4_CONFIG                                                \
119     {                                                               \
120         .name = "uart4",                                            \
121         .uart_x = USART4,                                           \
122         .irqn = USART4_3_IRQn,                                      \
123     }
124 #endif /* BSP_USING_UART4 */
125 
126 #ifdef __cplusplus
127 }
128 #endif
129 
130 #endif
131