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