dma_config.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. /*
  2. * Copyright (c) 2006-2021, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2019-01-05 zylx first version
  9. * 2019-01-08 SummerGift clean up the code
  10. * 2019-12-01 armink add DMAMUX support
  11. */
  12. #ifndef __DMA_CONFIG_H__
  13. #define __DMA_CONFIG_H__
  14. #include <rtthread.h>
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. /* DMA1 channel1 */
  19. /* DMA1 channel2 */
  20. #if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
  21. #define SPI1_DMA_RX_IRQHandler DMA1_Channel2_IRQHandler
  22. #define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
  23. #define SPI1_RX_DMA_INSTANCE DMA1_Channel2
  24. #if defined(DMAMUX1) /* for L4+ */
  25. #define SPI1_RX_DMA_REQUEST DMA_REQUEST_SPI1_RX
  26. #else /* for L4 */
  27. #define SPI1_RX_DMA_REQUEST DMA_REQUEST_1
  28. #endif /* DMAMUX1 */
  29. #define SPI1_RX_DMA_IRQ DMA1_Channel2_IRQn
  30. #endif
  31. /* DMA1 channel3 */
  32. #if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
  33. #define SPI1_DMA_TX_IRQHandler DMA1_Channel3_IRQHandler
  34. #define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
  35. #define SPI1_TX_DMA_INSTANCE DMA1_Channel3
  36. #if defined(DMAMUX1) /* for L4+ */
  37. #define SPI1_TX_DMA_REQUEST DMA_REQUEST_SPI1_TX
  38. #else /* for L4 */
  39. #define SPI1_TX_DMA_REQUEST DMA_REQUEST_1
  40. #endif /* DMAMUX1 */
  41. #define SPI1_TX_DMA_IRQ DMA1_Channel3_IRQn
  42. #elif defined(BSP_UART3_RX_USING_DMA) && !defined(UART3_RX_DMA_INSTANCE)
  43. #define UART3_DMA_RX_IRQHandler DMA1_Channel3_IRQHandler
  44. #define UART3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
  45. #define UART3_RX_DMA_INSTANCE DMA1_Channel3
  46. #if defined(DMAMUX1) /* for L4+ */
  47. #define UART3_RX_DMA_REQUEST DMA_REQUEST_USART3_RX
  48. #else /* for L4 */
  49. #define UART3_RX_DMA_REQUEST DMA_REQUEST_2
  50. #endif /* DMAMUX1 */
  51. #define UART3_RX_DMA_IRQ DMA1_Channel3_IRQn
  52. #endif
  53. /* DMA1 channel4 */
  54. #if defined(BSP_UART1_TX_USING_DMA) && !defined(UART1_TX_DMA_INSTANCE)
  55. #define UART1_DMA_TX_IRQHandler DMA1_Channel4_IRQHandler
  56. #define UART1_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
  57. #define UART1_TX_DMA_INSTANCE DMA1_Channel4
  58. #if defined(DMAMUX1) /* for L4+ */
  59. #define UART1_TX_DMA_REQUEST DMA_REQUEST_USART1_TX
  60. #else /* for L4 */
  61. #define UART1_TX_DMA_REQUEST DMA_REQUEST_2
  62. #endif /* DMAMUX1 */
  63. #define UART1_TX_DMA_IRQ DMA1_Channel4_IRQn
  64. #elif defined(BSP_SPI2_RX_USING_DMA) && !defined(SPI2_RX_DMA_INSTANCE)
  65. #define SPI2_DMA_RX_IRQHandler DMA1_Channel4_IRQHandler
  66. #define SPI2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
  67. #define SPI2_RX_DMA_INSTANCE DMA1_Channel4
  68. #if defined(DMAMUX1) /* for L4+ */
  69. #define SPI2_RX_DMA_REQUEST DMA_REQUEST_SPI2_RX
  70. #else /* for L4 */
  71. #define SPI2_RX_DMA_REQUEST DMA_REQUEST_1
  72. #endif /* DMAMUX1 */
  73. #define SPI2_RX_DMA_IRQ DMA1_Channel4_IRQn
  74. #endif
  75. /* DMA1 channel5 */
  76. #if defined(BSP_UART1_RX_USING_DMA) && !defined(UART1_RX_DMA_INSTANCE)
  77. #define UART1_DMA_RX_IRQHandler DMA1_Channel5_IRQHandler
  78. #define UART1_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
  79. #define UART1_RX_DMA_INSTANCE DMA1_Channel5
  80. #if defined(DMAMUX1) /* for L4+ */
  81. #define UART1_RX_DMA_REQUEST DMA_REQUEST_USART1_RX
  82. #else /* for L4 */
  83. #define UART1_RX_DMA_REQUEST DMA_REQUEST_2
  84. #endif /* DMAMUX1 */
  85. #define UART1_RX_DMA_IRQ DMA1_Channel5_IRQn
  86. #elif defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
  87. #define QSPI_DMA_IRQHandler DMA1_Channel5_IRQHandler
  88. #define QSPI_DMA_RCC RCC_AHB1ENR_DMA1EN
  89. #define QSPI_DMA_INSTANCE DMA1_Channel5
  90. #if defined(DMAMUX1) /* for L4+ */
  91. #define QSPI_DMA_REQUEST DMA_REQUEST_OCTOSPI1
  92. #else /* for L4 */
  93. #define QSPI_DMA_REQUEST DMA_REQUEST_5
  94. #endif /* DMAMUX1 */
  95. #define QSPI_DMA_IRQ DMA1_Channel5_IRQn
  96. #elif defined(BSP_SPI2_TX_USING_DMA) && !defined(SPI2_TX_DMA_INSTANCE)
  97. #define SPI2_DMA_TX_IRQHandler DMA1_Channel5_IRQHandler
  98. #define SPI2_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
  99. #define SPI2_TX_DMA_INSTANCE DMA1_Channel5
  100. #if defined(DMAMUX1) /* for L4+ */
  101. #define SPI2_TX_DMA_REQUEST DMA_REQUEST_SPI2_TX
  102. #else /* for L4 */
  103. #define SPI2_TX_DMA_REQUEST DMA_REQUEST_1
  104. #endif /* DMAMUX1 */
  105. #define SPI2_TX_DMA_IRQ DMA1_Channel5_IRQn
  106. #endif
  107. /* DMA1 channel6 */
  108. #if defined(BSP_UART2_RX_USING_DMA) && !defined(UART2_RX_DMA_INSTANCE)
  109. #define UART2_DMA_RX_IRQHandler DMA1_Channel6_IRQHandler
  110. #define UART2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
  111. #define UART2_RX_DMA_INSTANCE DMA1_Channel6
  112. #if defined(DMAMUX1) /* for L4+ */
  113. #define UART2_RX_DMA_REQUEST DMA_REQUEST_USART2_RX
  114. #else /* for L4 */
  115. #define UART2_RX_DMA_REQUEST DMA_REQUEST_2
  116. #endif /* DMAMUX1 */
  117. #define UART2_RX_DMA_IRQ DMA1_Channel6_IRQn
  118. #endif
  119. /* DMA1 channel7 */
  120. #if defined(BSP_UART2_TX_USING_DMA) && !defined(UART2_TX_DMA_INSTANCE)
  121. #define UART2_DMA_TX_IRQHandler DMA1_Channel7_IRQHandler
  122. #define UART2_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
  123. #define UART2_TX_DMA_INSTANCE DMA1_Channel7
  124. #if defined(DMAMUX1) /* for L4+ */
  125. #define UART2_TX_DMA_REQUEST DMA_REQUEST_USART2_TX
  126. #else /* for L4 */
  127. #define UART2_TX_DMA_REQUEST DMA_REQUEST_2
  128. #endif /* DMAMUX1 */
  129. #define UART2_TX_DMA_IRQ DMA1_Channel7_IRQn
  130. #endif
  131. /* DMA2 channel1 */
  132. #if defined(BSP_UART5_TX_USING_DMA) && !defined(UART5_TX_DMA_INSTANCE)
  133. #define UART5_DMA_TX_IRQHandler DMA2_Channel1_IRQHandler
  134. #define UART5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
  135. #define UART5_TX_DMA_INSTANCE DMA2_Channel1
  136. #if defined(DMAMUX1) /* for L4+ */
  137. #define UART5_TX_DMA_REQUEST DMA_REQUEST_UART5_TX
  138. #else /* for L4 */
  139. #define UART5_TX_DMA_REQUEST DMA_REQUEST_2
  140. #endif /* DMAMUX1 */
  141. #define UART5_TX_DMA_IRQ DMA2_Channel1_IRQn
  142. #endif
  143. /* DMA2 channel2 */
  144. #if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
  145. #define SPI3_DMA_TX_IRQHandler DMA2_Channel2_IRQHandler
  146. #define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
  147. #define SPI3_TX_DMA_INSTANCE DMA2_Channel2
  148. #if defined(DMAMUX1) /* for L4+ */
  149. #define SPI3_TX_DMA_REQUEST DMA_REQUEST_SPI3_TX
  150. #else /* for L4 */
  151. #define SPI3_TX_DMA_REQUEST DMA_REQUEST_3
  152. #endif /* DMAMUX1 */
  153. #define SPI3_TX_DMA_IRQ DMA2_Channel2_IRQn
  154. #elif defined(BSP_UART5_RX_USING_DMA) && !defined(UART5_RX_DMA_INSTANCE)
  155. #define UART5_DMA_RX_IRQHandler DMA2_Channel2_IRQHandler
  156. #define UART5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
  157. #define UART5_RX_DMA_INSTANCE DMA2_Channel2
  158. #if defined(DMAMUX1) /* for L4+ */
  159. #define UART5_RX_DMA_REQUEST DMA_REQUEST_UART5_RX
  160. #else /* for L4 */
  161. #define UART5_RX_DMA_REQUEST DMA_REQUEST_2
  162. #endif /* DMAMUX1 */
  163. #define UART5_RX_DMA_IRQ DMA2_Channel2_IRQn
  164. #endif
  165. /* DMA2 channel3 */
  166. #if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
  167. #define SPI1_DMA_RX_IRQHandler DMA2_Channel3_IRQHandler
  168. #define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
  169. #define SPI1_RX_DMA_INSTANCE DMA2_Channel3
  170. #if defined(DMAMUX1) /* for L4+ */
  171. #define SPI1_RX_DMA_REQUEST DMA_REQUEST_SPI1_RX
  172. #else /* for L4 */
  173. #define SPI1_RX_DMA_REQUEST DMA_REQUEST_4
  174. #endif /* DMAMUX1 */
  175. #define SPI1_RX_DMA_IRQ DMA2_Channel3_IRQn
  176. #endif
  177. /* DMA2 channel4 */
  178. #if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
  179. #define SPI1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
  180. #define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
  181. #define SPI1_TX_DMA_INSTANCE DMA2_Channel4
  182. #if defined(DMAMUX1) /* for L4+ */
  183. #define SPI1_TX_DMA_REQUEST DMA_REQUEST_SPI1_TX
  184. #else /* for L4 */
  185. #define SPI1_TX_DMA_REQUEST DMA_REQUEST_4
  186. #endif /* DMAMUX1 */
  187. #define SPI1_TX_DMA_IRQ DMA2_Channel4_IRQn
  188. #endif
  189. /* DMA2 channel5 */
  190. /* DMA2 channel6 */
  191. #if defined(BSP_UART1_TX_USING_DMA) && !defined(UART1_TX_DMA_INSTANCE)
  192. #define UART1_DMA_TX_IRQHandler DMA2_Channel6_IRQHandler
  193. #define UART1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
  194. #define UART1_TX_DMA_INSTANCE DMA2_Channel6
  195. #if defined(DMAMUX1) /* for L4+ */
  196. #define UART1_TX_DMA_REQUEST DMA_REQUEST_USART1_TX
  197. #else /* for L4 */
  198. #define UART1_TX_DMA_REQUEST DMA_REQUEST_2
  199. #endif /* DMAMUX1 */
  200. #define UART1_TX_DMA_IRQ DMA2_Channel6_IRQn
  201. #endif
  202. /* DMA2 channel7 */
  203. #if defined(BSP_UART1_RX_USING_DMA) && !defined(UART1_RX_DMA_INSTANCE)
  204. #define UART1_DMA_RX_IRQHandler DMA2_Channel7_IRQHandler
  205. #define UART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
  206. #define UART1_RX_DMA_INSTANCE DMA2_Channel7
  207. #if defined(DMAMUX1) /* for L4+ */
  208. #define UART1_RX_DMA_REQUEST DMA_REQUEST_USART1_RX
  209. #else /* for L4 */
  210. #define UART1_RX_DMA_REQUEST DMA_REQUEST_2
  211. #endif /* DMAMUX1 */
  212. #define UART1_RX_DMA_IRQ DMA2_Channel7_IRQn
  213. #elif defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
  214. #define QSPI_DMA_IRQHandler DMA2_Channel7_IRQHandler
  215. #define QSPI_DMA_RCC RCC_AHB1ENR_DMA2EN
  216. #define QSPI_DMA_INSTANCE DMA2_Channel7
  217. #if defined(DMAMUX1) /* for L4+ */
  218. #define QSPI_DMA_REQUEST DMA_REQUEST_OCTOSPI1
  219. #else /* for L4 */
  220. #define QSPI_DMA_REQUEST DMA_REQUEST_3
  221. #endif /* DMAMUX1 */
  222. #define QSPI_DMA_IRQ DMA2_Channel7_IRQn
  223. #elif defined(BSP_LPUART1_RX_USING_DMA) && !defined(LPUART1_RX_DMA_INSTANCE)
  224. #define LPUART1_DMA_RX_IRQHandler DMA2_Channel7_IRQHandler
  225. #define LPUART1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
  226. #define LPUART1_RX_DMA_INSTANCE DMA2_Channel7
  227. #if defined(DMAMUX1) /* for L4+ */
  228. #define LPUART1_RX_DMA_REQUEST DMA_REQUEST_LPUART1_RX
  229. #else /* for L4 */
  230. #define LPUART1_RX_DMA_REQUEST DMA_REQUEST_4
  231. #endif /* DMAMUX1 */
  232. #define LPUART1_RX_DMA_IRQ DMA2_Channel7_IRQn
  233. #endif
  234. #ifdef __cplusplus
  235. }
  236. #endif
  237. #endif /* __DMA_CONFIG_H__ */