]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M4_SimpleLink_CC3220SF_CCS/ti/devices/cc32xx/inc/hw_udma.h
Add SimpleLink CC3220SF demo.
[freertos] / FreeRTOS / Demo / CORTEX_M4_SimpleLink_CC3220SF_CCS / ti / devices / cc32xx / inc / hw_udma.h
1 /*\r
2  * -------------------------------------------\r
3  *    CC3220 SDK - v0.10.00.00 \r
4  * -------------------------------------------\r
5  *\r
6  *  Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/ \r
7  *  \r
8  *  Redistribution and use in source and binary forms, with or without \r
9  *  modification, are permitted provided that the following conditions \r
10  *  are met:\r
11  *\r
12  *    Redistributions of source code must retain the above copyright \r
13  *    notice, this list of conditions and the following disclaimer.\r
14  *\r
15  *    Redistributions in binary form must reproduce the above copyright\r
16  *    notice, this list of conditions and the following disclaimer in the \r
17  *    documentation and/or other materials provided with the   \r
18  *    distribution.\r
19  *\r
20  *    Neither the name of Texas Instruments Incorporated nor the names of\r
21  *    its contributors may be used to endorse or promote products derived\r
22  *    from this software without specific prior written permission.\r
23  *\r
24  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
25  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
26  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
27  *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT \r
28  *  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, \r
29  *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT \r
30  *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
31  *  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
32  *  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT \r
33  *  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE \r
34  *  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
35  *  \r
36  */\r
37 \r
38 #ifndef __HW_UDMA_H__\r
39 #define __HW_UDMA_H__\r
40 \r
41 //*****************************************************************************\r
42 //\r
43 // The following are defines for the UDMA register offsets.\r
44 //\r
45 //*****************************************************************************\r
46 #define UDMA_O_STAT             0x00000000\r
47 #define UDMA_O_CFG              0x00000004\r
48 #define UDMA_O_CTLBASE          0x00000008\r
49 #define UDMA_O_ALTBASE          0x0000000C\r
50 #define UDMA_O_WAITSTAT         0x00000010\r
51 #define UDMA_O_SWREQ            0x00000014\r
52 #define UDMA_O_USEBURSTSET      0x00000018\r
53 #define UDMA_O_USEBURSTCLR      0x0000001C\r
54 #define UDMA_O_REQMASKSET       0x00000020\r
55 #define UDMA_O_REQMASKCLR       0x00000024\r
56 #define UDMA_O_ENASET           0x00000028\r
57 #define UDMA_O_ENACLR           0x0000002C\r
58 #define UDMA_O_ALTSET           0x00000030\r
59 #define UDMA_O_ALTCLR           0x00000034\r
60 #define UDMA_O_PRIOSET          0x00000038\r
61 #define UDMA_O_PRIOCLR          0x0000003C\r
62 #define UDMA_O_ERRCLR           0x0000004C\r
63 #define UDMA_O_CHASGN           0x00000500\r
64 #define UDMA_O_CHIS             0x00000504\r
65 #define UDMA_O_CHMAP0           0x00000510\r
66 #define UDMA_O_CHMAP1           0x00000514\r
67 #define UDMA_O_CHMAP2           0x00000518\r
68 #define UDMA_O_CHMAP3           0x0000051C\r
69 #define UDMA_O_PV               0x00000FB0\r
70 \r
71 \r
72 \r
73 //******************************************************************************\r
74 //\r
75 // The following are defines for the bit fields in the UDMA_O_STAT register.\r
76 //\r
77 //******************************************************************************\r
78 #define UDMA_STAT_DMACHANS_M  0x001F0000  // Available uDMA Channels Minus 1\r
79 #define UDMA_STAT_DMACHANS_S  16\r
80 #define UDMA_STAT_STATE_M     0x000000F0  // Control State Machine Status\r
81                                             // 0x00000090 : UDMA_STAT_STATE_DONE\r
82                                             // : Done 0x00000000 :\r
83                                             // UDMA_STAT_STATE_IDLE : Idle\r
84                                             // 0x00000010 :\r
85                                             // UDMA_STAT_STATE_RD_CTRL : Reading\r
86                                             // channel controller data\r
87                                             // 0x00000030 :\r
88                                             // UDMA_STAT_STATE_RD_DSTENDP :\r
89                                             // Reading destination end pointer\r
90                                             // 0x00000040 :\r
91                                             // UDMA_STAT_STATE_RD_SRCDAT :\r
92                                             // Reading source data 0x00000020 :\r
93                                             // UDMA_STAT_STATE_RD_SRCENDP :\r
94                                             // Reading source end pointer\r
95                                             // 0x00000080 :\r
96                                             // UDMA_STAT_STATE_STALL : Stalled\r
97                                             // 0x000000A0 :\r
98                                             // UDMA_STAT_STATE_UNDEF : Undefined\r
99                                             // 0x00000060 : UDMA_STAT_STATE_WAIT\r
100                                             // : Waiting for uDMA request to\r
101                                             // clear 0x00000070 :\r
102                                             // UDMA_STAT_STATE_WR_CTRL : Writing\r
103                                             // channel controller data\r
104                                             // 0x00000050 :\r
105                                             // UDMA_STAT_STATE_WR_DSTDAT :\r
106                                             // Writing destination data\r
107 #define UDMA_STAT_STATE_S     4\r
108 #define UDMA_STAT_MASTEN        0x00000001  // Master Enable Status\r
109 //******************************************************************************\r
110 //\r
111 // The following are defines for the bit fields in the UDMA_O_CFG register.\r
112 //\r
113 //******************************************************************************\r
114 #define UDMA_CFG_MASTEN         0x00000001  // Controller Master Enable\r
115 //******************************************************************************\r
116 //\r
117 // The following are defines for the bit fields in the UDMA_O_CTLBASE register.\r
118 //\r
119 //******************************************************************************\r
120 #define UDMA_CTLBASE_ADDR_M   0xFFFFFC00  // Channel Control Base Address\r
121 #define UDMA_CTLBASE_ADDR_S   10\r
122 //******************************************************************************\r
123 //\r
124 // The following are defines for the bit fields in the UDMA_O_ALTBASE register.\r
125 //\r
126 //******************************************************************************\r
127 #define UDMA_ALTBASE_ADDR_M   0xFFFFFFFF  // Alternate Channel Address\r
128                                             // Pointer\r
129 #define UDMA_ALTBASE_ADDR_S   0\r
130 //******************************************************************************\r
131 //\r
132 // The following are defines for the bit fields in the UDMA_O_WAITSTAT register.\r
133 //\r
134 //******************************************************************************\r
135 #define UDMA_WAITSTAT_WAITREQ_M \\r
136                                 0xFFFFFFFF  // Channel [n] Wait Status\r
137 \r
138 #define UDMA_WAITSTAT_WAITREQ_S 0\r
139 //******************************************************************************\r
140 //\r
141 // The following are defines for the bit fields in the UDMA_O_SWREQ register.\r
142 //\r
143 //******************************************************************************\r
144 #define UDMA_SWREQ_M          0xFFFFFFFF  // Channel [n] Software Request\r
145 #define UDMA_SWREQ_S          0\r
146 //******************************************************************************\r
147 //\r
148 // The following are defines for the bit fields in the\r
149 // UDMA_O_USEBURSTSET register.\r
150 //\r
151 //******************************************************************************\r
152 #define UDMA_USEBURSTSET_SET_M \\r
153                                 0xFFFFFFFF  // Channel [n] Useburst Set\r
154 \r
155 #define UDMA_USEBURSTSET_SET_S 0\r
156 //******************************************************************************\r
157 //\r
158 // The following are defines for the bit fields in the\r
159 // UDMA_O_USEBURSTCLR register.\r
160 //\r
161 //******************************************************************************\r
162 #define UDMA_USEBURSTCLR_CLR_M \\r
163                                 0xFFFFFFFF  // Channel [n] Useburst Clear\r
164 \r
165 #define UDMA_USEBURSTCLR_CLR_S 0\r
166 //******************************************************************************\r
167 //\r
168 // The following are defines for the bit fields in the UDMA_O_REQMASKSET register.\r
169 //\r
170 //******************************************************************************\r
171 #define UDMA_REQMASKSET_SET_M 0xFFFFFFFF  // Channel [n] Request Mask Set\r
172 #define UDMA_REQMASKSET_SET_S 0\r
173 //******************************************************************************\r
174 //\r
175 // The following are defines for the bit fields in the UDMA_O_REQMASKCLR register.\r
176 //\r
177 //******************************************************************************\r
178 #define UDMA_REQMASKCLR_CLR_M 0xFFFFFFFF  // Channel [n] Request Mask Clear\r
179 #define UDMA_REQMASKCLR_CLR_S 0\r
180 //******************************************************************************\r
181 //\r
182 // The following are defines for the bit fields in the UDMA_O_ENASET register.\r
183 //\r
184 //******************************************************************************\r
185 #define UDMA_ENASET_CHENSET_M 0xFFFFFFFF  // Channel [n] Enable Set\r
186 #define UDMA_ENASET_CHENSET_S 0\r
187 //******************************************************************************\r
188 //\r
189 // The following are defines for the bit fields in the UDMA_O_ENACLR register.\r
190 //\r
191 //******************************************************************************\r
192 #define UDMA_ENACLR_CLR_M     0xFFFFFFFF  // Clear Channel [n] Enable Clear\r
193 #define UDMA_ENACLR_CLR_S     0\r
194 //******************************************************************************\r
195 //\r
196 // The following are defines for the bit fields in the UDMA_O_ALTSET register.\r
197 //\r
198 //******************************************************************************\r
199 #define UDMA_ALTSET_SET_M     0xFFFFFFFF  // Channel [n] Alternate Set\r
200 #define UDMA_ALTSET_SET_S     0\r
201 //******************************************************************************\r
202 //\r
203 // The following are defines for the bit fields in the UDMA_O_ALTCLR register.\r
204 //\r
205 //******************************************************************************\r
206 #define UDMA_ALTCLR_CLR_M     0xFFFFFFFF  // Channel [n] Alternate Clear\r
207 #define UDMA_ALTCLR_CLR_S     0\r
208 //******************************************************************************\r
209 //\r
210 // The following are defines for the bit fields in the UDMA_O_PRIOSET register.\r
211 //\r
212 //******************************************************************************\r
213 #define UDMA_PRIOSET_SET_M    0xFFFFFFFF  // Channel [n] Priority Set\r
214 #define UDMA_PRIOSET_SET_S    0\r
215 //******************************************************************************\r
216 //\r
217 // The following are defines for the bit fields in the UDMA_O_PRIOCLR register.\r
218 //\r
219 //******************************************************************************\r
220 #define UDMA_PRIOCLR_CLR_M    0xFFFFFFFF  // Channel [n] Priority Clear\r
221 #define UDMA_PRIOCLR_CLR_S    0\r
222 //******************************************************************************\r
223 //\r
224 // The following are defines for the bit fields in the UDMA_O_ERRCLR register.\r
225 //\r
226 //******************************************************************************\r
227 #define UDMA_ERRCLR_ERRCLR      0x00000001  // uDMA Bus Error Status\r
228 //******************************************************************************\r
229 //\r
230 // The following are defines for the bit fields in the UDMA_O_CHASGN register.\r
231 //\r
232 //******************************************************************************\r
233 #define UDMA_CHASGN_M         0xFFFFFFFF  // Channel [n] Assignment Select\r
234 #define UDMA_CHASGN_S         0\r
235 //******************************************************************************\r
236 //\r
237 // The following are defines for the bit fields in the UDMA_O_CHIS register.\r
238 //\r
239 //******************************************************************************\r
240 #define UDMA_CHIS_M           0xFFFFFFFF  // Channel [n] Interrupt Status\r
241 #define UDMA_CHIS_S           0\r
242 //******************************************************************************\r
243 //\r
244 // The following are defines for the bit fields in the UDMA_O_CHMAP0 register.\r
245 //\r
246 //******************************************************************************\r
247 #define UDMA_CHMAP0_CH7SEL_M  0xF0000000  // uDMA Channel 7 Source Select\r
248 #define UDMA_CHMAP0_CH7SEL_S  28\r
249 #define UDMA_CHMAP0_CH6SEL_M  0x0F000000  // uDMA Channel 6 Source Select\r
250 #define UDMA_CHMAP0_CH6SEL_S  24\r
251 #define UDMA_CHMAP0_CH5SEL_M  0x00F00000  // uDMA Channel 5 Source Select\r
252 #define UDMA_CHMAP0_CH5SEL_S  20\r
253 #define UDMA_CHMAP0_CH4SEL_M  0x000F0000  // uDMA Channel 4 Source Select\r
254 #define UDMA_CHMAP0_CH4SEL_S  16\r
255 #define UDMA_CHMAP0_CH3SEL_M  0x0000F000  // uDMA Channel 3 Source Select\r
256 #define UDMA_CHMAP0_CH3SEL_S  12\r
257 #define UDMA_CHMAP0_CH2SEL_M  0x00000F00  // uDMA Channel 2 Source Select\r
258 #define UDMA_CHMAP0_CH2SEL_S  8\r
259 #define UDMA_CHMAP0_CH1SEL_M  0x000000F0  // uDMA Channel 1 Source Select\r
260 #define UDMA_CHMAP0_CH1SEL_S  4\r
261 #define UDMA_CHMAP0_CH0SEL_M  0x0000000F  // uDMA Channel 0 Source Select\r
262 #define UDMA_CHMAP0_CH0SEL_S  0\r
263 //******************************************************************************\r
264 //\r
265 // The following are defines for the bit fields in the UDMA_O_CHMAP1 register.\r
266 //\r
267 //******************************************************************************\r
268 #define UDMA_CHMAP1_CH15SEL_M 0xF0000000  // uDMA Channel 15 Source Select\r
269 #define UDMA_CHMAP1_CH15SEL_S 28\r
270 #define UDMA_CHMAP1_CH14SEL_M 0x0F000000  // uDMA Channel 14 Source Select\r
271 #define UDMA_CHMAP1_CH14SEL_S 24\r
272 #define UDMA_CHMAP1_CH13SEL_M 0x00F00000  // uDMA Channel 13 Source Select\r
273 #define UDMA_CHMAP1_CH13SEL_S 20\r
274 #define UDMA_CHMAP1_CH12SEL_M 0x000F0000  // uDMA Channel 12 Source Select\r
275 #define UDMA_CHMAP1_CH12SEL_S 16\r
276 #define UDMA_CHMAP1_CH11SEL_M 0x0000F000  // uDMA Channel 11 Source Select\r
277 #define UDMA_CHMAP1_CH11SEL_S 12\r
278 #define UDMA_CHMAP1_CH10SEL_M 0x00000F00  // uDMA Channel 10 Source Select\r
279 #define UDMA_CHMAP1_CH10SEL_S 8\r
280 #define UDMA_CHMAP1_CH9SEL_M  0x000000F0  // uDMA Channel 9 Source Select\r
281 #define UDMA_CHMAP1_CH9SEL_S  4\r
282 #define UDMA_CHMAP1_CH8SEL_M  0x0000000F  // uDMA Channel 8 Source Select\r
283 #define UDMA_CHMAP1_CH8SEL_S  0\r
284 //******************************************************************************\r
285 //\r
286 // The following are defines for the bit fields in the UDMA_O_CHMAP2 register.\r
287 //\r
288 //******************************************************************************\r
289 #define UDMA_CHMAP2_CH23SEL_M 0xF0000000  // uDMA Channel 23 Source Select\r
290 #define UDMA_CHMAP2_CH23SEL_S 28\r
291 #define UDMA_CHMAP2_CH22SEL_M 0x0F000000  // uDMA Channel 22 Source Select\r
292 #define UDMA_CHMAP2_CH22SEL_S 24\r
293 #define UDMA_CHMAP2_CH21SEL_M 0x00F00000  // uDMA Channel 21 Source Select\r
294 #define UDMA_CHMAP2_CH21SEL_S 20\r
295 #define UDMA_CHMAP2_CH20SEL_M 0x000F0000  // uDMA Channel 20 Source Select\r
296 #define UDMA_CHMAP2_CH20SEL_S 16\r
297 #define UDMA_CHMAP2_CH19SEL_M 0x0000F000  // uDMA Channel 19 Source Select\r
298 #define UDMA_CHMAP2_CH19SEL_S 12\r
299 #define UDMA_CHMAP2_CH18SEL_M 0x00000F00  // uDMA Channel 18 Source Select\r
300 #define UDMA_CHMAP2_CH18SEL_S 8\r
301 #define UDMA_CHMAP2_CH17SEL_M 0x000000F0  // uDMA Channel 17 Source Select\r
302 #define UDMA_CHMAP2_CH17SEL_S 4\r
303 #define UDMA_CHMAP2_CH16SEL_M 0x0000000F  // uDMA Channel 16 Source Select\r
304 #define UDMA_CHMAP2_CH16SEL_S 0\r
305 //******************************************************************************\r
306 //\r
307 // The following are defines for the bit fields in the UDMA_O_CHMAP3 register.\r
308 //\r
309 //******************************************************************************\r
310 #define UDMA_CHMAP3_CH31SEL_M 0xF0000000  // uDMA Channel 31 Source Select\r
311 #define UDMA_CHMAP3_CH31SEL_S 28\r
312 #define UDMA_CHMAP3_CH30SEL_M 0x0F000000  // uDMA Channel 30 Source Select\r
313 #define UDMA_CHMAP3_CH30SEL_S 24\r
314 #define UDMA_CHMAP3_CH29SEL_M 0x00F00000  // uDMA Channel 29 Source Select\r
315 #define UDMA_CHMAP3_CH29SEL_S 20\r
316 #define UDMA_CHMAP3_CH28SEL_M 0x000F0000  // uDMA Channel 28 Source Select\r
317 #define UDMA_CHMAP3_CH28SEL_S 16\r
318 #define UDMA_CHMAP3_CH27SEL_M 0x0000F000  // uDMA Channel 27 Source Select\r
319 #define UDMA_CHMAP3_CH27SEL_S 12\r
320 #define UDMA_CHMAP3_CH26SEL_M 0x00000F00  // uDMA Channel 26 Source Select\r
321 #define UDMA_CHMAP3_CH26SEL_S 8\r
322 #define UDMA_CHMAP3_CH25SEL_M 0x000000F0  // uDMA Channel 25 Source Select\r
323 #define UDMA_CHMAP3_CH25SEL_S 4\r
324 #define UDMA_CHMAP3_CH24SEL_M 0x0000000F  // uDMA Channel 24 Source Select\r
325 #define UDMA_CHMAP3_CH24SEL_S 0\r
326 //******************************************************************************\r
327 //\r
328 // The following are defines for the bit fields in the UDMA_O_PV register.\r
329 //\r
330 //******************************************************************************\r
331 #define UDMA_PV_MAJOR_M       0x0000FF00  // Major Revision\r
332 #define UDMA_PV_MAJOR_S       8\r
333 #define UDMA_PV_MINOR_M       0x000000FF  // Minor Revision\r
334 #define UDMA_PV_MINOR_S       0\r
335 \r
336 \r
337 \r
338 #endif // __HW_UDMA_H__\r