1 /*
2  * Copyright (c) 2006-2024, RT-Thread Development Team
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  *
6  * Change Logs:
7  * Date           Author       Notes
8  * 2024-04-08     QT-one       first version
9  */
10 
11 #ifndef __HT32_MSP_H__
12 #define __HT32_MSP_H__
13 
14 #include <rtthread.h>
15 #include "ht32.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 /* UART gpio */
22 #ifdef BSP_USING_UART
23 #ifdef BSP_USING_USART0
24 #define HTCFG_USART0_IPN                          USART0
25 
26 #define _HTCFG_USART0_TX_GPIOX                    A
27 #define _HTCFG_USART0_TX_GPION                    2
28 #define _HTCFG_USART0_RX_GPIOX                    A
29 #define _HTCFG_USART0_RX_GPION                    3
30 
31 #define HTCFG_USART0_TX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_USART0_TX_GPIOX)
32 #define HTCFG_USART0_TX_GPIO_CLK                  STRCAT2(P,              _HTCFG_USART0_TX_GPIOX)
33 #define HTCFG_USART0_TX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_USART0_TX_GPIOX)
34 #define HTCFG_USART0_TX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_USART0_TX_GPION)
35 
36 #define HTCFG_USART0_RX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_USART0_RX_GPIOX)
37 #define HTCFG_USART0_RX_GPIO_CLK                  STRCAT2(P,              _HTCFG_USART0_RX_GPIOX)
38 #define HTCFG_USART0_RX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_USART0_RX_GPIOX)
39 #define HTCFG_USART0_RX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_USART0_RX_GPION)
40 
41 #endif
42 #ifdef BSP_USING_USART1
43 
44 #define HTCFG_USART1_IPN                          USART1
45 
46 #define _HTCFG_USART1_TX_GPIOX                    A
47 #define _HTCFG_USART1_TX_GPION                    4
48 #define _HTCFG_USART1_RX_GPIOX                    A
49 #define _HTCFG_USART1_RX_GPION                    5
50 
51 #define HTCFG_USART1_TX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_USART1_TX_GPIOX)
52 #define HTCFG_USART1_TX_GPIO_CLK                  STRCAT2(P,              _HTCFG_USART1_TX_GPIOX)
53 #define HTCFG_USART1_TX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_USART1_TX_GPIOX)
54 #define HTCFG_USART1_TX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_USART1_TX_GPION)
55 
56 #define HTCFG_USART1_RX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_USART1_RX_GPIOX)
57 #define HTCFG_USART1_RX_GPIO_CLK                  STRCAT2(P,              _HTCFG_USART1_RX_GPIOX)
58 #define HTCFG_USART1_RX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_USART1_RX_GPIOX)
59 #define HTCFG_USART1_RX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_USART1_RX_GPION)
60 
61 #endif
62 #ifdef BSP_USING_UART0
63 
64 #define HTCFG_UART0_IPN                          UART0
65 
66 #define _HTCFG_UART0_TX_GPIOX                    B
67 #define _HTCFG_UART0_TX_GPION                    2
68 #define _HTCFG_UART0_RX_GPIOX                    B
69 #define _HTCFG_UART0_RX_GPION                    3
70 
71 #define HTCFG_UART0_TX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_UART0_TX_GPIOX)
72 #define HTCFG_UART0_TX_GPIO_CLK                  STRCAT2(P,              _HTCFG_UART0_TX_GPIOX)
73 #define HTCFG_UART0_TX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_UART0_TX_GPIOX)
74 #define HTCFG_UART0_TX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_UART0_TX_GPION)
75 
76 #define HTCFG_UART0_RX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_UART0_RX_GPIOX)
77 #define HTCFG_UART0_RX_GPIO_CLK                  STRCAT2(P,              _HTCFG_UART0_RX_GPIOX)
78 #define HTCFG_UART0_RX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_UART0_RX_GPIOX)
79 #define HTCFG_UART0_RX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_UART0_RX_GPION)
80 
81 #endif
82 #ifdef BSP_USING_UART1
83 
84 #define HTCFG_UART1_IPN                          UART1
85 
86 #define _HTCFG_UART1_TX_GPIOX                    B
87 #define _HTCFG_UART1_TX_GPION                    4
88 #define _HTCFG_UART1_RX_GPIOX                    B
89 #define _HTCFG_UART1_RX_GPION                    5
90 
91 #define HTCFG_UART1_TX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_UART1_TX_GPIOX)
92 #define HTCFG_UART1_TX_GPIO_CLK                  STRCAT2(P,              _HTCFG_UART1_TX_GPIOX)
93 #define HTCFG_UART1_TX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_UART1_TX_GPIOX)
94 #define HTCFG_UART1_TX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_UART1_TX_GPION)
95 
96 #define HTCFG_UART1_RX_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_UART1_RX_GPIOX)
97 #define HTCFG_UART1_RX_GPIO_CLK                  STRCAT2(P,              _HTCFG_UART1_RX_GPIOX)
98 #define HTCFG_UART1_RX_GPIO_PORT                 STRCAT2(HT_GPIO,        _HTCFG_UART1_RX_GPIOX)
99 #define HTCFG_UART1_RX_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_UART1_RX_GPION)
100 
101 #endif
102 #endif
103 
104 /* SPI gpio */
105 #ifdef BSP_USING_SPI
106 #ifdef BSP_USING_SPI0
107 
108 #define HTCFG_SPI0_IPN                           SPI0
109 
110 #define _HTCFG_SPI0_SCK_GPIOX                    C
111 #define _HTCFG_SPI0_SCK_GPION                    0
112 
113 #define _HTCFG_SPI0_MISO_GPIOX                   A
114 #define _HTCFG_SPI0_MISO_GPION                   11
115 
116 #define _HTCFG_SPI0_MOSI_GPIOX                   A
117 #define _HTCFG_SPI0_MOSI_GPION                   9
118 
119 #define HTCFG_SPI0_SCK_GPIO_CLK                  STRCAT2(P,              _HTCFG_SPI0_SCK_GPIOX)
120 #define HTCFG_SPI0_SCK_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_SPI0_SCK_GPIOX)
121 #define HTCFG_SPI0_SCK_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_SPI0_SCK_GPION)
122 
123 #define HTCFG_SPI0_MISO_GPIO_CLK                 STRCAT2(P,              _HTCFG_SPI0_MISO_GPIOX)
124 #define HTCFG_SPI0_MISO_GPIO_ID                  STRCAT2(GPIO_P,         _HTCFG_SPI0_MISO_GPIOX)
125 #define HTCFG_SPI0_MISO_GPIO_PIN                 STRCAT2(GPIO_PIN_,      _HTCFG_SPI0_MISO_GPION)
126 
127 #define HTCFG_SPI0_MOSI_GPIO_CLK                 STRCAT2(P,              _HTCFG_SPI0_MOSI_GPIOX)
128 #define HTCFG_SPI0_MOSI_GPIO_ID                  STRCAT2(GPIO_P,         _HTCFG_SPI0_MOSI_GPIOX)
129 #define HTCFG_SPI0_MOSI_GPIO_PIN                 STRCAT2(GPIO_PIN_,      _HTCFG_SPI0_MOSI_GPION)
130 
131 #endif
132 #ifdef BSP_USING_SPI1
133 
134 #define HTCFG_SPI1_IPN                           SPI1
135 
136 #define _HTCFG_SPI1_SCK_GPIOX                    C
137 #define _HTCFG_SPI1_SCK_GPION                    5
138 
139 #define _HTCFG_SPI1_MISO_GPIOX                   C
140 #define _HTCFG_SPI1_MISO_GPION                   9
141 
142 #define _HTCFG_SPI1_MOSI_GPIOX                   C
143 #define _HTCFG_SPI1_MOSI_GPION                   8
144 
145 #define HTCFG_SPI1_SCK_GPIO_CLK                  STRCAT2(P,              _HTCFG_SPI1_SCK_GPIOX)
146 #define HTCFG_SPI1_SCK_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_SPI1_SCK_GPIOX)
147 #define HTCFG_SPI1_SCK_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_SPI1_SCK_GPION)
148 
149 #define HTCFG_SPI1_MISO_GPIO_CLK                 STRCAT2(P,              _HTCFG_SPI1_MISO_GPIOX)
150 #define HTCFG_SPI1_MISO_GPIO_ID                  STRCAT2(GPIO_P,         _HTCFG_SPI1_MISO_GPIOX)
151 #define HTCFG_SPI1_MISO_GPIO_PIN                 STRCAT2(GPIO_PIN_,      _HTCFG_SPI1_MISO_GPION)
152 
153 #define HTCFG_SPI1_MOSI_GPIO_CLK                 STRCAT2(P,              _HTCFG_SPI1_MOSI_GPIOX)
154 #define HTCFG_SPI1_MOSI_GPIO_ID                  STRCAT2(GPIO_P,         _HTCFG_SPI1_MOSI_GPIOX)
155 #define HTCFG_SPI1_MOSI_GPIO_PIN                 STRCAT2(GPIO_PIN_,      _HTCFG_SPI1_MOSI_GPION)
156 
157 #endif
158 #endif
159 
160 /* I2C gpio */
161 #ifdef BSP_USING_I2C_HW
162 #ifdef BSP_USING_I2C0_HW
163 
164 #define HTCFG_I2C0_IPN                           I2C0
165 
166 #define _HTCFG_I2C0_SCL_GPIOX                    C
167 #define _HTCFG_I2C0_SCL_GPION                    12
168 
169 #define _HTCFG_I2C0_SDA_GPIOX                    C
170 #define _HTCFG_I2C0_SDA_GPION                    13
171 
172 #define HTCFG_I2C0_SCL_GPIO_CLK                  STRCAT2(P,              _HTCFG_I2C0_SCL_GPIOX)
173 #define HTCFG_I2C0_SCL_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_I2C0_SCL_GPIOX)
174 #define HTCFG_I2C0_SCL_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_I2C0_SCL_GPION)
175 
176 #define HTCFG_I2C0_SDA_GPIO_CLK                  STRCAT2(P,              _HTCFG_I2C0_SDA_GPIOX)
177 #define HTCFG_I2C0_SDA_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_I2C0_SDA_GPIOX)
178 #define HTCFG_I2C0_SDA_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_I2C0_SDA_GPION)
179 
180 #endif
181 #ifdef BSP_USING_I2C1_HW
182 
183 #define HTCFG_I2C1_IPN                           I2C1
184 
185 #define _HTCFG_I2C1_SCL_GPIOX                    A
186 #define _HTCFG_I2C1_SCL_GPION                    0
187 
188 #define _HTCFG_I2C1_SDA_GPIOX                    A
189 #define _HTCFG_I2C1_SDA_GPION                    1
190 
191 #define HTCFG_I2C1_SCL_GPIO_CLK                  STRCAT2(P,              _HTCFG_I2C1_SCL_GPIOX)
192 #define HTCFG_I2C1_SCL_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_I2C1_SCL_GPIOX)
193 #define HTCFG_I2C1_SCL_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_I2C1_SCL_GPION)
194 
195 #define HTCFG_I2C1_SDA_GPIO_CLK                  STRCAT2(P,              _HTCFG_I2C1_SDA_GPIOX)
196 #define HTCFG_I2C1_SDA_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_I2C1_SDA_GPIOX)
197 #define HTCFG_I2C1_SDA_GPIO_PIN                  STRCAT2(GPIO_PIN_,      _HTCFG_I2C1_SDA_GPION)
198 
199 #endif
200 #endif
201 
202 /* ADC gpio */
203 #ifdef BSP_USING_ADC
204 #ifdef BSP_USING_ADC0
205 
206 #define HTCFG_ADC0_IPN                           ADC0
207 
208 #define _HTCFG_ADC0CH0_GPIOX                     A
209 #define _HTCFG_ADC0CH0_AFION                     0
210 
211 #define _HTCFG_ADC0CH1_GPIOX                     A
212 #define _HTCFG_ADC0CH1_AFION                     1
213 
214 #define _HTCFG_ADC0CH2_GPIOX                     A
215 #define _HTCFG_ADC0CH2_AFION                     2
216 
217 #define _HTCFG_ADC0CH3_GPIOX                     A
218 #define _HTCFG_ADC0CH3_AFION                     3
219 
220 #define _HTCFG_ADC0CH4_GPIOX                     A
221 #define _HTCFG_ADC0CH4_AFION                     4
222 
223 #define _HTCFG_ADC0CH5_GPIOX                     A
224 #define _HTCFG_ADC0CH5_AFION                     5
225 
226 #define _HTCFG_ADC0CH6_GPIOX                     A
227 #define _HTCFG_ADC0CH6_AFION                     6
228 
229 #define _HTCFG_ADC0CH7_GPIOX                     A
230 #define _HTCFG_ADC0CH7_AFION                     7
231 
232 #define _HTCFG_ADC0CH8_GPIOX                     C
233 #define _HTCFG_ADC0CH8_AFION                     4
234 
235 #define _HTCFG_ADC0CH9_GPIOX                     C
236 #define _HTCFG_ADC0CH9_AFION                     5
237 
238 #define _HTCFG_ADC0CH10_GPIOX                    C
239 #define _HTCFG_ADC0CH10_AFION                    8
240 
241 #define _HTCFG_ADC0CH11_GPIOX                    C
242 #define _HTCFG_ADC0CH11_AFION                    9
243 
244 #define _HTCFG_ADC0CH12_GPIOX                    C
245 #define _HTCFG_ADC0CH12_AFION                    1
246 
247 #define _HTCFG_ADC0CH13_GPIOX                    C
248 #define _HTCFG_ADC0CH13_AFION                    1
249 
250 #define _HTCFG_ADC0CH14_GPIOX                    C
251 #define _HTCFG_ADC0CH14_AFION                    1
252 
253 #define _HTCFG_ADC0CH15_GPIOX                    C
254 #define _HTCFG_ADC0CH15_AFION                    1
255 
256 #define HTCFG_ADC0CH0_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH0_GPIOX)
257 #define HTCFG_ADC0CH1_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH1_GPIOX)
258 #define HTCFG_ADC0CH2_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH2_GPIOX)
259 #define HTCFG_ADC0CH3_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH3_GPIOX)
260 #define HTCFG_ADC0CH4_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH4_GPIOX)
261 #define HTCFG_ADC0CH5_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH5_GPIOX)
262 #define HTCFG_ADC0CH6_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH6_GPIOX)
263 #define HTCFG_ADC0CH7_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH7_GPIOX)
264 #define HTCFG_ADC0CH8_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH8_GPIOX)
265 #define HTCFG_ADC0CH9_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC0CH9_GPIOX)
266 #define HTCFG_ADC0CH10_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_ADC0CH10_GPIOX)
267 #define HTCFG_ADC0CH11_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_ADC0CH11_GPIOX)
268 #define HTCFG_ADC0CH12_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_ADC0CH12_GPIOX)
269 #define HTCFG_ADC0CH13_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_ADC0CH13_GPIOX)
270 #define HTCFG_ADC0CH14_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_ADC0CH14_GPIOX)
271 #define HTCFG_ADC0CH15_GPIO_ID                   STRCAT2(GPIO_P,         _HTCFG_ADC0CH15_GPIOX)
272 
273 #define HTCFG_ADC0CH0_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH0_AFION)
274 #define HTCFG_ADC0CH1_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH1_AFION)
275 #define HTCFG_ADC0CH2_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH2_AFION)
276 #define HTCFG_ADC0CH3_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH3_AFION)
277 #define HTCFG_ADC0CH4_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH4_AFION)
278 #define HTCFG_ADC0CH5_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH5_AFION)
279 #define HTCFG_ADC0CH6_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH6_AFION)
280 #define HTCFG_ADC0CH7_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH7_AFION)
281 #define HTCFG_ADC0CH8_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH8_AFION)
282 #define HTCFG_ADC0CH9_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH9_AFION)
283 #define HTCFG_ADC0CH10_AFIO_PIN                  STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH10_AFION)
284 #define HTCFG_ADC0CH11_AFIO_PIN                  STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH11_AFION)
285 #define HTCFG_ADC0CH12_AFIO_PIN                  STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH12_AFION)
286 #define HTCFG_ADC0CH13_AFIO_PIN                  STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH13_AFION)
287 #define HTCFG_ADC0CH14_AFIO_PIN                  STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH14_AFION)
288 #define HTCFG_ADC0CH15_AFIO_PIN                  STRCAT2(AFIO_PIN_,      _HTCFG_ADC0CH15_AFION)
289 
290 #endif
291 #ifdef BSP_USING_ADC1
292 
293 #define HTCFG_ADC1_IPN                           ADC1
294 
295 #define _HTCFG_ADC1CH0_GPIOX                     B
296 #define _HTCFG_ADC1CH0_AFION                     8
297 
298 #define _HTCFG_ADC1CH1_GPIOX                     A
299 #define _HTCFG_ADC1CH1_AFION                     0
300 
301 #define _HTCFG_ADC1CH2_GPIOX                     A
302 #define _HTCFG_ADC1CH2_AFION                     1
303 
304 #define _HTCFG_ADC1CH3_GPIOX                     A
305 #define _HTCFG_ADC1CH3_AFION                     2
306 
307 #define _HTCFG_ADC1CH4_GPIOX                     A
308 #define _HTCFG_ADC1CH4_AFION                     3
309 
310 #define _HTCFG_ADC1CH5_GPIOX                     A
311 #define _HTCFG_ADC1CH5_AFION                     4
312 
313 #define _HTCFG_ADC1CH6_GPIOX                     A
314 #define _HTCFG_ADC1CH6_AFION                     5
315 
316 #define _HTCFG_ADC1CH7_GPIOX                     A
317 #define _HTCFG_ADC1CH7_AFION                     6
318 
319 #define HTCFG_ADC1CH0_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH0_GPIOX)
320 #define HTCFG_ADC1CH1_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH1_GPIOX)
321 #define HTCFG_ADC1CH2_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH2_GPIOX)
322 #define HTCFG_ADC1CH3_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH3_GPIOX)
323 #define HTCFG_ADC1CH4_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH4_GPIOX)
324 #define HTCFG_ADC1CH5_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH5_GPIOX)
325 #define HTCFG_ADC1CH6_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH6_GPIOX)
326 #define HTCFG_ADC1CH7_GPIO_ID                    STRCAT2(GPIO_P,         _HTCFG_ADC1CH7_GPIOX)
327 
328 #define HTCFG_ADC1CH0_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH0_AFION)
329 #define HTCFG_ADC1CH1_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH1_AFION)
330 #define HTCFG_ADC1CH2_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH2_AFION)
331 #define HTCFG_ADC1CH3_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH3_AFION)
332 #define HTCFG_ADC1CH4_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH4_AFION)
333 #define HTCFG_ADC1CH5_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH5_AFION)
334 #define HTCFG_ADC1CH6_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH6_AFION)
335 #define HTCFG_ADC1CH7_AFIO_PIN                   STRCAT2(AFIO_PIN_,      _HTCFG_ADC1CH7_AFION)
336 
337 #endif
338 #endif
339 /* CAN gpio */
340 #ifdef BSP_USING_CAN
341 #define HTCFG_CAN_IPN                            CAN0
342 
343 #define _HTCFG_CAN_TX_GPIOX                      C
344 #define _HTCFG_CAN_TX_GPION                      6
345 
346 #define _HTCFG_CAN_RX_GPIOX                      C
347 #define _HTCFG_CAN_RX_GPION                      7
348 
349 #define HTCFG_CAN_TX_GPIO_CLK                    STRCAT2(P,              _HTCFG_CAN_TX_GPIOX)
350 #define HTCFG_CAN_TX_GPIO_ID                     STRCAT2(GPIO_P,         _HTCFG_CAN_TX_GPIOX)
351 #define HTCFG_CAN_TX_GPIO_PIN                    STRCAT2(GPIO_PIN_,      _HTCFG_CAN_TX_GPION)
352 
353 #define HTCFG_CAN_RX_GPIO_CLK                    STRCAT2(P,              _HTCFG_CAN_RX_GPIOX)
354 #define HTCFG_CAN_RX_GPIO_ID                     STRCAT2(GPIO_P,         _HTCFG_CAN_RX_GPIOX)
355 #define HTCFG_CAN_RX_GPIO_PIN                    STRCAT2(GPIO_PIN_,      _HTCFG_CAN_RX_GPION)
356 #endif
357 
358 void ht32_usart_gpio_init(void *instance);
359 void ht32_spi_gpio_init(void *instance);
360 void ht32_hardware_i2c_gpio_init(void *instance);
361 void ht32_adc_gpio_init(void *instance,int8_t channel);
362 void ht32_can_gpio_init(void *instance);
363 
364 #ifdef __cplusplus
365 }
366 #endif
367 
368 #endif /* __HT32_MSP_H__ */
369