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 340 341 void ht32_usart_gpio_init(void *instance); 342 void ht32_spi_gpio_init(void *instance); 343 void ht32_hardware_i2c_gpio_init(void *instance); 344 void ht32_adc_gpio_init(void *instance,int8_t channel); 345 346 #ifdef __cplusplus 347 } 348 #endif 349 350 #endif /* __HT32_MSP_H__ */ 351