uart_config.h 7.8 KB

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