Robobo
component_dmac.h
1 /* ----------------------------------------------------------------------------
2  * SAM Software Package License
3  * ----------------------------------------------------------------------------
4  * Copyright (c) 2012, Atmel Corporation
5  *
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following condition is met:
10  *
11  * - Redistributions of source code must retain the above copyright notice,
12  * this list of conditions and the disclaimer below.
13  *
14  * Atmel's name may not be used to endorse or promote products derived from
15  * this software without specific prior written permission.
16  *
17  * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20  * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  * ----------------------------------------------------------------------------
28  */
29 
30 #ifndef _SAM3XA_DMAC_COMPONENT_
31 #define _SAM3XA_DMAC_COMPONENT_
32 
33 /* ============================================================================= */
35 /* ============================================================================= */
38 
39 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
40 
41 typedef struct {
42  RwReg DMAC_SADDR;
43  RwReg DMAC_DADDR;
44  RwReg DMAC_DSCR;
45  RwReg DMAC_CTRLA;
46  RwReg DMAC_CTRLB;
47  RwReg DMAC_CFG;
48  RoReg Reserved1[4];
49 } DmacCh_num;
51 #define DMACCH_NUM_NUMBER 6
52 typedef struct {
53  RwReg DMAC_GCFG;
54  RwReg DMAC_EN;
55  RwReg DMAC_SREQ;
56  RwReg DMAC_CREQ;
57  RwReg DMAC_LAST;
58  RoReg Reserved1[1];
59  WoReg DMAC_EBCIER;
60  WoReg DMAC_EBCIDR;
61  RoReg DMAC_EBCIMR;
62  RoReg DMAC_EBCISR;
63  WoReg DMAC_CHER;
64  WoReg DMAC_CHDR;
65  RoReg DMAC_CHSR;
66  RoReg Reserved2[2];
67  DmacCh_num DMAC_CH_NUM[DMACCH_NUM_NUMBER];
68  RoReg Reserved3[46];
69  RwReg DMAC_WPMR;
70  RoReg DMAC_WPSR;
71 } Dmac;
72 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
73 /* -------- DMAC_GCFG : (DMAC Offset: 0x000) DMAC Global Configuration Register -------- */
74 #define DMAC_GCFG_ARB_CFG (0x1u << 4)
75 #define DMAC_GCFG_ARB_CFG_FIXED (0x0u << 4)
76 #define DMAC_GCFG_ARB_CFG_ROUND_ROBIN (0x1u << 4)
77 /* -------- DMAC_EN : (DMAC Offset: 0x004) DMAC Enable Register -------- */
78 #define DMAC_EN_ENABLE (0x1u << 0)
79 /* -------- DMAC_SREQ : (DMAC Offset: 0x008) DMAC Software Single Request Register -------- */
80 #define DMAC_SREQ_SSREQ0 (0x1u << 0)
81 #define DMAC_SREQ_DSREQ0 (0x1u << 1)
82 #define DMAC_SREQ_SSREQ1 (0x1u << 2)
83 #define DMAC_SREQ_DSREQ1 (0x1u << 3)
84 #define DMAC_SREQ_SSREQ2 (0x1u << 4)
85 #define DMAC_SREQ_DSREQ2 (0x1u << 5)
86 #define DMAC_SREQ_SSREQ3 (0x1u << 6)
87 #define DMAC_SREQ_DSREQ3 (0x1u << 7)
88 #define DMAC_SREQ_SSREQ4 (0x1u << 8)
89 #define DMAC_SREQ_DSREQ4 (0x1u << 9)
90 #define DMAC_SREQ_SSREQ5 (0x1u << 10)
91 #define DMAC_SREQ_DSREQ5 (0x1u << 11)
92 /* -------- DMAC_CREQ : (DMAC Offset: 0x00C) DMAC Software Chunk Transfer Request Register -------- */
93 #define DMAC_CREQ_SCREQ0 (0x1u << 0)
94 #define DMAC_CREQ_DCREQ0 (0x1u << 1)
95 #define DMAC_CREQ_SCREQ1 (0x1u << 2)
96 #define DMAC_CREQ_DCREQ1 (0x1u << 3)
97 #define DMAC_CREQ_SCREQ2 (0x1u << 4)
98 #define DMAC_CREQ_DCREQ2 (0x1u << 5)
99 #define DMAC_CREQ_SCREQ3 (0x1u << 6)
100 #define DMAC_CREQ_DCREQ3 (0x1u << 7)
101 #define DMAC_CREQ_SCREQ4 (0x1u << 8)
102 #define DMAC_CREQ_DCREQ4 (0x1u << 9)
103 #define DMAC_CREQ_SCREQ5 (0x1u << 10)
104 #define DMAC_CREQ_DCREQ5 (0x1u << 11)
105 /* -------- DMAC_LAST : (DMAC Offset: 0x010) DMAC Software Last Transfer Flag Register -------- */
106 #define DMAC_LAST_SLAST0 (0x1u << 0)
107 #define DMAC_LAST_DLAST0 (0x1u << 1)
108 #define DMAC_LAST_SLAST1 (0x1u << 2)
109 #define DMAC_LAST_DLAST1 (0x1u << 3)
110 #define DMAC_LAST_SLAST2 (0x1u << 4)
111 #define DMAC_LAST_DLAST2 (0x1u << 5)
112 #define DMAC_LAST_SLAST3 (0x1u << 6)
113 #define DMAC_LAST_DLAST3 (0x1u << 7)
114 #define DMAC_LAST_SLAST4 (0x1u << 8)
115 #define DMAC_LAST_DLAST4 (0x1u << 9)
116 #define DMAC_LAST_SLAST5 (0x1u << 10)
117 #define DMAC_LAST_DLAST5 (0x1u << 11)
118 /* -------- DMAC_EBCIER : (DMAC Offset: 0x018) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Enable register. -------- */
119 #define DMAC_EBCIER_BTC0 (0x1u << 0)
120 #define DMAC_EBCIER_BTC1 (0x1u << 1)
121 #define DMAC_EBCIER_BTC2 (0x1u << 2)
122 #define DMAC_EBCIER_BTC3 (0x1u << 3)
123 #define DMAC_EBCIER_BTC4 (0x1u << 4)
124 #define DMAC_EBCIER_BTC5 (0x1u << 5)
125 #define DMAC_EBCIER_CBTC0 (0x1u << 8)
126 #define DMAC_EBCIER_CBTC1 (0x1u << 9)
127 #define DMAC_EBCIER_CBTC2 (0x1u << 10)
128 #define DMAC_EBCIER_CBTC3 (0x1u << 11)
129 #define DMAC_EBCIER_CBTC4 (0x1u << 12)
130 #define DMAC_EBCIER_CBTC5 (0x1u << 13)
131 #define DMAC_EBCIER_ERR0 (0x1u << 16)
132 #define DMAC_EBCIER_ERR1 (0x1u << 17)
133 #define DMAC_EBCIER_ERR2 (0x1u << 18)
134 #define DMAC_EBCIER_ERR3 (0x1u << 19)
135 #define DMAC_EBCIER_ERR4 (0x1u << 20)
136 #define DMAC_EBCIER_ERR5 (0x1u << 21)
137 /* -------- DMAC_EBCIDR : (DMAC Offset: 0x01C) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Completed Interrupt Disable register. -------- */
138 #define DMAC_EBCIDR_BTC0 (0x1u << 0)
139 #define DMAC_EBCIDR_BTC1 (0x1u << 1)
140 #define DMAC_EBCIDR_BTC2 (0x1u << 2)
141 #define DMAC_EBCIDR_BTC3 (0x1u << 3)
142 #define DMAC_EBCIDR_BTC4 (0x1u << 4)
143 #define DMAC_EBCIDR_BTC5 (0x1u << 5)
144 #define DMAC_EBCIDR_CBTC0 (0x1u << 8)
145 #define DMAC_EBCIDR_CBTC1 (0x1u << 9)
146 #define DMAC_EBCIDR_CBTC2 (0x1u << 10)
147 #define DMAC_EBCIDR_CBTC3 (0x1u << 11)
148 #define DMAC_EBCIDR_CBTC4 (0x1u << 12)
149 #define DMAC_EBCIDR_CBTC5 (0x1u << 13)
150 #define DMAC_EBCIDR_ERR0 (0x1u << 16)
151 #define DMAC_EBCIDR_ERR1 (0x1u << 17)
152 #define DMAC_EBCIDR_ERR2 (0x1u << 18)
153 #define DMAC_EBCIDR_ERR3 (0x1u << 19)
154 #define DMAC_EBCIDR_ERR4 (0x1u << 20)
155 #define DMAC_EBCIDR_ERR5 (0x1u << 21)
156 /* -------- DMAC_EBCIMR : (DMAC Offset: 0x020) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Mask Register. -------- */
157 #define DMAC_EBCIMR_BTC0 (0x1u << 0)
158 #define DMAC_EBCIMR_BTC1 (0x1u << 1)
159 #define DMAC_EBCIMR_BTC2 (0x1u << 2)
160 #define DMAC_EBCIMR_BTC3 (0x1u << 3)
161 #define DMAC_EBCIMR_BTC4 (0x1u << 4)
162 #define DMAC_EBCIMR_BTC5 (0x1u << 5)
163 #define DMAC_EBCIMR_CBTC0 (0x1u << 8)
164 #define DMAC_EBCIMR_CBTC1 (0x1u << 9)
165 #define DMAC_EBCIMR_CBTC2 (0x1u << 10)
166 #define DMAC_EBCIMR_CBTC3 (0x1u << 11)
167 #define DMAC_EBCIMR_CBTC4 (0x1u << 12)
168 #define DMAC_EBCIMR_CBTC5 (0x1u << 13)
169 #define DMAC_EBCIMR_ERR0 (0x1u << 16)
170 #define DMAC_EBCIMR_ERR1 (0x1u << 17)
171 #define DMAC_EBCIMR_ERR2 (0x1u << 18)
172 #define DMAC_EBCIMR_ERR3 (0x1u << 19)
173 #define DMAC_EBCIMR_ERR4 (0x1u << 20)
174 #define DMAC_EBCIMR_ERR5 (0x1u << 21)
175 /* -------- DMAC_EBCISR : (DMAC Offset: 0x024) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer completed Status Register. -------- */
176 #define DMAC_EBCISR_BTC0 (0x1u << 0)
177 #define DMAC_EBCISR_BTC1 (0x1u << 1)
178 #define DMAC_EBCISR_BTC2 (0x1u << 2)
179 #define DMAC_EBCISR_BTC3 (0x1u << 3)
180 #define DMAC_EBCISR_BTC4 (0x1u << 4)
181 #define DMAC_EBCISR_BTC5 (0x1u << 5)
182 #define DMAC_EBCISR_CBTC0 (0x1u << 8)
183 #define DMAC_EBCISR_CBTC1 (0x1u << 9)
184 #define DMAC_EBCISR_CBTC2 (0x1u << 10)
185 #define DMAC_EBCISR_CBTC3 (0x1u << 11)
186 #define DMAC_EBCISR_CBTC4 (0x1u << 12)
187 #define DMAC_EBCISR_CBTC5 (0x1u << 13)
188 #define DMAC_EBCISR_ERR0 (0x1u << 16)
189 #define DMAC_EBCISR_ERR1 (0x1u << 17)
190 #define DMAC_EBCISR_ERR2 (0x1u << 18)
191 #define DMAC_EBCISR_ERR3 (0x1u << 19)
192 #define DMAC_EBCISR_ERR4 (0x1u << 20)
193 #define DMAC_EBCISR_ERR5 (0x1u << 21)
194 /* -------- DMAC_CHER : (DMAC Offset: 0x028) DMAC Channel Handler Enable Register -------- */
195 #define DMAC_CHER_ENA0 (0x1u << 0)
196 #define DMAC_CHER_ENA1 (0x1u << 1)
197 #define DMAC_CHER_ENA2 (0x1u << 2)
198 #define DMAC_CHER_ENA3 (0x1u << 3)
199 #define DMAC_CHER_ENA4 (0x1u << 4)
200 #define DMAC_CHER_ENA5 (0x1u << 5)
201 #define DMAC_CHER_SUSP0 (0x1u << 8)
202 #define DMAC_CHER_SUSP1 (0x1u << 9)
203 #define DMAC_CHER_SUSP2 (0x1u << 10)
204 #define DMAC_CHER_SUSP3 (0x1u << 11)
205 #define DMAC_CHER_SUSP4 (0x1u << 12)
206 #define DMAC_CHER_SUSP5 (0x1u << 13)
207 #define DMAC_CHER_KEEP0 (0x1u << 24)
208 #define DMAC_CHER_KEEP1 (0x1u << 25)
209 #define DMAC_CHER_KEEP2 (0x1u << 26)
210 #define DMAC_CHER_KEEP3 (0x1u << 27)
211 #define DMAC_CHER_KEEP4 (0x1u << 28)
212 #define DMAC_CHER_KEEP5 (0x1u << 29)
213 /* -------- DMAC_CHDR : (DMAC Offset: 0x02C) DMAC Channel Handler Disable Register -------- */
214 #define DMAC_CHDR_DIS0 (0x1u << 0)
215 #define DMAC_CHDR_DIS1 (0x1u << 1)
216 #define DMAC_CHDR_DIS2 (0x1u << 2)
217 #define DMAC_CHDR_DIS3 (0x1u << 3)
218 #define DMAC_CHDR_DIS4 (0x1u << 4)
219 #define DMAC_CHDR_DIS5 (0x1u << 5)
220 #define DMAC_CHDR_RES0 (0x1u << 8)
221 #define DMAC_CHDR_RES1 (0x1u << 9)
222 #define DMAC_CHDR_RES2 (0x1u << 10)
223 #define DMAC_CHDR_RES3 (0x1u << 11)
224 #define DMAC_CHDR_RES4 (0x1u << 12)
225 #define DMAC_CHDR_RES5 (0x1u << 13)
226 /* -------- DMAC_CHSR : (DMAC Offset: 0x030) DMAC Channel Handler Status Register -------- */
227 #define DMAC_CHSR_ENA0 (0x1u << 0)
228 #define DMAC_CHSR_ENA1 (0x1u << 1)
229 #define DMAC_CHSR_ENA2 (0x1u << 2)
230 #define DMAC_CHSR_ENA3 (0x1u << 3)
231 #define DMAC_CHSR_ENA4 (0x1u << 4)
232 #define DMAC_CHSR_ENA5 (0x1u << 5)
233 #define DMAC_CHSR_SUSP0 (0x1u << 8)
234 #define DMAC_CHSR_SUSP1 (0x1u << 9)
235 #define DMAC_CHSR_SUSP2 (0x1u << 10)
236 #define DMAC_CHSR_SUSP3 (0x1u << 11)
237 #define DMAC_CHSR_SUSP4 (0x1u << 12)
238 #define DMAC_CHSR_SUSP5 (0x1u << 13)
239 #define DMAC_CHSR_EMPT0 (0x1u << 16)
240 #define DMAC_CHSR_EMPT1 (0x1u << 17)
241 #define DMAC_CHSR_EMPT2 (0x1u << 18)
242 #define DMAC_CHSR_EMPT3 (0x1u << 19)
243 #define DMAC_CHSR_EMPT4 (0x1u << 20)
244 #define DMAC_CHSR_EMPT5 (0x1u << 21)
245 #define DMAC_CHSR_STAL0 (0x1u << 24)
246 #define DMAC_CHSR_STAL1 (0x1u << 25)
247 #define DMAC_CHSR_STAL2 (0x1u << 26)
248 #define DMAC_CHSR_STAL3 (0x1u << 27)
249 #define DMAC_CHSR_STAL4 (0x1u << 28)
250 #define DMAC_CHSR_STAL5 (0x1u << 29)
251 /* -------- DMAC_SADDR : (DMAC Offset: N/A) DMAC Channel Source Address Register -------- */
252 #define DMAC_SADDR_SADDR_Pos 0
253 #define DMAC_SADDR_SADDR_Msk (0xffffffffu << DMAC_SADDR_SADDR_Pos)
254 #define DMAC_SADDR_SADDR(value) ((DMAC_SADDR_SADDR_Msk & ((value) << DMAC_SADDR_SADDR_Pos)))
255 /* -------- DMAC_DADDR : (DMAC Offset: N/A) DMAC Channel Destination Address Register -------- */
256 #define DMAC_DADDR_DADDR_Pos 0
257 #define DMAC_DADDR_DADDR_Msk (0xffffffffu << DMAC_DADDR_DADDR_Pos)
258 #define DMAC_DADDR_DADDR(value) ((DMAC_DADDR_DADDR_Msk & ((value) << DMAC_DADDR_DADDR_Pos)))
259 /* -------- DMAC_DSCR : (DMAC Offset: N/A) DMAC Channel Descriptor Address Register -------- */
260 #define DMAC_DSCR_DSCR_Pos 2
261 #define DMAC_DSCR_DSCR_Msk (0x3fffffffu << DMAC_DSCR_DSCR_Pos)
262 #define DMAC_DSCR_DSCR(value) ((DMAC_DSCR_DSCR_Msk & ((value) << DMAC_DSCR_DSCR_Pos)))
263 /* -------- DMAC_CTRLA : (DMAC Offset: N/A) DMAC Channel Control A Register -------- */
264 #define DMAC_CTRLA_BTSIZE_Pos 0
265 #define DMAC_CTRLA_BTSIZE_Msk (0xffffu << DMAC_CTRLA_BTSIZE_Pos)
266 #define DMAC_CTRLA_BTSIZE(value) ((DMAC_CTRLA_BTSIZE_Msk & ((value) << DMAC_CTRLA_BTSIZE_Pos)))
267 #define DMAC_CTRLA_SCSIZE_Pos 16
268 #define DMAC_CTRLA_SCSIZE_Msk (0x7u << DMAC_CTRLA_SCSIZE_Pos)
269 #define DMAC_CTRLA_SCSIZE_CHK_1 (0x0u << 16)
270 #define DMAC_CTRLA_SCSIZE_CHK_4 (0x1u << 16)
271 #define DMAC_CTRLA_SCSIZE_CHK_8 (0x2u << 16)
272 #define DMAC_CTRLA_SCSIZE_CHK_16 (0x3u << 16)
273 #define DMAC_CTRLA_SCSIZE_CHK_32 (0x4u << 16)
274 #define DMAC_CTRLA_SCSIZE_CHK_64 (0x5u << 16)
275 #define DMAC_CTRLA_SCSIZE_CHK_128 (0x6u << 16)
276 #define DMAC_CTRLA_SCSIZE_CHK_256 (0x7u << 16)
277 #define DMAC_CTRLA_DCSIZE_Pos 20
278 #define DMAC_CTRLA_DCSIZE_Msk (0x7u << DMAC_CTRLA_DCSIZE_Pos)
279 #define DMAC_CTRLA_DCSIZE_CHK_1 (0x0u << 20)
280 #define DMAC_CTRLA_DCSIZE_CHK_4 (0x1u << 20)
281 #define DMAC_CTRLA_DCSIZE_CHK_8 (0x2u << 20)
282 #define DMAC_CTRLA_DCSIZE_CHK_16 (0x3u << 20)
283 #define DMAC_CTRLA_DCSIZE_CHK_32 (0x4u << 20)
284 #define DMAC_CTRLA_DCSIZE_CHK_64 (0x5u << 20)
285 #define DMAC_CTRLA_DCSIZE_CHK_128 (0x6u << 20)
286 #define DMAC_CTRLA_DCSIZE_CHK_256 (0x7u << 20)
287 #define DMAC_CTRLA_SRC_WIDTH_Pos 24
288 #define DMAC_CTRLA_SRC_WIDTH_Msk (0x3u << DMAC_CTRLA_SRC_WIDTH_Pos)
289 #define DMAC_CTRLA_SRC_WIDTH_BYTE (0x0u << 24)
290 #define DMAC_CTRLA_SRC_WIDTH_HALF_WORD (0x1u << 24)
291 #define DMAC_CTRLA_SRC_WIDTH_WORD (0x2u << 24)
292 #define DMAC_CTRLA_DST_WIDTH_Pos 28
293 #define DMAC_CTRLA_DST_WIDTH_Msk (0x3u << DMAC_CTRLA_DST_WIDTH_Pos)
294 #define DMAC_CTRLA_DST_WIDTH_BYTE (0x0u << 28)
295 #define DMAC_CTRLA_DST_WIDTH_HALF_WORD (0x1u << 28)
296 #define DMAC_CTRLA_DST_WIDTH_WORD (0x2u << 28)
297 #define DMAC_CTRLA_DONE (0x1u << 31)
298 /* -------- DMAC_CTRLB : (DMAC Offset: N/A) DMAC Channel Control B Register -------- */
299 #define DMAC_CTRLB_SRC_DSCR (0x1u << 16)
300 #define DMAC_CTRLB_SRC_DSCR_FETCH_FROM_MEM (0x0u << 16)
301 #define DMAC_CTRLB_SRC_DSCR_FETCH_DISABLE (0x1u << 16)
302 #define DMAC_CTRLB_DST_DSCR (0x1u << 20)
303 #define DMAC_CTRLB_DST_DSCR_FETCH_FROM_MEM (0x0u << 20)
304 #define DMAC_CTRLB_DST_DSCR_FETCH_DISABLE (0x1u << 20)
305 #define DMAC_CTRLB_FC_Pos 21
306 #define DMAC_CTRLB_FC_Msk (0x7u << DMAC_CTRLB_FC_Pos)
307 #define DMAC_CTRLB_FC_MEM2MEM_DMA_FC (0x0u << 21)
308 #define DMAC_CTRLB_FC_MEM2PER_DMA_FC (0x1u << 21)
309 #define DMAC_CTRLB_FC_PER2MEM_DMA_FC (0x2u << 21)
310 #define DMAC_CTRLB_FC_PER2PER_DMA_FC (0x3u << 21)
311 #define DMAC_CTRLB_SRC_INCR_Pos 24
312 #define DMAC_CTRLB_SRC_INCR_Msk (0x3u << DMAC_CTRLB_SRC_INCR_Pos)
313 #define DMAC_CTRLB_SRC_INCR_INCREMENTING (0x0u << 24)
314 #define DMAC_CTRLB_SRC_INCR_DECREMENTING (0x1u << 24)
315 #define DMAC_CTRLB_SRC_INCR_FIXED (0x2u << 24)
316 #define DMAC_CTRLB_DST_INCR_Pos 28
317 #define DMAC_CTRLB_DST_INCR_Msk (0x3u << DMAC_CTRLB_DST_INCR_Pos)
318 #define DMAC_CTRLB_DST_INCR_INCREMENTING (0x0u << 28)
319 #define DMAC_CTRLB_DST_INCR_DECREMENTING (0x1u << 28)
320 #define DMAC_CTRLB_DST_INCR_FIXED (0x2u << 28)
321 #define DMAC_CTRLB_IEN (0x1u << 30)
322 /* -------- DMAC_CFG : (DMAC Offset: N/A) DMAC Channel Configuration Register -------- */
323 #define DMAC_CFG_SRC_PER_Pos 0
324 #define DMAC_CFG_SRC_PER_Msk (0xfu << DMAC_CFG_SRC_PER_Pos)
325 #define DMAC_CFG_SRC_PER(value) ((DMAC_CFG_SRC_PER_Msk & ((value) << DMAC_CFG_SRC_PER_Pos)))
326 #define DMAC_CFG_DST_PER_Pos 4
327 #define DMAC_CFG_DST_PER_Msk (0xfu << DMAC_CFG_DST_PER_Pos)
328 #define DMAC_CFG_DST_PER(value) ((DMAC_CFG_DST_PER_Msk & ((value) << DMAC_CFG_DST_PER_Pos)))
329 #define DMAC_CFG_SRC_H2SEL (0x1u << 9)
330 #define DMAC_CFG_SRC_H2SEL_SW (0x0u << 9)
331 #define DMAC_CFG_SRC_H2SEL_HW (0x1u << 9)
332 #define DMAC_CFG_DST_H2SEL (0x1u << 13)
333 #define DMAC_CFG_DST_H2SEL_SW (0x0u << 13)
334 #define DMAC_CFG_DST_H2SEL_HW (0x1u << 13)
335 #define DMAC_CFG_SOD (0x1u << 16)
336 #define DMAC_CFG_SOD_DISABLE (0x0u << 16)
337 #define DMAC_CFG_SOD_ENABLE (0x1u << 16)
338 #define DMAC_CFG_LOCK_IF (0x1u << 20)
339 #define DMAC_CFG_LOCK_IF_DISABLE (0x0u << 20)
340 #define DMAC_CFG_LOCK_IF_ENABLE (0x1u << 20)
341 #define DMAC_CFG_LOCK_B (0x1u << 21)
342 #define DMAC_CFG_LOCK_B_DISABLE (0x0u << 21)
343 #define DMAC_CFG_LOCK_IF_L (0x1u << 22)
344 #define DMAC_CFG_LOCK_IF_L_CHUNK (0x0u << 22)
345 #define DMAC_CFG_LOCK_IF_L_BUFFER (0x1u << 22)
346 #define DMAC_CFG_AHB_PROT_Pos 24
347 #define DMAC_CFG_AHB_PROT_Msk (0x7u << DMAC_CFG_AHB_PROT_Pos)
348 #define DMAC_CFG_AHB_PROT(value) ((DMAC_CFG_AHB_PROT_Msk & ((value) << DMAC_CFG_AHB_PROT_Pos)))
349 #define DMAC_CFG_FIFOCFG_Pos 28
350 #define DMAC_CFG_FIFOCFG_Msk (0x3u << DMAC_CFG_FIFOCFG_Pos)
351 #define DMAC_CFG_FIFOCFG_ALAP_CFG (0x0u << 28)
352 #define DMAC_CFG_FIFOCFG_HALF_CFG (0x1u << 28)
353 #define DMAC_CFG_FIFOCFG_ASAP_CFG (0x2u << 28)
354 /* -------- DMAC_WPMR : (DMAC Offset: 0x1E4) DMAC Write Protect Mode Register -------- */
355 #define DMAC_WPMR_WPEN (0x1u << 0)
356 #define DMAC_WPMR_WPKEY_Pos 8
357 #define DMAC_WPMR_WPKEY_Msk (0xffffffu << DMAC_WPMR_WPKEY_Pos)
358 #define DMAC_WPMR_WPKEY(value) ((DMAC_WPMR_WPKEY_Msk & ((value) << DMAC_WPMR_WPKEY_Pos)))
359 /* -------- DMAC_WPSR : (DMAC Offset: 0x1E8) DMAC Write Protect Status Register -------- */
360 #define DMAC_WPSR_WPVS (0x1u << 0)
361 #define DMAC_WPSR_WPVSRC_Pos 8
362 #define DMAC_WPSR_WPVSRC_Msk (0xffffu << DMAC_WPSR_WPVSRC_Pos)
365 
366 
367 #endif /* _SAM3XA_DMAC_COMPONENT_ */
volatile uint32_t RwReg
Definition: sam3n00a.h:54
volatile uint32_t WoReg
Definition: sam3n00a.h:53
DmacCh_num hardware registers.
Definition: component_dmac.h:41
Definition: component_dmac.h:52
volatile const uint32_t RoReg
Definition: sam3n00a.h:49
#define DMACCH_NUM_NUMBER
Dmac hardware registers.
Definition: component_dmac.h:51