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