30 #ifndef _SAM3U_DMAC_COMPONENT_ 31 #define _SAM3U_DMAC_COMPONENT_ 39 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) 51 #define DMACCH_NUM_NUMBER 4 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) 89 #define DMAC_CREQ_SCREQ0 (0x1u << 0) 90 #define DMAC_CREQ_DCREQ0 (0x1u << 1) 91 #define DMAC_CREQ_SCREQ1 (0x1u << 2) 92 #define DMAC_CREQ_DCREQ1 (0x1u << 3) 93 #define DMAC_CREQ_SCREQ2 (0x1u << 4) 94 #define DMAC_CREQ_DCREQ2 (0x1u << 5) 95 #define DMAC_CREQ_SCREQ3 (0x1u << 6) 96 #define DMAC_CREQ_DCREQ3 (0x1u << 7) 98 #define DMAC_LAST_SLAST0 (0x1u << 0) 99 #define DMAC_LAST_DLAST0 (0x1u << 1) 100 #define DMAC_LAST_SLAST1 (0x1u << 2) 101 #define DMAC_LAST_DLAST1 (0x1u << 3) 102 #define DMAC_LAST_SLAST2 (0x1u << 4) 103 #define DMAC_LAST_DLAST2 (0x1u << 5) 104 #define DMAC_LAST_SLAST3 (0x1u << 6) 105 #define DMAC_LAST_DLAST3 (0x1u << 7) 107 #define DMAC_EBCIER_BTC0 (0x1u << 0) 108 #define DMAC_EBCIER_BTC1 (0x1u << 1) 109 #define DMAC_EBCIER_BTC2 (0x1u << 2) 110 #define DMAC_EBCIER_BTC3 (0x1u << 3) 111 #define DMAC_EBCIER_CBTC0 (0x1u << 8) 112 #define DMAC_EBCIER_CBTC1 (0x1u << 9) 113 #define DMAC_EBCIER_CBTC2 (0x1u << 10) 114 #define DMAC_EBCIER_CBTC3 (0x1u << 11) 115 #define DMAC_EBCIER_ERR0 (0x1u << 16) 116 #define DMAC_EBCIER_ERR1 (0x1u << 17) 117 #define DMAC_EBCIER_ERR2 (0x1u << 18) 118 #define DMAC_EBCIER_ERR3 (0x1u << 19) 120 #define DMAC_EBCIDR_BTC0 (0x1u << 0) 121 #define DMAC_EBCIDR_BTC1 (0x1u << 1) 122 #define DMAC_EBCIDR_BTC2 (0x1u << 2) 123 #define DMAC_EBCIDR_BTC3 (0x1u << 3) 124 #define DMAC_EBCIDR_CBTC0 (0x1u << 8) 125 #define DMAC_EBCIDR_CBTC1 (0x1u << 9) 126 #define DMAC_EBCIDR_CBTC2 (0x1u << 10) 127 #define DMAC_EBCIDR_CBTC3 (0x1u << 11) 128 #define DMAC_EBCIDR_ERR0 (0x1u << 16) 129 #define DMAC_EBCIDR_ERR1 (0x1u << 17) 130 #define DMAC_EBCIDR_ERR2 (0x1u << 18) 131 #define DMAC_EBCIDR_ERR3 (0x1u << 19) 133 #define DMAC_EBCIMR_BTC0 (0x1u << 0) 134 #define DMAC_EBCIMR_BTC1 (0x1u << 1) 135 #define DMAC_EBCIMR_BTC2 (0x1u << 2) 136 #define DMAC_EBCIMR_BTC3 (0x1u << 3) 137 #define DMAC_EBCIMR_CBTC0 (0x1u << 8) 138 #define DMAC_EBCIMR_CBTC1 (0x1u << 9) 139 #define DMAC_EBCIMR_CBTC2 (0x1u << 10) 140 #define DMAC_EBCIMR_CBTC3 (0x1u << 11) 141 #define DMAC_EBCIMR_ERR0 (0x1u << 16) 142 #define DMAC_EBCIMR_ERR1 (0x1u << 17) 143 #define DMAC_EBCIMR_ERR2 (0x1u << 18) 144 #define DMAC_EBCIMR_ERR3 (0x1u << 19) 146 #define DMAC_EBCISR_BTC0 (0x1u << 0) 147 #define DMAC_EBCISR_BTC1 (0x1u << 1) 148 #define DMAC_EBCISR_BTC2 (0x1u << 2) 149 #define DMAC_EBCISR_BTC3 (0x1u << 3) 150 #define DMAC_EBCISR_CBTC0 (0x1u << 8) 151 #define DMAC_EBCISR_CBTC1 (0x1u << 9) 152 #define DMAC_EBCISR_CBTC2 (0x1u << 10) 153 #define DMAC_EBCISR_CBTC3 (0x1u << 11) 154 #define DMAC_EBCISR_ERR0 (0x1u << 16) 155 #define DMAC_EBCISR_ERR1 (0x1u << 17) 156 #define DMAC_EBCISR_ERR2 (0x1u << 18) 157 #define DMAC_EBCISR_ERR3 (0x1u << 19) 159 #define DMAC_CHER_ENA0 (0x1u << 0) 160 #define DMAC_CHER_ENA1 (0x1u << 1) 161 #define DMAC_CHER_ENA2 (0x1u << 2) 162 #define DMAC_CHER_ENA3 (0x1u << 3) 163 #define DMAC_CHER_SUSP0 (0x1u << 8) 164 #define DMAC_CHER_SUSP1 (0x1u << 9) 165 #define DMAC_CHER_SUSP2 (0x1u << 10) 166 #define DMAC_CHER_SUSP3 (0x1u << 11) 167 #define DMAC_CHER_KEEP0 (0x1u << 24) 168 #define DMAC_CHER_KEEP1 (0x1u << 25) 169 #define DMAC_CHER_KEEP2 (0x1u << 26) 170 #define DMAC_CHER_KEEP3 (0x1u << 27) 172 #define DMAC_CHDR_DIS0 (0x1u << 0) 173 #define DMAC_CHDR_DIS1 (0x1u << 1) 174 #define DMAC_CHDR_DIS2 (0x1u << 2) 175 #define DMAC_CHDR_DIS3 (0x1u << 3) 176 #define DMAC_CHDR_RES0 (0x1u << 8) 177 #define DMAC_CHDR_RES1 (0x1u << 9) 178 #define DMAC_CHDR_RES2 (0x1u << 10) 179 #define DMAC_CHDR_RES3 (0x1u << 11) 181 #define DMAC_CHSR_ENA0 (0x1u << 0) 182 #define DMAC_CHSR_ENA1 (0x1u << 1) 183 #define DMAC_CHSR_ENA2 (0x1u << 2) 184 #define DMAC_CHSR_ENA3 (0x1u << 3) 185 #define DMAC_CHSR_SUSP0 (0x1u << 8) 186 #define DMAC_CHSR_SUSP1 (0x1u << 9) 187 #define DMAC_CHSR_SUSP2 (0x1u << 10) 188 #define DMAC_CHSR_SUSP3 (0x1u << 11) 189 #define DMAC_CHSR_EMPT0 (0x1u << 16) 190 #define DMAC_CHSR_EMPT1 (0x1u << 17) 191 #define DMAC_CHSR_EMPT2 (0x1u << 18) 192 #define DMAC_CHSR_EMPT3 (0x1u << 19) 193 #define DMAC_CHSR_STAL0 (0x1u << 24) 194 #define DMAC_CHSR_STAL1 (0x1u << 25) 195 #define DMAC_CHSR_STAL2 (0x1u << 26) 196 #define DMAC_CHSR_STAL3 (0x1u << 27) 198 #define DMAC_SADDR_SADDR_Pos 0 199 #define DMAC_SADDR_SADDR_Msk (0xffffffffu << DMAC_SADDR_SADDR_Pos) 200 #define DMAC_SADDR_SADDR(value) ((DMAC_SADDR_SADDR_Msk & ((value) << DMAC_SADDR_SADDR_Pos))) 202 #define DMAC_DADDR_DADDR_Pos 0 203 #define DMAC_DADDR_DADDR_Msk (0xffffffffu << DMAC_DADDR_DADDR_Pos) 204 #define DMAC_DADDR_DADDR(value) ((DMAC_DADDR_DADDR_Msk & ((value) << DMAC_DADDR_DADDR_Pos))) 206 #define DMAC_DSCR_DSCR_Pos 2 207 #define DMAC_DSCR_DSCR_Msk (0x3fffffffu << DMAC_DSCR_DSCR_Pos) 208 #define DMAC_DSCR_DSCR(value) ((DMAC_DSCR_DSCR_Msk & ((value) << DMAC_DSCR_DSCR_Pos))) 210 #define DMAC_CTRLA_BTSIZE_Pos 0 211 #define DMAC_CTRLA_BTSIZE_Msk (0xffffu << DMAC_CTRLA_BTSIZE_Pos) 212 #define DMAC_CTRLA_BTSIZE(value) ((DMAC_CTRLA_BTSIZE_Msk & ((value) << DMAC_CTRLA_BTSIZE_Pos))) 213 #define DMAC_CTRLA_SCSIZE_Pos 16 214 #define DMAC_CTRLA_SCSIZE_Msk (0x7u << DMAC_CTRLA_SCSIZE_Pos) 215 #define DMAC_CTRLA_SCSIZE_CHK_1 (0x0u << 16) 216 #define DMAC_CTRLA_SCSIZE_CHK_4 (0x1u << 16) 217 #define DMAC_CTRLA_SCSIZE_CHK_8 (0x2u << 16) 218 #define DMAC_CTRLA_SCSIZE_CHK_16 (0x3u << 16) 219 #define DMAC_CTRLA_SCSIZE_CHK_32 (0x4u << 16) 220 #define DMAC_CTRLA_SCSIZE_CHK_64 (0x5u << 16) 221 #define DMAC_CTRLA_SCSIZE_CHK_128 (0x6u << 16) 222 #define DMAC_CTRLA_SCSIZE_CHK_256 (0x7u << 16) 223 #define DMAC_CTRLA_DCSIZE_Pos 20 224 #define DMAC_CTRLA_DCSIZE_Msk (0x7u << DMAC_CTRLA_DCSIZE_Pos) 225 #define DMAC_CTRLA_DCSIZE_CHK_1 (0x0u << 20) 226 #define DMAC_CTRLA_DCSIZE_CHK_4 (0x1u << 20) 227 #define DMAC_CTRLA_DCSIZE_CHK_8 (0x2u << 20) 228 #define DMAC_CTRLA_DCSIZE_CHK_16 (0x3u << 20) 229 #define DMAC_CTRLA_DCSIZE_CHK_32 (0x4u << 20) 230 #define DMAC_CTRLA_DCSIZE_CHK_64 (0x5u << 20) 231 #define DMAC_CTRLA_DCSIZE_CHK_128 (0x6u << 20) 232 #define DMAC_CTRLA_DCSIZE_CHK_256 (0x7u << 20) 233 #define DMAC_CTRLA_SRC_WIDTH_Pos 24 234 #define DMAC_CTRLA_SRC_WIDTH_Msk (0x3u << DMAC_CTRLA_SRC_WIDTH_Pos) 235 #define DMAC_CTRLA_SRC_WIDTH_BYTE (0x0u << 24) 236 #define DMAC_CTRLA_SRC_WIDTH_HALF_WORD (0x1u << 24) 237 #define DMAC_CTRLA_SRC_WIDTH_WORD (0x2u << 24) 238 #define DMAC_CTRLA_DST_WIDTH_Pos 28 239 #define DMAC_CTRLA_DST_WIDTH_Msk (0x3u << DMAC_CTRLA_DST_WIDTH_Pos) 240 #define DMAC_CTRLA_DST_WIDTH_BYTE (0x0u << 28) 241 #define DMAC_CTRLA_DST_WIDTH_HALF_WORD (0x1u << 28) 242 #define DMAC_CTRLA_DST_WIDTH_WORD (0x2u << 28) 243 #define DMAC_CTRLA_DONE (0x1u << 31) 245 #define DMAC_CTRLB_SRC_DSCR (0x1u << 16) 246 #define DMAC_CTRLB_SRC_DSCR_FETCH_FROM_MEM (0x0u << 16) 247 #define DMAC_CTRLB_SRC_DSCR_FETCH_DISABLE (0x1u << 16) 248 #define DMAC_CTRLB_DST_DSCR (0x1u << 20) 249 #define DMAC_CTRLB_DST_DSCR_FETCH_FROM_MEM (0x0u << 20) 250 #define DMAC_CTRLB_DST_DSCR_FETCH_DISABLE (0x1u << 20) 251 #define DMAC_CTRLB_FC_Pos 21 252 #define DMAC_CTRLB_FC_Msk (0x7u << DMAC_CTRLB_FC_Pos) 253 #define DMAC_CTRLB_FC_MEM2MEM_DMA_FC (0x0u << 21) 254 #define DMAC_CTRLB_FC_MEM2PER_DMA_FC (0x1u << 21) 255 #define DMAC_CTRLB_FC_PER2MEM_DMA_FC (0x2u << 21) 256 #define DMAC_CTRLB_FC_PER2PER_DMA_FC (0x3u << 21) 257 #define DMAC_CTRLB_SRC_INCR_Pos 24 258 #define DMAC_CTRLB_SRC_INCR_Msk (0x3u << DMAC_CTRLB_SRC_INCR_Pos) 259 #define DMAC_CTRLB_SRC_INCR_INCREMENTING (0x0u << 24) 260 #define DMAC_CTRLB_SRC_INCR_DECREMENTING (0x1u << 24) 261 #define DMAC_CTRLB_SRC_INCR_FIXED (0x2u << 24) 262 #define DMAC_CTRLB_DST_INCR_Pos 28 263 #define DMAC_CTRLB_DST_INCR_Msk (0x3u << DMAC_CTRLB_DST_INCR_Pos) 264 #define DMAC_CTRLB_DST_INCR_INCREMENTING (0x0u << 28) 265 #define DMAC_CTRLB_DST_INCR_DECREMENTING (0x1u << 28) 266 #define DMAC_CTRLB_DST_INCR_FIXED (0x2u << 28) 267 #define DMAC_CTRLB_IEN (0x1u << 30) 269 #define DMAC_CFG_SRC_PER_Pos 0 270 #define DMAC_CFG_SRC_PER_Msk (0xfu << DMAC_CFG_SRC_PER_Pos) 271 #define DMAC_CFG_SRC_PER(value) ((DMAC_CFG_SRC_PER_Msk & ((value) << DMAC_CFG_SRC_PER_Pos))) 272 #define DMAC_CFG_DST_PER_Pos 4 273 #define DMAC_CFG_DST_PER_Msk (0xfu << DMAC_CFG_DST_PER_Pos) 274 #define DMAC_CFG_DST_PER(value) ((DMAC_CFG_DST_PER_Msk & ((value) << DMAC_CFG_DST_PER_Pos))) 275 #define DMAC_CFG_SRC_H2SEL (0x1u << 9) 276 #define DMAC_CFG_SRC_H2SEL_SW (0x0u << 9) 277 #define DMAC_CFG_SRC_H2SEL_HW (0x1u << 9) 278 #define DMAC_CFG_DST_H2SEL (0x1u << 13) 279 #define DMAC_CFG_DST_H2SEL_SW (0x0u << 13) 280 #define DMAC_CFG_DST_H2SEL_HW (0x1u << 13) 281 #define DMAC_CFG_SOD (0x1u << 16) 282 #define DMAC_CFG_SOD_DISABLE (0x0u << 16) 283 #define DMAC_CFG_SOD_ENABLE (0x1u << 16) 284 #define DMAC_CFG_LOCK_IF (0x1u << 20) 285 #define DMAC_CFG_LOCK_IF_DISABLE (0x0u << 20) 286 #define DMAC_CFG_LOCK_IF_ENABLE (0x1u << 20) 287 #define DMAC_CFG_LOCK_B (0x1u << 21) 288 #define DMAC_CFG_LOCK_B_DISABLE (0x0u << 21) 289 #define DMAC_CFG_LOCK_IF_L (0x1u << 22) 290 #define DMAC_CFG_LOCK_IF_L_CHUNK (0x0u << 22) 291 #define DMAC_CFG_LOCK_IF_L_BUFFER (0x1u << 22) 292 #define DMAC_CFG_AHB_PROT_Pos 24 293 #define DMAC_CFG_AHB_PROT_Msk (0x7u << DMAC_CFG_AHB_PROT_Pos) 294 #define DMAC_CFG_AHB_PROT(value) ((DMAC_CFG_AHB_PROT_Msk & ((value) << DMAC_CFG_AHB_PROT_Pos))) 295 #define DMAC_CFG_FIFOCFG_Pos 28 296 #define DMAC_CFG_FIFOCFG_Msk (0x3u << DMAC_CFG_FIFOCFG_Pos) 297 #define DMAC_CFG_FIFOCFG_ALAP_CFG (0x0u << 28) 298 #define DMAC_CFG_FIFOCFG_HALF_CFG (0x1u << 28) 299 #define DMAC_CFG_FIFOCFG_ASAP_CFG (0x2u << 28) 301 #define DMAC_WPMR_WPEN (0x1u << 0) 302 #define DMAC_WPMR_WPKEY_Pos 8 303 #define DMAC_WPMR_WPKEY_Msk (0xffffffu << DMAC_WPMR_WPKEY_Pos) 304 #define DMAC_WPMR_WPKEY(value) ((DMAC_WPMR_WPKEY_Msk & ((value) << DMAC_WPMR_WPKEY_Pos))) 306 #define DMAC_WPSR_WPVS (0x1u << 0) 307 #define DMAC_WPSR_WPVSRC_Pos 8 308 #define DMAC_WPSR_WPVSRC_Msk (0xffffu << DMAC_WPSR_WPVSRC_Pos) #define DMACCH_NUM_NUMBER
Dmac hardware registers.
Definition: component_dmac.h:51
WoReg DMAC_CHER
(Dmac Offset: 0x028) DMAC Channel Handler Enable Register
Definition: component_dmac.h:63
RwReg DMAC_CREQ
(Dmac Offset: 0x00C) DMAC Software Chunk Transfer Request Register
Definition: component_dmac.h:56
volatile uint32_t RwReg
Definition: sam3n00a.h:54
RwReg DMAC_SADDR
(DmacCh_num Offset: 0x0) DMAC Channel Source Address Register
Definition: component_dmac.h:42
RoReg DMAC_CHSR
(Dmac Offset: 0x030) DMAC Channel Handler Status Register
Definition: component_dmac.h:65
RoReg DMAC_EBCIMR
(Dmac Offset: 0x020) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer comp...
Definition: component_dmac.h:61
volatile uint32_t WoReg
Definition: sam3n00a.h:53
RoReg DMAC_EBCISR
(Dmac Offset: 0x024) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer transfer comp...
Definition: component_dmac.h:62
RwReg DMAC_WPMR
(Dmac Offset: 0x1E4) DMAC Write Protect Mode Register
Definition: component_dmac.h:69
DmacCh_num hardware registers.
Definition: component_dmac.h:41
RwReg DMAC_LAST
(Dmac Offset: 0x010) DMAC Software Last Transfer Flag Register
Definition: component_dmac.h:57
WoReg DMAC_EBCIDR
(Dmac Offset: 0x01C) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Comp...
Definition: component_dmac.h:60
Definition: component_dmac.h:52
RwReg DMAC_GCFG
(Dmac Offset: 0x000) DMAC Global Configuration Register
Definition: component_dmac.h:53
WoReg DMAC_EBCIER
(Dmac Offset: 0x018) DMAC Error, Chained Buffer Transfer Completed Interrupt and Buffer Transfer Comp...
Definition: component_dmac.h:59
RwReg DMAC_CTRLA
(DmacCh_num Offset: 0xC) DMAC Channel Control A Register
Definition: component_dmac.h:45
RoReg DMAC_WPSR
(Dmac Offset: 0x1E8) DMAC Write Protect Status Register
Definition: component_dmac.h:70
volatile const uint32_t RoReg
Definition: sam3n00a.h:49
WoReg DMAC_CHDR
(Dmac Offset: 0x02C) DMAC Channel Handler Disable Register
Definition: component_dmac.h:64
RwReg DMAC_CTRLB
(DmacCh_num Offset: 0x10) DMAC Channel Control B Register
Definition: component_dmac.h:46
RwReg DMAC_EN
(Dmac Offset: 0x004) DMAC Enable Register
Definition: component_dmac.h:54
RwReg DMAC_DSCR
(DmacCh_num Offset: 0x8) DMAC Channel Descriptor Address Register
Definition: component_dmac.h:44
RwReg DMAC_SREQ
(Dmac Offset: 0x008) DMAC Software Single Request Register
Definition: component_dmac.h:55
RwReg DMAC_CFG
(DmacCh_num Offset: 0x14) DMAC Channel Configuration Register
Definition: component_dmac.h:47
RwReg DMAC_DADDR
(DmacCh_num Offset: 0x4) DMAC Channel Destination Address Register
Definition: component_dmac.h:43