blob: b21f24f8812be8a0994f88212e90ad422ca225c7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
|
/*
* Copyright (c) 2006-2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2019-01-02 zylx first version
* 2019-01-08 SummerGift clean up the code
* 2020-05-02 whj4674672 support stm32h7 dma1 and dma2
*/
#ifndef __DMA_CONFIG_H__
#define __DMA_CONFIG_H__
#include <rtthread.h>
#ifdef __cplusplus
extern "C" {
#endif
/* N6 provides one GPDMA1 controller with 16 independent channels. Keep the
* legacy endpoint table below source-compatible while assigning each legacy
* stream a unique GPDMA channel. */
#define DMA1_Stream0 GPDMA1_Channel0
#define DMA1_Stream1 GPDMA1_Channel1
#define DMA1_Stream2 GPDMA1_Channel2
#define DMA1_Stream3 GPDMA1_Channel3
#define DMA1_Stream4 GPDMA1_Channel4
#define DMA1_Stream5 GPDMA1_Channel5
#define DMA1_Stream6 GPDMA1_Channel6
#define DMA1_Stream7 GPDMA1_Channel7
#define DMA2_Stream0 GPDMA1_Channel8
#define DMA2_Stream1 GPDMA1_Channel9
#define DMA2_Stream2 GPDMA1_Channel10
#define DMA2_Stream3 GPDMA1_Channel11
#define DMA2_Stream4 GPDMA1_Channel12
#define DMA2_Stream5 GPDMA1_Channel13
#define DMA2_Stream6 GPDMA1_Channel14
#define DMA2_Stream7 GPDMA1_Channel15
#define DMA1_Stream0_IRQn GPDMA1_Channel0_IRQn
#define DMA1_Stream1_IRQn GPDMA1_Channel1_IRQn
#define DMA1_Stream2_IRQn GPDMA1_Channel2_IRQn
#define DMA1_Stream3_IRQn GPDMA1_Channel3_IRQn
#define DMA1_Stream4_IRQn GPDMA1_Channel4_IRQn
#define DMA1_Stream5_IRQn GPDMA1_Channel5_IRQn
#define DMA1_Stream6_IRQn GPDMA1_Channel6_IRQn
#define DMA1_Stream7_IRQn GPDMA1_Channel7_IRQn
#define DMA2_Stream0_IRQn GPDMA1_Channel8_IRQn
#define DMA2_Stream1_IRQn GPDMA1_Channel9_IRQn
#define DMA2_Stream2_IRQn GPDMA1_Channel10_IRQn
#define DMA2_Stream3_IRQn GPDMA1_Channel11_IRQn
#define DMA2_Stream4_IRQn GPDMA1_Channel12_IRQn
#define DMA2_Stream5_IRQn GPDMA1_Channel13_IRQn
#define DMA2_Stream6_IRQn GPDMA1_Channel14_IRQn
#define DMA2_Stream7_IRQn GPDMA1_Channel15_IRQn
#define DMA1_Stream0_IRQHandler GPDMA1_Channel0_IRQHandler
#define DMA1_Stream1_IRQHandler GPDMA1_Channel1_IRQHandler
#define DMA1_Stream2_IRQHandler GPDMA1_Channel2_IRQHandler
#define DMA1_Stream3_IRQHandler GPDMA1_Channel3_IRQHandler
#define DMA1_Stream4_IRQHandler GPDMA1_Channel4_IRQHandler
#define DMA1_Stream5_IRQHandler GPDMA1_Channel5_IRQHandler
#define DMA1_Stream6_IRQHandler GPDMA1_Channel6_IRQHandler
#define DMA1_Stream7_IRQHandler GPDMA1_Channel7_IRQHandler
#define DMA2_Stream0_IRQHandler GPDMA1_Channel8_IRQHandler
#define DMA2_Stream1_IRQHandler GPDMA1_Channel9_IRQHandler
#define DMA2_Stream2_IRQHandler GPDMA1_Channel10_IRQHandler
#define DMA2_Stream3_IRQHandler GPDMA1_Channel11_IRQHandler
#define DMA2_Stream4_IRQHandler GPDMA1_Channel12_IRQHandler
#define DMA2_Stream5_IRQHandler GPDMA1_Channel13_IRQHandler
#define DMA2_Stream6_IRQHandler GPDMA1_Channel14_IRQHandler
#define DMA2_Stream7_IRQHandler GPDMA1_Channel15_IRQHandler
#define RCC_AHB1ENR_DMA1EN RCC_AHB1ENR_GPDMA1EN
#define RCC_AHB1ENR_DMA2EN RCC_AHB1ENR_GPDMA1EN
#define SPI1_RX_DMA_REQUEST GPDMA1_REQUEST_SPI1_RX
#define SPI1_TX_DMA_REQUEST GPDMA1_REQUEST_SPI1_TX
#define SPI2_RX_DMA_REQUEST GPDMA1_REQUEST_SPI2_RX
#define SPI2_TX_DMA_REQUEST GPDMA1_REQUEST_SPI2_TX
#define SPI3_RX_DMA_REQUEST GPDMA1_REQUEST_SPI3_RX
#define SPI3_TX_DMA_REQUEST GPDMA1_REQUEST_SPI3_TX
#define SPI4_RX_DMA_REQUEST GPDMA1_REQUEST_SPI4_RX
#define SPI4_TX_DMA_REQUEST GPDMA1_REQUEST_SPI4_TX
#define SPI5_RX_DMA_REQUEST GPDMA1_REQUEST_SPI5_RX
#define SPI5_TX_DMA_REQUEST GPDMA1_REQUEST_SPI5_TX
#define SPI6_RX_DMA_REQUEST GPDMA1_REQUEST_SPI6_RX
#define SPI6_TX_DMA_REQUEST GPDMA1_REQUEST_SPI6_TX
#define DMA_REQUEST_USART2_RX GPDMA1_REQUEST_USART2_RX
#define DMA_REQUEST_USART2_TX GPDMA1_REQUEST_USART2_TX
/* DMA1 stream0 */
#if defined(BSP_UART2_RX_USING_DMA) && !defined(UART2_RX_DMA_INSTANCE)
#define UART2_DMA_RX_IRQHandler DMA1_Stream0_IRQHandler
#define UART2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART2_RX_DMA_INSTANCE DMA1_Stream0
#define UART2_RX_DMA_REQUEST DMA_REQUEST_USART2_RX
#define UART2_RX_DMA_IRQ DMA1_Stream0_IRQn
#endif
/* DMA1 stream1 */
#if defined(BSP_UART2_TX_USING_DMA) && !defined(UART2_TX_DMA_INSTANCE)
#define UART2_DMA_TX_IRQHandler DMA1_Stream1_IRQHandler
#define UART2_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define UART2_TX_DMA_INSTANCE DMA1_Stream1
#define UART2_TX_DMA_REQUEST DMA_REQUEST_USART2_TX
#define UART2_TX_DMA_IRQ DMA1_Stream1_IRQn
#endif
/* DMA1 stream2 */
#if defined(BSP_SPI3_RX_USING_DMA) && !defined(SPI3_RX_DMA_INSTANCE)
#define SPI3_DMA_RX_IRQHandler DMA1_Stream2_IRQHandler
#define SPI3_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_RX_DMA_INSTANCE DMA1_Stream2
#define SPI3_RX_DMA_IRQ DMA1_Stream2_IRQn
#endif
/* DMA1 stream3 */
#if defined(BSP_SPI2_RX_USING_DMA) && !defined(SPI2_RX_DMA_INSTANCE)
#define SPI2_DMA_RX_IRQHandler DMA1_Stream3_IRQHandler
#define SPI2_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI2_RX_DMA_INSTANCE DMA1_Stream3
#define SPI2_RX_DMA_IRQ DMA1_Stream3_IRQn
#endif
/* DMA1 stream4 */
#if defined(BSP_SPI2_TX_USING_DMA) && !defined(SPI2_TX_DMA_INSTANCE)
#define SPI2_DMA_TX_IRQHandler DMA1_Stream4_IRQHandler
#define SPI2_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI2_TX_DMA_INSTANCE DMA1_Stream4
#define SPI2_TX_DMA_IRQ DMA1_Stream4_IRQn
#endif
/* DMA1 stream5 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA1_Stream5_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_TX_DMA_INSTANCE DMA1_Stream5
#define SPI3_TX_DMA_IRQ DMA1_Stream5_IRQn
#endif
/* DMA1 stream6 */
/* DMA1 stream7 */
#if defined(BSP_SPI3_TX_USING_DMA) && !defined(SPI3_TX_DMA_INSTANCE)
#define SPI3_DMA_TX_IRQHandler DMA1_Stream7_IRQHandler
#define SPI3_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI3_TX_DMA_INSTANCE DMA1_Stream7
#define SPI3_TX_DMA_IRQ DMA1_Stream7_IRQn
#endif
/* DMA1 stream6/7 are available for SPI6 when SPI3 TX uses stream5. */
#if defined(BSP_SPI6_RX_USING_DMA) && !defined(SPI6_RX_DMA_INSTANCE)
#define SPI6_DMA_RX_IRQHandler DMA1_Stream6_IRQHandler
#define SPI6_RX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI6_RX_DMA_INSTANCE DMA1_Stream6
#define SPI6_RX_DMA_IRQ DMA1_Stream6_IRQn
#endif
#if defined(BSP_SPI6_TX_USING_DMA) && !defined(SPI6_TX_DMA_INSTANCE)
#define SPI6_DMA_TX_IRQHandler DMA1_Stream7_IRQHandler
#define SPI6_TX_DMA_RCC RCC_AHB1ENR_DMA1EN
#define SPI6_TX_DMA_INSTANCE DMA1_Stream7
#define SPI6_TX_DMA_IRQ DMA1_Stream7_IRQn
#endif
/* DMA2 stream0 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Stream0_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Stream0
#define SPI1_RX_DMA_IRQ DMA2_Stream0_IRQn
#endif
/* DMA2 stream1 */
#if defined(BSP_SPI4_TX_USING_DMA) && !defined(SPI4_TX_DMA_INSTANCE)
#define SPI4_DMA_TX_IRQHandler DMA2_Stream1_IRQHandler
#define SPI4_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI4_TX_DMA_INSTANCE DMA2_Stream1
#define SPI4_TX_DMA_IRQ DMA2_Stream1_IRQn
#endif
/* DMA2 stream2 */
#if defined(BSP_SPI1_RX_USING_DMA) && !defined(SPI1_RX_DMA_INSTANCE)
#define SPI1_DMA_RX_IRQHandler DMA2_Stream2_IRQHandler
#define SPI1_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_RX_DMA_INSTANCE DMA2_Stream2
#define SPI1_RX_DMA_IRQ DMA2_Stream2_IRQn
#endif
/* DMA2 stream3 */
#if defined(BSP_SPI5_RX_USING_DMA) && !defined(SPI5_RX_DMA_INSTANCE)
#define SPI5_DMA_RX_IRQHandler DMA2_Stream3_IRQHandler
#define SPI5_RX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_RX_DMA_INSTANCE DMA2_Stream3
#define SPI5_RX_DMA_IRQ DMA2_Stream3_IRQn
#endif
/* DMA2 stream4 */
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
#define SPI5_DMA_TX_IRQHandler DMA2_Stream4_IRQHandler
#define SPI5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_TX_DMA_INSTANCE DMA2_Stream4
#define SPI5_TX_DMA_IRQ DMA2_Stream4_IRQn
#endif
/* DMA2 stream5 */
#if defined(BSP_SPI1_TX_USING_DMA) && !defined(SPI1_TX_DMA_INSTANCE)
#define SPI1_DMA_TX_IRQHandler DMA2_Stream5_IRQHandler
#define SPI1_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI1_TX_DMA_INSTANCE DMA2_Stream5
#define SPI1_TX_DMA_IRQ DMA2_Stream5_IRQn
#endif
/* DMA2 stream6 */
#if defined(BSP_SPI5_TX_USING_DMA) && !defined(SPI5_TX_DMA_INSTANCE)
#define SPI5_DMA_TX_IRQHandler DMA2_Stream6_IRQHandler
#define SPI5_TX_DMA_RCC RCC_AHB1ENR_DMA2EN
#define SPI5_TX_DMA_INSTANCE DMA2_Stream6
#define SPI5_TX_DMA_IRQ DMA2_Stream6_IRQn
#endif
/* DMA2 stream7 */
#if defined(BSP_QSPI_USING_DMA) && !defined(QSPI_DMA_INSTANCE)
#define QSPI_DMA_IRQHandler DMA2_Stream7_IRQHandler
#define QSPI_DMA_RCC RCC_AHB1ENR_DMA2EN
#define QSPI_DMA_INSTANCE DMA2_Stream7
#define QSPI_DMA_IRQ DMA2_Stream7_IRQn
#endif
#ifdef __cplusplus
}
#endif
#endif /* __DMA_CONFIG_H__ */
|