uart_config.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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. * 2022-07-08 Rbb666 first version
  9. * 2025-04-21 Hydevcode adapt xmc7100d
  10. */
  11. #ifndef __UART_CONFIG_H__
  12. #define __UART_CONFIG_H__
  13. #include <rtthread.h>
  14. #include "board.h"
  15. #ifdef __cplusplus
  16. extern "C"
  17. {
  18. #endif
  19. #if defined(SOC_SERIES_IFX_XMC)
  20. #if defined(UART_CPU_IRQ_Number)
  21. #if (UART_CPU_IRQ_Number == 0)
  22. #define UART_NvicMuxN_IRQn NvicMux0_IRQn
  23. #elif(UART_CPU_IRQ_Number == 1)
  24. #define UART_NvicMuxN_IRQn NvicMux1_IRQn
  25. #elif (UART_CPU_IRQ_Number == 2)
  26. #define UART_NvicMuxN_IRQn NvicMux2_IRQn
  27. #elif (UART_CPU_IRQ_Number == 3)
  28. #define UART_NvicMuxN_IRQn NvicMux3_IRQn
  29. #elif (UART_CPU_IRQ_Number == 4)
  30. #define UART_NvicMuxN_IRQn NvicMux4_IRQn
  31. #elif (UART_CPU_IRQ_Number == 5)
  32. #define UART_NvicMuxN_IRQn NvicMux5_IRQn
  33. #elif (UART_CPU_IRQ_Number == 6)
  34. #define UART_NvicMuxN_IRQn NvicMux6_IRQn
  35. #elif (UART_CPU_IRQ_Number == 7)
  36. #define UART_NvicMuxN_IRQn NvicMux7_IRQn
  37. #endif
  38. #endif
  39. #endif
  40. #ifdef BSP_USING_UART0
  41. /* UART0 device driver structure */
  42. cy_stc_sysint_t UART0_SCB_IRQ_cfg =
  43. {
  44. #if defined(SOC_SERIES_IFX_XMC)
  45. .intrSrc = ((UART_NvicMuxN_IRQn << 16) | (cy_en_intr_t)scb_0_interrupt_IRQn),
  46. #else
  47. .intrSrc = (IRQn_Type)scb_0_interrupt_IRQn,
  48. #endif
  49. .intrPriority = (7u),
  50. };
  51. #endif
  52. #ifdef BSP_USING_UART1
  53. /* UART1 device driver structure */
  54. cy_stc_sysint_t UART1_SCB_IRQ_cfg =
  55. {
  56. #if defined(SOC_SERIES_IFX_XMC)
  57. .intrSrc = ((UART_NvicMuxN_IRQn << 16) | (cy_en_intr_t)scb_1_interrupt_IRQn),
  58. #else
  59. .intrSrc = (IRQn_Type)scb_1_interrupt_IRQn,
  60. #endif
  61. .intrPriority = (7u),
  62. };
  63. #endif
  64. #ifdef BSP_USING_UART2
  65. /* UART2 device driver structure */
  66. cy_stc_sysint_t UART2_SCB_IRQ_cfg =
  67. {
  68. #if defined(SOC_SERIES_IFX_XMC)
  69. .intrSrc = ((UART_NvicMuxN_IRQn << 16) | (cy_en_intr_t)scb_2_interrupt_IRQn),
  70. #else
  71. .intrSrc = (IRQn_Type)scb_2_interrupt_IRQn,
  72. #endif
  73. .intrPriority = (7u),
  74. };
  75. #endif
  76. #ifdef BSP_USING_UART3
  77. /* UART3 device driver structure */
  78. cy_stc_sysint_t UART3_SCB_IRQ_cfg =
  79. {
  80. #if defined(SOC_SERIES_IFX_XMC)
  81. .intrSrc = ((UART_NvicMuxN_IRQn << 16) | (cy_en_intr_t)scb_3_interrupt_IRQn),
  82. #else
  83. .intrSrc = (IRQn_Type)scb_3_interrupt_IRQn,
  84. #endif
  85. .intrPriority = (7u),
  86. };
  87. #endif
  88. #ifdef BSP_USING_UART4
  89. /* UART4 device driver structure */
  90. cy_stc_sysint_t UART4_SCB_IRQ_cfg =
  91. {
  92. #if defined(SOC_SERIES_IFX_XMC)
  93. .intrSrc = ((UART_NvicMuxN_IRQn << 16) |(cy_en_intr_t)scb_4_interrupt_IRQn),
  94. #else
  95. .intrSrc = (IRQn_Type)scb_4_interrupt_IRQn,
  96. #endif
  97. .intrPriority = (7u),
  98. };
  99. #endif
  100. #ifdef BSP_USING_UART5
  101. /* UART5 device driver structure */
  102. cy_stc_sysint_t UART5_SCB_IRQ_cfg =
  103. {
  104. #if defined(SOC_SERIES_IFX_XMC)
  105. .intrSrc = ((UART_NvicMuxN_IRQn << 16) |(cy_en_intr_t)scb_5_interrupt_IRQn),
  106. #else
  107. .intrSrc = (IRQn_Type)scb_5_interrupt_IRQn,
  108. #endif
  109. .intrPriority = (7u),
  110. };
  111. #endif
  112. #ifdef BSP_USING_UART6
  113. /* UART6 device driver structure */
  114. cy_stc_sysint_t UART6_SCB_IRQ_cfg =
  115. {
  116. #if defined(SOC_SERIES_IFX_XMC)
  117. .intrSrc = ((UART_NvicMuxN_IRQn << 16) |(cy_en_intr_t)scb_6_interrupt_IRQn),
  118. #else
  119. .intrSrc = (IRQn_Type)scb_6_interrupt_IRQn,
  120. #endif
  121. .intrPriority = (7u),
  122. };
  123. #endif
  124. #if defined(BSP_USING_UART0)
  125. #ifndef UART0_CONFIG
  126. #define UART0_CONFIG \
  127. { \
  128. .name = "uart0", \
  129. .tx_pin = P0_3, \
  130. .rx_pin = P0_2, \
  131. .usart_x = SCB0, \
  132. .userIsr = uart_isr_callback(uart0), \
  133. .UART_SCB_IRQ_cfg = &UART0_SCB_IRQ_cfg, \
  134. }
  135. void uart0_isr_callback(void);
  136. #endif /* UART0_CONFIG */
  137. #endif /* BSP_USING_UART0 */
  138. #if defined(BSP_USING_UART1)
  139. #ifndef UART1_CONFIG
  140. #define UART1_CONFIG \
  141. { \
  142. .name = "uart1", \
  143. .tx_pin = P10_1, \
  144. .rx_pin = P10_0, \
  145. .usart_x = SCB1, \
  146. .userIsr = uart_isr_callback(uart1), \
  147. .UART_SCB_IRQ_cfg = &UART1_SCB_IRQ_cfg, \
  148. }
  149. void uart1_isr_callback(void);
  150. #endif /* UART1_CONFIG */
  151. #endif /* BSP_USING_UART1 */
  152. #if defined(BSP_USING_UART2)
  153. #ifndef UART2_CONFIG
  154. #if defined(SOC_XMC7100D_F144K4160AA)
  155. #define UART2_CONFIG \
  156. { \
  157. .name = "uart2", \
  158. .tx_pin = P19_1, \
  159. .rx_pin = P19_0, \
  160. .usart_x = SCB2, \
  161. .userIsr = uart_isr_callback(uart2), \
  162. .UART_SCB_IRQ_cfg = &UART2_SCB_IRQ_cfg, \
  163. }
  164. #else
  165. #define UART2_CONFIG \
  166. { \
  167. .name = "uart2", \
  168. .tx_pin = P9_1, \
  169. .rx_pin = P9_0, \
  170. .usart_x = SCB2, \
  171. .userIsr = uart_isr_callback(uart2), \
  172. .UART_SCB_IRQ_cfg = &UART2_SCB_IRQ_cfg, \
  173. }
  174. #endif /* SOC_CY8C6244LQI_S4D92 */
  175. void uart2_isr_callback(void);
  176. #endif /* UART2_CONFIG */
  177. #endif /* BSP_USING_UART2 */
  178. #if defined(BSP_USING_UART3)
  179. #ifndef UART3_CONFIG
  180. #if defined(SOC_XMC7200D_E272K8384AA)
  181. #define UART3_CONFIG \
  182. { \
  183. .name = "uart3", \
  184. .tx_pin = P13_1, \
  185. .rx_pin = P13_0, \
  186. .usart_x = SCB3, \
  187. .userIsr = uart_isr_callback(uart3), \
  188. .UART_SCB_IRQ_cfg = &UART3_SCB_IRQ_cfg, \
  189. }
  190. #else
  191. #define UART3_CONFIG \
  192. { \
  193. .name = "uart3", \
  194. .tx_pin = P6_1, \
  195. .rx_pin = P6_0, \
  196. .usart_x = SCB3, \
  197. .userIsr = uart_isr_callback(uart3), \
  198. .UART_SCB_IRQ_cfg = &UART3_SCB_IRQ_cfg, \
  199. }
  200. #endif
  201. void uart3_isr_callback(void);
  202. #endif /* UART3_CONFIG */
  203. #endif /* BSP_USING_UART3 */
  204. #if defined(BSP_USING_UART4)
  205. #ifndef UART4_CONFIG
  206. #if defined(SOC_XMC7100D_F144K4160AA)
  207. #define UART4_CONFIG \
  208. { \
  209. .name = "uart4", \
  210. .tx_pin = P10_1, \
  211. .rx_pin = P10_0, \
  212. .usart_x = SCB4, \
  213. .userIsr = uart_isr_callback(uart4), \
  214. .UART_SCB_IRQ_cfg = &UART4_SCB_IRQ_cfg, \
  215. }
  216. #else
  217. #define UART4_CONFIG \
  218. { \
  219. .name = "uart4", \
  220. .tx_pin = P7_1, \
  221. .rx_pin = P7_0, \
  222. .usart_x = SCB4, \
  223. .userIsr = uart_isr_callback(uart4), \
  224. .UART_SCB_IRQ_cfg = &UART4_SCB_IRQ_cfg, \
  225. }
  226. #endif
  227. void uart4_isr_callback(void);
  228. #endif /* UART4_CONFIG */
  229. #endif /* BSP_USING_UART4 */
  230. #if defined(BSP_USING_UART5)
  231. #ifndef UART5_CONFIG
  232. #define UART5_CONFIG \
  233. { \
  234. .name = "uart5", \
  235. .tx_pin = P5_1, \
  236. .rx_pin = P5_0, \
  237. .usart_x = SCB5, \
  238. .userIsr = uart_isr_callback(uart5), \
  239. .UART_SCB_IRQ_cfg = &UART5_SCB_IRQ_cfg, \
  240. }
  241. void uart5_isr_callback(void);
  242. #endif /* UART5_CONFIG */
  243. #endif /* BSP_USING_UART5 */
  244. #if defined(BSP_USING_UART6)
  245. #ifndef UART6_CONFIG
  246. #define UART6_CONFIG \
  247. { \
  248. .name = "uart6", \
  249. .tx_pin = P6_5, \
  250. .rx_pin = P6_4, \
  251. .usart_x = SCB6, \
  252. .userIsr = uart_isr_callback(uart6), \
  253. .UART_SCB_IRQ_cfg = &UART6_SCB_IRQ_cfg, \
  254. }
  255. void uart6_isr_callback(void);
  256. #endif /* UART6_CONFIG */
  257. #endif /* BSP_USING_UART6 */
  258. #ifdef __cplusplus
  259. }
  260. #endif
  261. #endif