board_config.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. * Copyright (c) 2022-2024, Xiaohua Semiconductor Co., Ltd.
  4. *
  5. * SPDX-License-Identifier: Apache-2.0
  6. *
  7. * Change Logs:
  8. * Date Author Notes
  9. * 2024-02-20 CDT first version
  10. */
  11. #ifndef __BOARD_CONFIG_H__
  12. #define __BOARD_CONFIG_H__
  13. #include <rtconfig.h>
  14. #include "hc32_ll.h"
  15. #include "drv_config.h"
  16. /************************* XTAL port **********************/
  17. #define XTAL_PORT (GPIO_PORT_H)
  18. #define XTAL_IN_PIN (GPIO_PIN_00)
  19. #define XTAL_OUT_PIN (GPIO_PIN_01)
  20. /************************ USART port **********************/
  21. #if defined(BSP_USING_UART1)
  22. #define USART1_RX_PORT (GPIO_PORT_A)
  23. #define USART1_RX_PIN (GPIO_PIN_10)
  24. #define USART1_RX_FUNC (GPIO_FUNC_33)
  25. #define USART1_TX_PORT (GPIO_PORT_A)
  26. #define USART1_TX_PIN (GPIO_PIN_09)
  27. #define USART1_TX_FUNC (GPIO_FUNC_32)
  28. #endif
  29. #if defined(BSP_USING_UART2)
  30. #define USART2_RX_PORT (GPIO_PORT_C)
  31. #define USART2_RX_PIN (GPIO_PIN_11)
  32. #define USART2_RX_FUNC (GPIO_FUNC_37)
  33. #define USART2_TX_PORT (GPIO_PORT_C)
  34. #define USART2_TX_PIN (GPIO_PIN_10)
  35. #define USART2_TX_FUNC (GPIO_FUNC_36)
  36. #endif
  37. #if defined(BSP_USING_UART6)
  38. #define USART6_RX_PORT (GPIO_PORT_D)
  39. #define USART6_RX_PIN (GPIO_PIN_01)
  40. #define USART6_RX_FUNC (GPIO_FUNC_55)
  41. #define USART6_TX_PORT (GPIO_PORT_D)
  42. #define USART6_TX_PIN (GPIO_PIN_02)
  43. #define USART6_TX_FUNC (GPIO_FUNC_54)
  44. #endif
  45. /************************ I2C port **********************/
  46. #if defined(BSP_USING_I2C1)
  47. #define I2C1_SDA_PORT (GPIO_PORT_E)
  48. #define I2C1_SDA_PIN (GPIO_PIN_00)
  49. #define I2C1_SDA_FUNC (GPIO_FUNC_48)
  50. #define I2C1_SCL_PORT (GPIO_PORT_E)
  51. #define I2C1_SCL_PIN (GPIO_PIN_01)
  52. #define I2C1_SCL_FUNC (GPIO_FUNC_49)
  53. #endif
  54. #if defined(BSP_USING_I2C2) // TODO, ch2 for test only
  55. #define I2C2_SDA_PORT (GPIO_PORT_A)
  56. #define I2C2_SDA_PIN (GPIO_PIN_09)
  57. #define I2C2_SDA_FUNC (GPIO_FUNC_50)
  58. #define I2C2_SCL_PORT (GPIO_PORT_A)
  59. #define I2C2_SCL_PIN (GPIO_PIN_10)
  60. #define I2C2_SCL_FUNC (GPIO_FUNC_51)
  61. #endif
  62. /*********** ADC configure *********/
  63. #if defined(BSP_USING_ADC1)
  64. #define ADC1_CH_PORT (GPIO_PORT_C) /* Default ADC12_IN10 */
  65. #define ADC1_CH_PIN (GPIO_PIN_00)
  66. #endif
  67. #if defined(BSP_USING_ADC2)
  68. #define ADC2_CH_PORT (GPIO_PORT_A) /* Default ADC12_IN4 */
  69. #define ADC2_CH_PIN (GPIO_PIN_04)
  70. #endif
  71. #if defined(BSP_USING_ADC3)
  72. #define ADC3_CH_PORT (GPIO_PORT_E) /* Default ADC3_IN1 */
  73. #define ADC3_CH_PIN (GPIO_PIN_03)
  74. #endif
  75. /*********** DAC configure *********/
  76. #if defined(BSP_USING_DAC1)
  77. #define DAC1_CH1_PORT (GPIO_PORT_A)
  78. #define DAC1_CH1_PIN (GPIO_PIN_04)
  79. #define DAC1_CH2_PORT (GPIO_PORT_A)
  80. #define DAC1_CH2_PIN (GPIO_PIN_05)
  81. #endif
  82. /*********** CAN configure *********/
  83. #if defined(BSP_USING_MCAN1)
  84. #define MCAN1_TX_PORT (GPIO_PORT_C)
  85. #define MCAN1_TX_PIN (GPIO_PIN_12)
  86. #define MCAN1_TX_PIN_FUNC (GPIO_FUNC_56)
  87. #define MCAN1_RX_PORT (GPIO_PORT_D)
  88. #define MCAN1_RX_PIN (GPIO_PIN_00)
  89. #define MCAN1_RX_PIN_FUNC (GPIO_FUNC_57)
  90. #endif
  91. #if defined(BSP_USING_MCAN2)
  92. #define MCAN2_TX_PORT (GPIO_PORT_H)
  93. #define MCAN2_TX_PIN (GPIO_PIN_02)
  94. #define MCAN2_TX_PIN_FUNC (GPIO_FUNC_56)
  95. #define MCAN2_RX_PORT (GPIO_PORT_E)
  96. #define MCAN2_RX_PIN (GPIO_PIN_04)
  97. #define MCAN2_RX_PIN_FUNC (GPIO_FUNC_57)
  98. #endif
  99. /************************* SPI port ***********************/
  100. #if defined(BSP_USING_SPI1)
  101. #define SPI1_CS_PORT (GPIO_PORT_C)
  102. #define SPI1_CS_PIN (GPIO_PIN_07)
  103. #define SPI1_SCK_PORT (GPIO_PORT_B)
  104. #define SPI1_SCK_PIN (GPIO_PIN_14)
  105. #define SPI1_SCK_FUNC (GPIO_FUNC_47)
  106. #define SPI1_MOSI_PORT (GPIO_PORT_B)
  107. #define SPI1_MOSI_PIN (GPIO_PIN_13)
  108. #define SPI1_MOSI_FUNC (GPIO_FUNC_44)
  109. #define SPI1_MISO_PORT (GPIO_PORT_D)
  110. #define SPI1_MISO_PIN (GPIO_PIN_09)
  111. #define SPI1_MISO_FUNC (GPIO_FUNC_45)
  112. #define SPI1_WP_PORT (GPIO_PORT_D)
  113. #define SPI1_WP_PIN (GPIO_PIN_10)
  114. #define SPI1_HOLD_PORT (GPIO_PORT_D)
  115. #define SPI1_HOLD_PIN (GPIO_PIN_11)
  116. #endif
  117. /************************ RTC/PM *****************************/
  118. #if defined(BSP_USING_RTC) || defined(RT_USING_PM)
  119. #if defined(BSP_RTC_USING_XTAL32) || defined(RT_USING_PM)
  120. #define XTAL32_PORT (GPIO_PORT_C)
  121. #define XTAL32_IN_PIN (GPIO_PIN_14)
  122. #define XTAL32_OUT_PIN (GPIO_PIN_15)
  123. #endif
  124. #endif
  125. #if defined(RT_USING_PWM)
  126. /*********** PWM_TMRA configure *********/
  127. #if defined(BSP_USING_PWM_TMRA_1)
  128. #if defined(BSP_USING_PWM_TMRA_1_CH1)
  129. #define PWM_TMRA_1_CH1_PORT (GPIO_PORT_A)
  130. #define PWM_TMRA_1_CH1_PIN (GPIO_PIN_08)
  131. #define PWM_TMRA_1_CH1_PIN_FUNC (GPIO_FUNC_4)
  132. #endif
  133. #if defined(BSP_USING_PWM_TMRA_1_CH2)
  134. #define PWM_TMRA_1_CH2_PORT (GPIO_PORT_A)
  135. #define PWM_TMRA_1_CH2_PIN (GPIO_PIN_09)
  136. #define PWM_TMRA_1_CH2_PIN_FUNC (GPIO_FUNC_4)
  137. #endif
  138. #if defined(BSP_USING_PWM_TMRA_1_CH3)
  139. #define PWM_TMRA_1_CH3_PORT (GPIO_PORT_A)
  140. #define PWM_TMRA_1_CH3_PIN (GPIO_PIN_10)
  141. #define PWM_TMRA_1_CH3_PIN_FUNC (GPIO_FUNC_4)
  142. #endif
  143. #if defined(BSP_USING_PWM_TMRA_1_CH4)
  144. #define PWM_TMRA_1_CH4_PORT (GPIO_PORT_A)
  145. #define PWM_TMRA_1_CH4_PIN (GPIO_PIN_11)
  146. #define PWM_TMRA_1_CH4_PIN_FUNC (GPIO_FUNC_4)
  147. #endif
  148. #endif
  149. #if defined(BSP_USING_PWM_TMRA_2)
  150. #if defined(BSP_USING_PWM_TMRA_2_CH1)
  151. #define PWM_TMRA_2_CH1_PORT (GPIO_PORT_A)
  152. #define PWM_TMRA_2_CH1_PIN (GPIO_PIN_00)
  153. #define PWM_TMRA_2_CH1_PIN_FUNC (GPIO_FUNC_4)
  154. #endif
  155. #if defined(BSP_USING_PWM_TMRA_2_CH2)
  156. #define PWM_TMRA_2_CH2_PORT (GPIO_PORT_A)
  157. #define PWM_TMRA_2_CH2_PIN (GPIO_PIN_01)
  158. #define PWM_TMRA_2_CH2_PIN_FUNC (GPIO_FUNC_4)
  159. #endif
  160. #if defined(BSP_USING_PWM_TMRA_2_CH3)
  161. #define PWM_TMRA_2_CH3_PORT (GPIO_PORT_A)
  162. #define PWM_TMRA_2_CH3_PIN (GPIO_PIN_02)
  163. #define PWM_TMRA_2_CH3_PIN_FUNC (GPIO_FUNC_4)
  164. #endif
  165. #if defined(BSP_USING_PWM_TMRA_2_CH4)
  166. #define PWM_TMRA_2_CH4_PORT (GPIO_PORT_A)
  167. #define PWM_TMRA_2_CH4_PIN (GPIO_PIN_03)
  168. #define PWM_TMRA_2_CH4_PIN_FUNC (GPIO_FUNC_4)
  169. #endif
  170. #endif
  171. /*********** PWM_TMR4 configure *********/
  172. #if defined(BSP_USING_PWM_TMR4_1)
  173. #if defined(BSP_USING_PWM_TMR4_1_OUH)
  174. #define PWM_TMR4_1_OUH_PORT (GPIO_PORT_A)
  175. #define PWM_TMR4_1_OUH_PIN (GPIO_PIN_08)
  176. #define PWM_TMR4_1_OUH_PIN_FUNC (GPIO_FUNC_2)
  177. #endif
  178. #if defined(BSP_USING_PWM_TMR4_1_OUL)
  179. #define PWM_TMR4_1_OUL_PORT (GPIO_PORT_A)
  180. #define PWM_TMR4_1_OUL_PIN (GPIO_PIN_07)
  181. #define PWM_TMR4_1_OUL_PIN_FUNC (GPIO_FUNC_2)
  182. #endif
  183. #if defined(BSP_USING_PWM_TMR4_1_OVH)
  184. #define PWM_TMR4_1_OVH_PORT (GPIO_PORT_A)
  185. #define PWM_TMR4_1_OVH_PIN (GPIO_PIN_09)
  186. #define PWM_TMR4_1_OVH_PIN_FUNC (GPIO_FUNC_2)
  187. #endif
  188. #if defined(BSP_USING_PWM_TMR4_1_OVL)
  189. #define PWM_TMR4_1_OVL_PORT (GPIO_PORT_B)
  190. #define PWM_TMR4_1_OVL_PIN (GPIO_PIN_00)
  191. #define PWM_TMR4_1_OVL_PIN_FUNC (GPIO_FUNC_2)
  192. #endif
  193. #if defined(BSP_USING_PWM_TMR4_1_OWH)
  194. #define PWM_TMR4_1_OWH_PORT (GPIO_PORT_A)
  195. #define PWM_TMR4_1_OWH_PIN (GPIO_PIN_10)
  196. #define PWM_TMR4_1_OWH_PIN_FUNC (GPIO_FUNC_2)
  197. #endif
  198. #if defined(BSP_USING_PWM_TMR4_1_OWL)
  199. #define PWM_TMR4_1_OWL_PORT (GPIO_PORT_B)
  200. #define PWM_TMR4_1_OWL_PIN (GPIO_PIN_01)
  201. #define PWM_TMR4_1_OWL_PIN_FUNC (GPIO_FUNC_2)
  202. #endif
  203. #endif
  204. /*********** PWM_TMR6 configure *********/
  205. #if defined(BSP_USING_PWM_TMR6_1)
  206. #if defined(BSP_USING_PWM_TMR6_1_A)
  207. #define PWM_TMR6_1_A_PORT (GPIO_PORT_A)
  208. #define PWM_TMR6_1_A_PIN (GPIO_PIN_08)
  209. #define PWM_TMR6_1_A_PIN_FUNC (GPIO_FUNC_3)
  210. #endif
  211. #if defined(BSP_USING_PWM_TMR6_1_B)
  212. #define PWM_TMR6_1_B_PORT (GPIO_PORT_A)
  213. #define PWM_TMR6_1_B_PIN (GPIO_PIN_07)
  214. #define PWM_TMR6_1_B_PIN_FUNC (GPIO_FUNC_3)
  215. #endif
  216. #endif
  217. #endif
  218. #if defined(BSP_USING_QSPI)
  219. #ifndef BSP_QSPI_USING_SOFT_CS
  220. /* QSSN */
  221. #define QSPI_FLASH_CS_PORT (GPIO_PORT_C)
  222. #define QSPI_FLASH_CS_PIN (GPIO_PIN_07)
  223. #define QSPI_FLASH_CS_FUNC (GPIO_FUNC_7)
  224. #endif
  225. /* QSCK */
  226. #define QSPI_FLASH_SCK_PORT (GPIO_PORT_B)
  227. #define QSPI_FLASH_SCK_PIN (GPIO_PIN_14)
  228. #define QSPI_FLASH_SCK_FUNC (GPIO_FUNC_7)
  229. /* QSIO0 */
  230. #define QSPI_FLASH_IO0_PORT (GPIO_PORT_B)
  231. #define QSPI_FLASH_IO0_PIN (GPIO_PIN_13)
  232. #define QSPI_FLASH_IO0_FUNC (GPIO_FUNC_7)
  233. /* QSIO1 */
  234. #define QSPI_FLASH_IO1_PORT (GPIO_PORT_D)
  235. #define QSPI_FLASH_IO1_PIN (GPIO_PIN_09)
  236. #define QSPI_FLASH_IO1_FUNC (GPIO_FUNC_7)
  237. /* QSIO2 */
  238. #define QSPI_FLASH_IO2_PORT (GPIO_PORT_D)
  239. #define QSPI_FLASH_IO2_PIN (GPIO_PIN_10)
  240. #define QSPI_FLASH_IO2_FUNC (GPIO_FUNC_7)
  241. /* QSIO3 */
  242. #define QSPI_FLASH_IO3_PORT (GPIO_PORT_D)
  243. #define QSPI_FLASH_IO3_PIN (GPIO_PIN_11)
  244. #define QSPI_FLASH_IO3_FUNC (GPIO_FUNC_7)
  245. #endif
  246. /*********** TMRA_PULSE_ENCODER configure *********/
  247. #if defined(RT_USING_PULSE_ENCODER)
  248. #if defined(BSP_USING_TMRA_PULSE_ENCODER)
  249. #if defined(BSP_USING_PULSE_ENCODER_TMRA_1)
  250. #define PULSE_ENCODER_TMRA_1_A_PORT (GPIO_PORT_A)
  251. #define PULSE_ENCODER_TMRA_1_A_PIN (GPIO_PIN_08)
  252. #define PULSE_ENCODER_TMRA_1_A_PIN_FUNC (GPIO_FUNC_4)
  253. #define PULSE_ENCODER_TMRA_1_B_PORT (GPIO_PORT_A)
  254. #define PULSE_ENCODER_TMRA_1_B_PIN (GPIO_PIN_09)
  255. #define PULSE_ENCODER_TMRA_1_B_PIN_FUNC (GPIO_FUNC_4)
  256. #endif /* BSP_USING_PULSE_ENCODER_TMRA_1 */
  257. #endif /* BSP_USING_TMRA_PULSE_ENCODER */
  258. #if defined(BSP_USING_TMR6_PULSE_ENCODER)
  259. #if defined(BSP_USING_PULSE_ENCODER_TMR6_1)
  260. #define PULSE_ENCODER_TMR6_1_A_PORT (GPIO_PORT_B)
  261. #define PULSE_ENCODER_TMR6_1_A_PIN (GPIO_PIN_05)
  262. #define PULSE_ENCODER_TMR6_1_A_PIN_FUNC (GPIO_FUNC_3)
  263. #define PULSE_ENCODER_TMR6_1_B_PORT (GPIO_PORT_B)
  264. #define PULSE_ENCODER_TMR6_1_B_PIN (GPIO_PIN_13)
  265. #define PULSE_ENCODER_TMR6_1_B_PIN_FUNC (GPIO_FUNC_3)
  266. #endif /* BSP_USING_PULSE_ENCODER_TMR6_1 */
  267. #endif /* BSP_USING_TMR6_PULSE_ENCODER */
  268. #endif /* RT_USING_PULSE_ENCODER */
  269. #endif