2 * -------------------------------------------
\r
3 * CC3220 SDK - v0.10.00.00
\r
4 * -------------------------------------------
\r
6 * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
\r
8 * Redistribution and use in source and binary forms, with or without
\r
9 * modification, are permitted provided that the following conditions
\r
12 * Redistributions of source code must retain the above copyright
\r
13 * notice, this list of conditions and the following disclaimer.
\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
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
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
38 #ifndef __HW_UDMA_H__
\r
39 #define __HW_UDMA_H__
\r
41 //*****************************************************************************
\r
43 // The following are defines for the UDMA register offsets.
\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
73 //******************************************************************************
\r
75 // The following are defines for the bit fields in the UDMA_O_STAT register.
\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
85 // UDMA_STAT_STATE_RD_CTRL : Reading
\r
86 // channel controller data
\r
88 // UDMA_STAT_STATE_RD_DSTENDP :
\r
89 // Reading destination end pointer
\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
96 // UDMA_STAT_STATE_STALL : Stalled
\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
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
111 // The following are defines for the bit fields in the UDMA_O_CFG register.
\r
113 //******************************************************************************
\r
114 #define UDMA_CFG_MASTEN 0x00000001 // Controller Master Enable
\r
115 //******************************************************************************
\r
117 // The following are defines for the bit fields in the UDMA_O_CTLBASE register.
\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
124 // The following are defines for the bit fields in the UDMA_O_ALTBASE register.
\r
126 //******************************************************************************
\r
127 #define UDMA_ALTBASE_ADDR_M 0xFFFFFFFF // Alternate Channel Address
\r
129 #define UDMA_ALTBASE_ADDR_S 0
\r
130 //******************************************************************************
\r
132 // The following are defines for the bit fields in the UDMA_O_WAITSTAT register.
\r
134 //******************************************************************************
\r
135 #define UDMA_WAITSTAT_WAITREQ_M \
\r
136 0xFFFFFFFF // Channel [n] Wait Status
\r
138 #define UDMA_WAITSTAT_WAITREQ_S 0
\r
139 //******************************************************************************
\r
141 // The following are defines for the bit fields in the UDMA_O_SWREQ register.
\r
143 //******************************************************************************
\r
144 #define UDMA_SWREQ_M 0xFFFFFFFF // Channel [n] Software Request
\r
145 #define UDMA_SWREQ_S 0
\r
146 //******************************************************************************
\r
148 // The following are defines for the bit fields in the
\r
149 // UDMA_O_USEBURSTSET register.
\r
151 //******************************************************************************
\r
152 #define UDMA_USEBURSTSET_SET_M \
\r
153 0xFFFFFFFF // Channel [n] Useburst Set
\r
155 #define UDMA_USEBURSTSET_SET_S 0
\r
156 //******************************************************************************
\r
158 // The following are defines for the bit fields in the
\r
159 // UDMA_O_USEBURSTCLR register.
\r
161 //******************************************************************************
\r
162 #define UDMA_USEBURSTCLR_CLR_M \
\r
163 0xFFFFFFFF // Channel [n] Useburst Clear
\r
165 #define UDMA_USEBURSTCLR_CLR_S 0
\r
166 //******************************************************************************
\r
168 // The following are defines for the bit fields in the UDMA_O_REQMASKSET register.
\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
175 // The following are defines for the bit fields in the UDMA_O_REQMASKCLR register.
\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
182 // The following are defines for the bit fields in the UDMA_O_ENASET register.
\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
189 // The following are defines for the bit fields in the UDMA_O_ENACLR register.
\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
196 // The following are defines for the bit fields in the UDMA_O_ALTSET register.
\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
203 // The following are defines for the bit fields in the UDMA_O_ALTCLR register.
\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
210 // The following are defines for the bit fields in the UDMA_O_PRIOSET register.
\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
217 // The following are defines for the bit fields in the UDMA_O_PRIOCLR register.
\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
224 // The following are defines for the bit fields in the UDMA_O_ERRCLR register.
\r
226 //******************************************************************************
\r
227 #define UDMA_ERRCLR_ERRCLR 0x00000001 // uDMA Bus Error Status
\r
228 //******************************************************************************
\r
230 // The following are defines for the bit fields in the UDMA_O_CHASGN register.
\r
232 //******************************************************************************
\r
233 #define UDMA_CHASGN_M 0xFFFFFFFF // Channel [n] Assignment Select
\r
234 #define UDMA_CHASGN_S 0
\r
235 //******************************************************************************
\r
237 // The following are defines for the bit fields in the UDMA_O_CHIS register.
\r
239 //******************************************************************************
\r
240 #define UDMA_CHIS_M 0xFFFFFFFF // Channel [n] Interrupt Status
\r
241 #define UDMA_CHIS_S 0
\r
242 //******************************************************************************
\r
244 // The following are defines for the bit fields in the UDMA_O_CHMAP0 register.
\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
265 // The following are defines for the bit fields in the UDMA_O_CHMAP1 register.
\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
286 // The following are defines for the bit fields in the UDMA_O_CHMAP2 register.
\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
307 // The following are defines for the bit fields in the UDMA_O_CHMAP3 register.
\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
328 // The following are defines for the bit fields in the UDMA_O_PV register.
\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
338 #endif // __HW_UDMA_H__
\r