30 #ifndef _SAM3XA_DMAC_COMPONENT_ 31 #define _SAM3XA_DMAC_COMPONENT_ 39 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 51 #define DMACCH_NUM_NUMBER 6 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) 78 #define DMAC_EN_ENABLE (0x1u << 0) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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))) 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))) 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))) 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) 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) 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) 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))) 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) 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