dmac.h 115 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158
  1. /**
  2. * \file
  3. *
  4. * \brief Component description for DMAC
  5. *
  6. * Copyright (c) 2018 Microchip Technology Inc.
  7. *
  8. * \license_start
  9. *
  10. * \page License
  11. *
  12. * SPDX-License-Identifier: Apache-2.0
  13. *
  14. * Licensed under the Apache License, Version 2.0 (the "License");
  15. * you may not use this file except in compliance with the License.
  16. * You may obtain a copy of the License at
  17. *
  18. * http://www.apache.org/licenses/LICENSE-2.0
  19. *
  20. * Unless required by applicable law or agreed to in writing, software
  21. * distributed under the License is distributed on an "AS IS" BASIS,
  22. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  23. * See the License for the specific language governing permissions and
  24. * limitations under the License.
  25. *
  26. * \license_stop
  27. *
  28. */
  29. /* file generated from device description version 2018-05-30T11:07:17Z */
  30. #ifndef _SAML11_DMAC_COMPONENT_H_
  31. #define _SAML11_DMAC_COMPONENT_H_
  32. #define _SAML11_DMAC_COMPONENT_ /**< \deprecated Backward compatibility for ASF */
  33. /** \addtogroup SAML_SAML11 Direct Memory Access Controller
  34. * @{
  35. */
  36. /* ========================================================================== */
  37. /** SOFTWARE API DEFINITION FOR DMAC */
  38. /* ========================================================================== */
  39. #define DMAC_U2223 /**< (DMAC) Module ID */
  40. #define REV_DMAC 0x240 /**< (DMAC) Module revision */
  41. /* -------- DMAC_BTCTRL : (DMAC Offset: 0x00) (R/W 16) Block Transfer Control -------- */
  42. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  43. typedef union {
  44. struct {
  45. uint16_t VALID:1; /**< bit: 0 Descriptor Valid */
  46. uint16_t EVOSEL:2; /**< bit: 1..2 Event Output Selection */
  47. uint16_t BLOCKACT:2; /**< bit: 3..4 Block Action */
  48. uint16_t :3; /**< bit: 5..7 Reserved */
  49. uint16_t BEATSIZE:2; /**< bit: 8..9 Beat Size */
  50. uint16_t SRCINC:1; /**< bit: 10 Source Address Increment Enable */
  51. uint16_t DSTINC:1; /**< bit: 11 Destination Address Increment Enable */
  52. uint16_t STEPSEL:1; /**< bit: 12 Step Selection */
  53. uint16_t STEPSIZE:3; /**< bit: 13..15 Address Increment Step Size */
  54. } bit; /**< Structure used for bit access */
  55. uint16_t reg; /**< Type used for register access */
  56. } DMAC_BTCTRL_Type;
  57. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  58. #define DMAC_BTCTRL_OFFSET (0x00) /**< (DMAC_BTCTRL) Block Transfer Control Offset */
  59. #define DMAC_BTCTRL_RESETVALUE _U_(0x00) /**< (DMAC_BTCTRL) Block Transfer Control Reset Value */
  60. #define DMAC_BTCTRL_VALID_Pos 0 /**< (DMAC_BTCTRL) Descriptor Valid Position */
  61. #define DMAC_BTCTRL_VALID_Msk (_U_(0x1) << DMAC_BTCTRL_VALID_Pos) /**< (DMAC_BTCTRL) Descriptor Valid Mask */
  62. #define DMAC_BTCTRL_VALID DMAC_BTCTRL_VALID_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BTCTRL_VALID_Msk instead */
  63. #define DMAC_BTCTRL_EVOSEL_Pos 1 /**< (DMAC_BTCTRL) Event Output Selection Position */
  64. #define DMAC_BTCTRL_EVOSEL_Msk (_U_(0x3) << DMAC_BTCTRL_EVOSEL_Pos) /**< (DMAC_BTCTRL) Event Output Selection Mask */
  65. #define DMAC_BTCTRL_EVOSEL(value) (DMAC_BTCTRL_EVOSEL_Msk & ((value) << DMAC_BTCTRL_EVOSEL_Pos))
  66. #define DMAC_BTCTRL_EVOSEL_DISABLE_Val _U_(0x0) /**< (DMAC_BTCTRL) Event generation disabled */
  67. #define DMAC_BTCTRL_EVOSEL_BLOCK_Val _U_(0x1) /**< (DMAC_BTCTRL) Event strobe when block transfer complete */
  68. #define DMAC_BTCTRL_EVOSEL_BEAT_Val _U_(0x3) /**< (DMAC_BTCTRL) Event strobe when beat transfer complete */
  69. #define DMAC_BTCTRL_EVOSEL_DISABLE (DMAC_BTCTRL_EVOSEL_DISABLE_Val << DMAC_BTCTRL_EVOSEL_Pos) /**< (DMAC_BTCTRL) Event generation disabled Position */
  70. #define DMAC_BTCTRL_EVOSEL_BLOCK (DMAC_BTCTRL_EVOSEL_BLOCK_Val << DMAC_BTCTRL_EVOSEL_Pos) /**< (DMAC_BTCTRL) Event strobe when block transfer complete Position */
  71. #define DMAC_BTCTRL_EVOSEL_BEAT (DMAC_BTCTRL_EVOSEL_BEAT_Val << DMAC_BTCTRL_EVOSEL_Pos) /**< (DMAC_BTCTRL) Event strobe when beat transfer complete Position */
  72. #define DMAC_BTCTRL_BLOCKACT_Pos 3 /**< (DMAC_BTCTRL) Block Action Position */
  73. #define DMAC_BTCTRL_BLOCKACT_Msk (_U_(0x3) << DMAC_BTCTRL_BLOCKACT_Pos) /**< (DMAC_BTCTRL) Block Action Mask */
  74. #define DMAC_BTCTRL_BLOCKACT(value) (DMAC_BTCTRL_BLOCKACT_Msk & ((value) << DMAC_BTCTRL_BLOCKACT_Pos))
  75. #define DMAC_BTCTRL_BLOCKACT_NOACT_Val _U_(0x0) /**< (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction */
  76. #define DMAC_BTCTRL_BLOCKACT_INT_Val _U_(0x1) /**< (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction and block interrupt */
  77. #define DMAC_BTCTRL_BLOCKACT_SUSPEND_Val _U_(0x2) /**< (DMAC_BTCTRL) Channel suspend operation is completed */
  78. #define DMAC_BTCTRL_BLOCKACT_BOTH_Val _U_(0x3) /**< (DMAC_BTCTRL) Both channel suspend operation and block interrupt */
  79. #define DMAC_BTCTRL_BLOCKACT_NOACT (DMAC_BTCTRL_BLOCKACT_NOACT_Val << DMAC_BTCTRL_BLOCKACT_Pos) /**< (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction Position */
  80. #define DMAC_BTCTRL_BLOCKACT_INT (DMAC_BTCTRL_BLOCKACT_INT_Val << DMAC_BTCTRL_BLOCKACT_Pos) /**< (DMAC_BTCTRL) Channel will be disabled if it is the last block transfer in the transaction and block interrupt Position */
  81. #define DMAC_BTCTRL_BLOCKACT_SUSPEND (DMAC_BTCTRL_BLOCKACT_SUSPEND_Val << DMAC_BTCTRL_BLOCKACT_Pos) /**< (DMAC_BTCTRL) Channel suspend operation is completed Position */
  82. #define DMAC_BTCTRL_BLOCKACT_BOTH (DMAC_BTCTRL_BLOCKACT_BOTH_Val << DMAC_BTCTRL_BLOCKACT_Pos) /**< (DMAC_BTCTRL) Both channel suspend operation and block interrupt Position */
  83. #define DMAC_BTCTRL_BEATSIZE_Pos 8 /**< (DMAC_BTCTRL) Beat Size Position */
  84. #define DMAC_BTCTRL_BEATSIZE_Msk (_U_(0x3) << DMAC_BTCTRL_BEATSIZE_Pos) /**< (DMAC_BTCTRL) Beat Size Mask */
  85. #define DMAC_BTCTRL_BEATSIZE(value) (DMAC_BTCTRL_BEATSIZE_Msk & ((value) << DMAC_BTCTRL_BEATSIZE_Pos))
  86. #define DMAC_BTCTRL_BEATSIZE_BYTE_Val _U_(0x0) /**< (DMAC_BTCTRL) 8-bit bus transfer */
  87. #define DMAC_BTCTRL_BEATSIZE_HWORD_Val _U_(0x1) /**< (DMAC_BTCTRL) 16-bit bus transfer */
  88. #define DMAC_BTCTRL_BEATSIZE_WORD_Val _U_(0x2) /**< (DMAC_BTCTRL) 32-bit bus transfer */
  89. #define DMAC_BTCTRL_BEATSIZE_BYTE (DMAC_BTCTRL_BEATSIZE_BYTE_Val << DMAC_BTCTRL_BEATSIZE_Pos) /**< (DMAC_BTCTRL) 8-bit bus transfer Position */
  90. #define DMAC_BTCTRL_BEATSIZE_HWORD (DMAC_BTCTRL_BEATSIZE_HWORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) /**< (DMAC_BTCTRL) 16-bit bus transfer Position */
  91. #define DMAC_BTCTRL_BEATSIZE_WORD (DMAC_BTCTRL_BEATSIZE_WORD_Val << DMAC_BTCTRL_BEATSIZE_Pos) /**< (DMAC_BTCTRL) 32-bit bus transfer Position */
  92. #define DMAC_BTCTRL_SRCINC_Pos 10 /**< (DMAC_BTCTRL) Source Address Increment Enable Position */
  93. #define DMAC_BTCTRL_SRCINC_Msk (_U_(0x1) << DMAC_BTCTRL_SRCINC_Pos) /**< (DMAC_BTCTRL) Source Address Increment Enable Mask */
  94. #define DMAC_BTCTRL_SRCINC DMAC_BTCTRL_SRCINC_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BTCTRL_SRCINC_Msk instead */
  95. #define DMAC_BTCTRL_DSTINC_Pos 11 /**< (DMAC_BTCTRL) Destination Address Increment Enable Position */
  96. #define DMAC_BTCTRL_DSTINC_Msk (_U_(0x1) << DMAC_BTCTRL_DSTINC_Pos) /**< (DMAC_BTCTRL) Destination Address Increment Enable Mask */
  97. #define DMAC_BTCTRL_DSTINC DMAC_BTCTRL_DSTINC_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BTCTRL_DSTINC_Msk instead */
  98. #define DMAC_BTCTRL_STEPSEL_Pos 12 /**< (DMAC_BTCTRL) Step Selection Position */
  99. #define DMAC_BTCTRL_STEPSEL_Msk (_U_(0x1) << DMAC_BTCTRL_STEPSEL_Pos) /**< (DMAC_BTCTRL) Step Selection Mask */
  100. #define DMAC_BTCTRL_STEPSEL DMAC_BTCTRL_STEPSEL_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BTCTRL_STEPSEL_Msk instead */
  101. #define DMAC_BTCTRL_STEPSEL_DST_Val _U_(0x0) /**< (DMAC_BTCTRL) Step size settings apply to the destination address */
  102. #define DMAC_BTCTRL_STEPSEL_SRC_Val _U_(0x1) /**< (DMAC_BTCTRL) Step size settings apply to the source address */
  103. #define DMAC_BTCTRL_STEPSEL_DST (DMAC_BTCTRL_STEPSEL_DST_Val << DMAC_BTCTRL_STEPSEL_Pos) /**< (DMAC_BTCTRL) Step size settings apply to the destination address Position */
  104. #define DMAC_BTCTRL_STEPSEL_SRC (DMAC_BTCTRL_STEPSEL_SRC_Val << DMAC_BTCTRL_STEPSEL_Pos) /**< (DMAC_BTCTRL) Step size settings apply to the source address Position */
  105. #define DMAC_BTCTRL_STEPSIZE_Pos 13 /**< (DMAC_BTCTRL) Address Increment Step Size Position */
  106. #define DMAC_BTCTRL_STEPSIZE_Msk (_U_(0x7) << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Address Increment Step Size Mask */
  107. #define DMAC_BTCTRL_STEPSIZE(value) (DMAC_BTCTRL_STEPSIZE_Msk & ((value) << DMAC_BTCTRL_STEPSIZE_Pos))
  108. #define DMAC_BTCTRL_STEPSIZE_X1_Val _U_(0x0) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 1 */
  109. #define DMAC_BTCTRL_STEPSIZE_X2_Val _U_(0x1) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 2 */
  110. #define DMAC_BTCTRL_STEPSIZE_X4_Val _U_(0x2) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 4 */
  111. #define DMAC_BTCTRL_STEPSIZE_X8_Val _U_(0x3) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 8 */
  112. #define DMAC_BTCTRL_STEPSIZE_X16_Val _U_(0x4) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 16 */
  113. #define DMAC_BTCTRL_STEPSIZE_X32_Val _U_(0x5) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 32 */
  114. #define DMAC_BTCTRL_STEPSIZE_X64_Val _U_(0x6) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 64 */
  115. #define DMAC_BTCTRL_STEPSIZE_X128_Val _U_(0x7) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 128 */
  116. #define DMAC_BTCTRL_STEPSIZE_X1 (DMAC_BTCTRL_STEPSIZE_X1_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 1 Position */
  117. #define DMAC_BTCTRL_STEPSIZE_X2 (DMAC_BTCTRL_STEPSIZE_X2_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 2 Position */
  118. #define DMAC_BTCTRL_STEPSIZE_X4 (DMAC_BTCTRL_STEPSIZE_X4_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 4 Position */
  119. #define DMAC_BTCTRL_STEPSIZE_X8 (DMAC_BTCTRL_STEPSIZE_X8_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 8 Position */
  120. #define DMAC_BTCTRL_STEPSIZE_X16 (DMAC_BTCTRL_STEPSIZE_X16_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 16 Position */
  121. #define DMAC_BTCTRL_STEPSIZE_X32 (DMAC_BTCTRL_STEPSIZE_X32_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 32 Position */
  122. #define DMAC_BTCTRL_STEPSIZE_X64 (DMAC_BTCTRL_STEPSIZE_X64_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 64 Position */
  123. #define DMAC_BTCTRL_STEPSIZE_X128 (DMAC_BTCTRL_STEPSIZE_X128_Val << DMAC_BTCTRL_STEPSIZE_Pos) /**< (DMAC_BTCTRL) Next ADDR = ADDR + (BEATSIZE+1) * 128 Position */
  124. #define DMAC_BTCTRL_MASK _U_(0xFF1F) /**< \deprecated (DMAC_BTCTRL) Register MASK (Use DMAC_BTCTRL_Msk instead) */
  125. #define DMAC_BTCTRL_Msk _U_(0xFF1F) /**< (DMAC_BTCTRL) Register Mask */
  126. /* -------- DMAC_BTCNT : (DMAC Offset: 0x02) (R/W 16) Block Transfer Count -------- */
  127. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  128. typedef union {
  129. struct {
  130. uint16_t BTCNT:16; /**< bit: 0..15 Block Transfer Count */
  131. } bit; /**< Structure used for bit access */
  132. uint16_t reg; /**< Type used for register access */
  133. } DMAC_BTCNT_Type;
  134. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  135. #define DMAC_BTCNT_OFFSET (0x02) /**< (DMAC_BTCNT) Block Transfer Count Offset */
  136. #define DMAC_BTCNT_BTCNT_Pos 0 /**< (DMAC_BTCNT) Block Transfer Count Position */
  137. #define DMAC_BTCNT_BTCNT_Msk (_U_(0xFFFF) << DMAC_BTCNT_BTCNT_Pos) /**< (DMAC_BTCNT) Block Transfer Count Mask */
  138. #define DMAC_BTCNT_BTCNT(value) (DMAC_BTCNT_BTCNT_Msk & ((value) << DMAC_BTCNT_BTCNT_Pos))
  139. #define DMAC_BTCNT_MASK _U_(0xFFFF) /**< \deprecated (DMAC_BTCNT) Register MASK (Use DMAC_BTCNT_Msk instead) */
  140. #define DMAC_BTCNT_Msk _U_(0xFFFF) /**< (DMAC_BTCNT) Register Mask */
  141. /* -------- DMAC_SRCADDR : (DMAC Offset: 0x04) (R/W 32) Block Transfer Source Address -------- */
  142. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  143. typedef union {
  144. struct {
  145. uint32_t SRCADDR:32; /**< bit: 0..31 Transfer Source Address */
  146. } bit; /**< Structure used for bit access */
  147. uint32_t reg; /**< Type used for register access */
  148. } DMAC_SRCADDR_Type;
  149. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  150. #define DMAC_SRCADDR_OFFSET (0x04) /**< (DMAC_SRCADDR) Block Transfer Source Address Offset */
  151. #define DMAC_SRCADDR_SRCADDR_Pos 0 /**< (DMAC_SRCADDR) Transfer Source Address Position */
  152. #define DMAC_SRCADDR_SRCADDR_Msk (_U_(0xFFFFFFFF) << DMAC_SRCADDR_SRCADDR_Pos) /**< (DMAC_SRCADDR) Transfer Source Address Mask */
  153. #define DMAC_SRCADDR_SRCADDR(value) (DMAC_SRCADDR_SRCADDR_Msk & ((value) << DMAC_SRCADDR_SRCADDR_Pos))
  154. #define DMAC_SRCADDR_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_SRCADDR) Register MASK (Use DMAC_SRCADDR_Msk instead) */
  155. #define DMAC_SRCADDR_Msk _U_(0xFFFFFFFF) /**< (DMAC_SRCADDR) Register Mask */
  156. /* -------- DMAC_DSTADDR : (DMAC Offset: 0x08) (R/W 32) Block Transfer Destination Address -------- */
  157. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  158. typedef union {
  159. struct {
  160. uint32_t DSTADDR:32; /**< bit: 0..31 Transfer Destination Address */
  161. } bit; /**< Structure used for bit access */
  162. uint32_t reg; /**< Type used for register access */
  163. } DMAC_DSTADDR_Type;
  164. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  165. #define DMAC_DSTADDR_OFFSET (0x08) /**< (DMAC_DSTADDR) Block Transfer Destination Address Offset */
  166. #define DMAC_DSTADDR_DSTADDR_Pos 0 /**< (DMAC_DSTADDR) Transfer Destination Address Position */
  167. #define DMAC_DSTADDR_DSTADDR_Msk (_U_(0xFFFFFFFF) << DMAC_DSTADDR_DSTADDR_Pos) /**< (DMAC_DSTADDR) Transfer Destination Address Mask */
  168. #define DMAC_DSTADDR_DSTADDR(value) (DMAC_DSTADDR_DSTADDR_Msk & ((value) << DMAC_DSTADDR_DSTADDR_Pos))
  169. #define DMAC_DSTADDR_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_DSTADDR) Register MASK (Use DMAC_DSTADDR_Msk instead) */
  170. #define DMAC_DSTADDR_Msk _U_(0xFFFFFFFF) /**< (DMAC_DSTADDR) Register Mask */
  171. /* -------- DMAC_DESCADDR : (DMAC Offset: 0x0c) (R/W 32) Next Descriptor Address -------- */
  172. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  173. typedef union {
  174. struct {
  175. uint32_t DESCADDR:32; /**< bit: 0..31 Next Descriptor Address */
  176. } bit; /**< Structure used for bit access */
  177. uint32_t reg; /**< Type used for register access */
  178. } DMAC_DESCADDR_Type;
  179. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  180. #define DMAC_DESCADDR_OFFSET (0x0C) /**< (DMAC_DESCADDR) Next Descriptor Address Offset */
  181. #define DMAC_DESCADDR_DESCADDR_Pos 0 /**< (DMAC_DESCADDR) Next Descriptor Address Position */
  182. #define DMAC_DESCADDR_DESCADDR_Msk (_U_(0xFFFFFFFF) << DMAC_DESCADDR_DESCADDR_Pos) /**< (DMAC_DESCADDR) Next Descriptor Address Mask */
  183. #define DMAC_DESCADDR_DESCADDR(value) (DMAC_DESCADDR_DESCADDR_Msk & ((value) << DMAC_DESCADDR_DESCADDR_Pos))
  184. #define DMAC_DESCADDR_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_DESCADDR) Register MASK (Use DMAC_DESCADDR_Msk instead) */
  185. #define DMAC_DESCADDR_Msk _U_(0xFFFFFFFF) /**< (DMAC_DESCADDR) Register Mask */
  186. /* -------- DMAC_CTRL : (DMAC Offset: 0x00) (R/W 16) Control -------- */
  187. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  188. typedef union {
  189. struct {
  190. uint16_t SWRST:1; /**< bit: 0 Software Reset */
  191. uint16_t DMAENABLE:1; /**< bit: 1 DMA Enable */
  192. uint16_t CRCENABLE:1; /**< bit: 2 CRC Enable */
  193. uint16_t :5; /**< bit: 3..7 Reserved */
  194. uint16_t LVLEN0:1; /**< bit: 8 Priority Level 0 Enable */
  195. uint16_t LVLEN1:1; /**< bit: 9 Priority Level 1 Enable */
  196. uint16_t LVLEN2:1; /**< bit: 10 Priority Level 2 Enable */
  197. uint16_t LVLEN3:1; /**< bit: 11 Priority Level 3 Enable */
  198. uint16_t :4; /**< bit: 12..15 Reserved */
  199. } bit; /**< Structure used for bit access */
  200. struct {
  201. uint16_t :8; /**< bit: 0..7 Reserved */
  202. uint16_t LVLEN:4; /**< bit: 8..11 Priority Level 3 Enable */
  203. uint16_t :4; /**< bit: 12..15 Reserved */
  204. } vec; /**< Structure used for vec access */
  205. uint16_t reg; /**< Type used for register access */
  206. } DMAC_CTRL_Type;
  207. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  208. #define DMAC_CTRL_OFFSET (0x00) /**< (DMAC_CTRL) Control Offset */
  209. #define DMAC_CTRL_RESETVALUE _U_(0x00) /**< (DMAC_CTRL) Control Reset Value */
  210. #define DMAC_CTRL_SWRST_Pos 0 /**< (DMAC_CTRL) Software Reset Position */
  211. #define DMAC_CTRL_SWRST_Msk (_U_(0x1) << DMAC_CTRL_SWRST_Pos) /**< (DMAC_CTRL) Software Reset Mask */
  212. #define DMAC_CTRL_SWRST DMAC_CTRL_SWRST_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_SWRST_Msk instead */
  213. #define DMAC_CTRL_DMAENABLE_Pos 1 /**< (DMAC_CTRL) DMA Enable Position */
  214. #define DMAC_CTRL_DMAENABLE_Msk (_U_(0x1) << DMAC_CTRL_DMAENABLE_Pos) /**< (DMAC_CTRL) DMA Enable Mask */
  215. #define DMAC_CTRL_DMAENABLE DMAC_CTRL_DMAENABLE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_DMAENABLE_Msk instead */
  216. #define DMAC_CTRL_CRCENABLE_Pos 2 /**< (DMAC_CTRL) CRC Enable Position */
  217. #define DMAC_CTRL_CRCENABLE_Msk (_U_(0x1) << DMAC_CTRL_CRCENABLE_Pos) /**< (DMAC_CTRL) CRC Enable Mask */
  218. #define DMAC_CTRL_CRCENABLE DMAC_CTRL_CRCENABLE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_CRCENABLE_Msk instead */
  219. #define DMAC_CTRL_LVLEN0_Pos 8 /**< (DMAC_CTRL) Priority Level 0 Enable Position */
  220. #define DMAC_CTRL_LVLEN0_Msk (_U_(0x1) << DMAC_CTRL_LVLEN0_Pos) /**< (DMAC_CTRL) Priority Level 0 Enable Mask */
  221. #define DMAC_CTRL_LVLEN0 DMAC_CTRL_LVLEN0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_LVLEN0_Msk instead */
  222. #define DMAC_CTRL_LVLEN1_Pos 9 /**< (DMAC_CTRL) Priority Level 1 Enable Position */
  223. #define DMAC_CTRL_LVLEN1_Msk (_U_(0x1) << DMAC_CTRL_LVLEN1_Pos) /**< (DMAC_CTRL) Priority Level 1 Enable Mask */
  224. #define DMAC_CTRL_LVLEN1 DMAC_CTRL_LVLEN1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_LVLEN1_Msk instead */
  225. #define DMAC_CTRL_LVLEN2_Pos 10 /**< (DMAC_CTRL) Priority Level 2 Enable Position */
  226. #define DMAC_CTRL_LVLEN2_Msk (_U_(0x1) << DMAC_CTRL_LVLEN2_Pos) /**< (DMAC_CTRL) Priority Level 2 Enable Mask */
  227. #define DMAC_CTRL_LVLEN2 DMAC_CTRL_LVLEN2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_LVLEN2_Msk instead */
  228. #define DMAC_CTRL_LVLEN3_Pos 11 /**< (DMAC_CTRL) Priority Level 3 Enable Position */
  229. #define DMAC_CTRL_LVLEN3_Msk (_U_(0x1) << DMAC_CTRL_LVLEN3_Pos) /**< (DMAC_CTRL) Priority Level 3 Enable Mask */
  230. #define DMAC_CTRL_LVLEN3 DMAC_CTRL_LVLEN3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CTRL_LVLEN3_Msk instead */
  231. #define DMAC_CTRL_MASK _U_(0xF07) /**< \deprecated (DMAC_CTRL) Register MASK (Use DMAC_CTRL_Msk instead) */
  232. #define DMAC_CTRL_Msk _U_(0xF07) /**< (DMAC_CTRL) Register Mask */
  233. #define DMAC_CTRL_LVLEN_Pos 8 /**< (DMAC_CTRL Position) Priority Level 3 Enable */
  234. #define DMAC_CTRL_LVLEN_Msk (_U_(0xF) << DMAC_CTRL_LVLEN_Pos) /**< (DMAC_CTRL Mask) LVLEN */
  235. #define DMAC_CTRL_LVLEN(value) (DMAC_CTRL_LVLEN_Msk & ((value) << DMAC_CTRL_LVLEN_Pos))
  236. /* -------- DMAC_CRCCTRL : (DMAC Offset: 0x02) (R/W 16) CRC Control -------- */
  237. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  238. typedef union {
  239. struct {
  240. uint16_t CRCBEATSIZE:2; /**< bit: 0..1 CRC Beat Size */
  241. uint16_t CRCPOLY:2; /**< bit: 2..3 CRC Polynomial Type */
  242. uint16_t :4; /**< bit: 4..7 Reserved */
  243. uint16_t CRCSRC:6; /**< bit: 8..13 CRC Input Source */
  244. uint16_t :2; /**< bit: 14..15 Reserved */
  245. } bit; /**< Structure used for bit access */
  246. uint16_t reg; /**< Type used for register access */
  247. } DMAC_CRCCTRL_Type;
  248. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  249. #define DMAC_CRCCTRL_OFFSET (0x02) /**< (DMAC_CRCCTRL) CRC Control Offset */
  250. #define DMAC_CRCCTRL_RESETVALUE _U_(0x00) /**< (DMAC_CRCCTRL) CRC Control Reset Value */
  251. #define DMAC_CRCCTRL_CRCBEATSIZE_Pos 0 /**< (DMAC_CRCCTRL) CRC Beat Size Position */
  252. #define DMAC_CRCCTRL_CRCBEATSIZE_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCBEATSIZE_Pos) /**< (DMAC_CRCCTRL) CRC Beat Size Mask */
  253. #define DMAC_CRCCTRL_CRCBEATSIZE(value) (DMAC_CRCCTRL_CRCBEATSIZE_Msk & ((value) << DMAC_CRCCTRL_CRCBEATSIZE_Pos))
  254. #define DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val _U_(0x0) /**< (DMAC_CRCCTRL) 8-bit bus transfer */
  255. #define DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val _U_(0x1) /**< (DMAC_CRCCTRL) 16-bit bus transfer */
  256. #define DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val _U_(0x2) /**< (DMAC_CRCCTRL) 32-bit bus transfer */
  257. #define DMAC_CRCCTRL_CRCBEATSIZE_BYTE (DMAC_CRCCTRL_CRCBEATSIZE_BYTE_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) /**< (DMAC_CRCCTRL) 8-bit bus transfer Position */
  258. #define DMAC_CRCCTRL_CRCBEATSIZE_HWORD (DMAC_CRCCTRL_CRCBEATSIZE_HWORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) /**< (DMAC_CRCCTRL) 16-bit bus transfer Position */
  259. #define DMAC_CRCCTRL_CRCBEATSIZE_WORD (DMAC_CRCCTRL_CRCBEATSIZE_WORD_Val << DMAC_CRCCTRL_CRCBEATSIZE_Pos) /**< (DMAC_CRCCTRL) 32-bit bus transfer Position */
  260. #define DMAC_CRCCTRL_CRCPOLY_Pos 2 /**< (DMAC_CRCCTRL) CRC Polynomial Type Position */
  261. #define DMAC_CRCCTRL_CRCPOLY_Msk (_U_(0x3) << DMAC_CRCCTRL_CRCPOLY_Pos) /**< (DMAC_CRCCTRL) CRC Polynomial Type Mask */
  262. #define DMAC_CRCCTRL_CRCPOLY(value) (DMAC_CRCCTRL_CRCPOLY_Msk & ((value) << DMAC_CRCCTRL_CRCPOLY_Pos))
  263. #define DMAC_CRCCTRL_CRCPOLY_CRC16_Val _U_(0x0) /**< (DMAC_CRCCTRL) CRC-16 (CRC-CCITT) */
  264. #define DMAC_CRCCTRL_CRCPOLY_CRC32_Val _U_(0x1) /**< (DMAC_CRCCTRL) CRC32 (IEEE 802.3) */
  265. #define DMAC_CRCCTRL_CRCPOLY_CRC16 (DMAC_CRCCTRL_CRCPOLY_CRC16_Val << DMAC_CRCCTRL_CRCPOLY_Pos) /**< (DMAC_CRCCTRL) CRC-16 (CRC-CCITT) Position */
  266. #define DMAC_CRCCTRL_CRCPOLY_CRC32 (DMAC_CRCCTRL_CRCPOLY_CRC32_Val << DMAC_CRCCTRL_CRCPOLY_Pos) /**< (DMAC_CRCCTRL) CRC32 (IEEE 802.3) Position */
  267. #define DMAC_CRCCTRL_CRCSRC_Pos 8 /**< (DMAC_CRCCTRL) CRC Input Source Position */
  268. #define DMAC_CRCCTRL_CRCSRC_Msk (_U_(0x3F) << DMAC_CRCCTRL_CRCSRC_Pos) /**< (DMAC_CRCCTRL) CRC Input Source Mask */
  269. #define DMAC_CRCCTRL_CRCSRC(value) (DMAC_CRCCTRL_CRCSRC_Msk & ((value) << DMAC_CRCCTRL_CRCSRC_Pos))
  270. #define DMAC_CRCCTRL_CRCSRC_NOACT_Val _U_(0x0) /**< (DMAC_CRCCTRL) No action */
  271. #define DMAC_CRCCTRL_CRCSRC_IO_Val _U_(0x1) /**< (DMAC_CRCCTRL) I/O interface */
  272. #define DMAC_CRCCTRL_CRCSRC_NOACT (DMAC_CRCCTRL_CRCSRC_NOACT_Val << DMAC_CRCCTRL_CRCSRC_Pos) /**< (DMAC_CRCCTRL) No action Position */
  273. #define DMAC_CRCCTRL_CRCSRC_IO (DMAC_CRCCTRL_CRCSRC_IO_Val << DMAC_CRCCTRL_CRCSRC_Pos) /**< (DMAC_CRCCTRL) I/O interface Position */
  274. #define DMAC_CRCCTRL_MASK _U_(0x3F0F) /**< \deprecated (DMAC_CRCCTRL) Register MASK (Use DMAC_CRCCTRL_Msk instead) */
  275. #define DMAC_CRCCTRL_Msk _U_(0x3F0F) /**< (DMAC_CRCCTRL) Register Mask */
  276. /* -------- DMAC_CRCDATAIN : (DMAC Offset: 0x04) (R/W 32) CRC Data Input -------- */
  277. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  278. typedef union {
  279. struct {
  280. uint32_t CRCDATAIN:32; /**< bit: 0..31 CRC Data Input */
  281. } bit; /**< Structure used for bit access */
  282. uint32_t reg; /**< Type used for register access */
  283. } DMAC_CRCDATAIN_Type;
  284. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  285. #define DMAC_CRCDATAIN_OFFSET (0x04) /**< (DMAC_CRCDATAIN) CRC Data Input Offset */
  286. #define DMAC_CRCDATAIN_RESETVALUE _U_(0x00) /**< (DMAC_CRCDATAIN) CRC Data Input Reset Value */
  287. #define DMAC_CRCDATAIN_CRCDATAIN_Pos 0 /**< (DMAC_CRCDATAIN) CRC Data Input Position */
  288. #define DMAC_CRCDATAIN_CRCDATAIN_Msk (_U_(0xFFFFFFFF) << DMAC_CRCDATAIN_CRCDATAIN_Pos) /**< (DMAC_CRCDATAIN) CRC Data Input Mask */
  289. #define DMAC_CRCDATAIN_CRCDATAIN(value) (DMAC_CRCDATAIN_CRCDATAIN_Msk & ((value) << DMAC_CRCDATAIN_CRCDATAIN_Pos))
  290. #define DMAC_CRCDATAIN_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_CRCDATAIN) Register MASK (Use DMAC_CRCDATAIN_Msk instead) */
  291. #define DMAC_CRCDATAIN_Msk _U_(0xFFFFFFFF) /**< (DMAC_CRCDATAIN) Register Mask */
  292. /* -------- DMAC_CRCCHKSUM : (DMAC Offset: 0x08) (R/W 32) CRC Checksum -------- */
  293. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  294. typedef union {
  295. struct {
  296. uint32_t CRCCHKSUM:32; /**< bit: 0..31 CRC Checksum */
  297. } bit; /**< Structure used for bit access */
  298. uint32_t reg; /**< Type used for register access */
  299. } DMAC_CRCCHKSUM_Type;
  300. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  301. #define DMAC_CRCCHKSUM_OFFSET (0x08) /**< (DMAC_CRCCHKSUM) CRC Checksum Offset */
  302. #define DMAC_CRCCHKSUM_RESETVALUE _U_(0x00) /**< (DMAC_CRCCHKSUM) CRC Checksum Reset Value */
  303. #define DMAC_CRCCHKSUM_CRCCHKSUM_Pos 0 /**< (DMAC_CRCCHKSUM) CRC Checksum Position */
  304. #define DMAC_CRCCHKSUM_CRCCHKSUM_Msk (_U_(0xFFFFFFFF) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos) /**< (DMAC_CRCCHKSUM) CRC Checksum Mask */
  305. #define DMAC_CRCCHKSUM_CRCCHKSUM(value) (DMAC_CRCCHKSUM_CRCCHKSUM_Msk & ((value) << DMAC_CRCCHKSUM_CRCCHKSUM_Pos))
  306. #define DMAC_CRCCHKSUM_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_CRCCHKSUM) Register MASK (Use DMAC_CRCCHKSUM_Msk instead) */
  307. #define DMAC_CRCCHKSUM_Msk _U_(0xFFFFFFFF) /**< (DMAC_CRCCHKSUM) Register Mask */
  308. /* -------- DMAC_CRCSTATUS : (DMAC Offset: 0x0c) (R/W 8) CRC Status -------- */
  309. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  310. typedef union {
  311. struct {
  312. uint8_t CRCBUSY:1; /**< bit: 0 CRC Module Busy */
  313. uint8_t CRCZERO:1; /**< bit: 1 CRC Zero */
  314. uint8_t :6; /**< bit: 2..7 Reserved */
  315. } bit; /**< Structure used for bit access */
  316. uint8_t reg; /**< Type used for register access */
  317. } DMAC_CRCSTATUS_Type;
  318. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  319. #define DMAC_CRCSTATUS_OFFSET (0x0C) /**< (DMAC_CRCSTATUS) CRC Status Offset */
  320. #define DMAC_CRCSTATUS_RESETVALUE _U_(0x00) /**< (DMAC_CRCSTATUS) CRC Status Reset Value */
  321. #define DMAC_CRCSTATUS_CRCBUSY_Pos 0 /**< (DMAC_CRCSTATUS) CRC Module Busy Position */
  322. #define DMAC_CRCSTATUS_CRCBUSY_Msk (_U_(0x1) << DMAC_CRCSTATUS_CRCBUSY_Pos) /**< (DMAC_CRCSTATUS) CRC Module Busy Mask */
  323. #define DMAC_CRCSTATUS_CRCBUSY DMAC_CRCSTATUS_CRCBUSY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CRCSTATUS_CRCBUSY_Msk instead */
  324. #define DMAC_CRCSTATUS_CRCZERO_Pos 1 /**< (DMAC_CRCSTATUS) CRC Zero Position */
  325. #define DMAC_CRCSTATUS_CRCZERO_Msk (_U_(0x1) << DMAC_CRCSTATUS_CRCZERO_Pos) /**< (DMAC_CRCSTATUS) CRC Zero Mask */
  326. #define DMAC_CRCSTATUS_CRCZERO DMAC_CRCSTATUS_CRCZERO_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CRCSTATUS_CRCZERO_Msk instead */
  327. #define DMAC_CRCSTATUS_MASK _U_(0x03) /**< \deprecated (DMAC_CRCSTATUS) Register MASK (Use DMAC_CRCSTATUS_Msk instead) */
  328. #define DMAC_CRCSTATUS_Msk _U_(0x03) /**< (DMAC_CRCSTATUS) Register Mask */
  329. /* -------- DMAC_DBGCTRL : (DMAC Offset: 0x0d) (R/W 8) Debug Control -------- */
  330. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  331. typedef union {
  332. struct {
  333. uint8_t DBGRUN:1; /**< bit: 0 Debug Run */
  334. uint8_t :7; /**< bit: 1..7 Reserved */
  335. } bit; /**< Structure used for bit access */
  336. uint8_t reg; /**< Type used for register access */
  337. } DMAC_DBGCTRL_Type;
  338. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  339. #define DMAC_DBGCTRL_OFFSET (0x0D) /**< (DMAC_DBGCTRL) Debug Control Offset */
  340. #define DMAC_DBGCTRL_RESETVALUE _U_(0x00) /**< (DMAC_DBGCTRL) Debug Control Reset Value */
  341. #define DMAC_DBGCTRL_DBGRUN_Pos 0 /**< (DMAC_DBGCTRL) Debug Run Position */
  342. #define DMAC_DBGCTRL_DBGRUN_Msk (_U_(0x1) << DMAC_DBGCTRL_DBGRUN_Pos) /**< (DMAC_DBGCTRL) Debug Run Mask */
  343. #define DMAC_DBGCTRL_DBGRUN DMAC_DBGCTRL_DBGRUN_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_DBGCTRL_DBGRUN_Msk instead */
  344. #define DMAC_DBGCTRL_MASK _U_(0x01) /**< \deprecated (DMAC_DBGCTRL) Register MASK (Use DMAC_DBGCTRL_Msk instead) */
  345. #define DMAC_DBGCTRL_Msk _U_(0x01) /**< (DMAC_DBGCTRL) Register Mask */
  346. /* -------- DMAC_QOSCTRL : (DMAC Offset: 0x0e) (R/W 8) QOS Control -------- */
  347. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  348. typedef union {
  349. struct {
  350. uint8_t WRBQOS:2; /**< bit: 0..1 Write-Back Quality of Service */
  351. uint8_t FQOS:2; /**< bit: 2..3 Fetch Quality of Service */
  352. uint8_t DQOS:2; /**< bit: 4..5 Data Transfer Quality of Service */
  353. uint8_t :2; /**< bit: 6..7 Reserved */
  354. } bit; /**< Structure used for bit access */
  355. uint8_t reg; /**< Type used for register access */
  356. } DMAC_QOSCTRL_Type;
  357. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  358. #define DMAC_QOSCTRL_OFFSET (0x0E) /**< (DMAC_QOSCTRL) QOS Control Offset */
  359. #define DMAC_QOSCTRL_RESETVALUE _U_(0x2A) /**< (DMAC_QOSCTRL) QOS Control Reset Value */
  360. #define DMAC_QOSCTRL_WRBQOS_Pos 0 /**< (DMAC_QOSCTRL) Write-Back Quality of Service Position */
  361. #define DMAC_QOSCTRL_WRBQOS_Msk (_U_(0x3) << DMAC_QOSCTRL_WRBQOS_Pos) /**< (DMAC_QOSCTRL) Write-Back Quality of Service Mask */
  362. #define DMAC_QOSCTRL_WRBQOS(value) (DMAC_QOSCTRL_WRBQOS_Msk & ((value) << DMAC_QOSCTRL_WRBQOS_Pos))
  363. #define DMAC_QOSCTRL_WRBQOS_DISABLE_Val _U_(0x0) /**< (DMAC_QOSCTRL) Background (no sensitive operation) */
  364. #define DMAC_QOSCTRL_WRBQOS_LOW_Val _U_(0x1) /**< (DMAC_QOSCTRL) Sensitive Bandwidth */
  365. #define DMAC_QOSCTRL_WRBQOS_MEDIUM_Val _U_(0x2) /**< (DMAC_QOSCTRL) Sensitive Latency */
  366. #define DMAC_QOSCTRL_WRBQOS_HIGH_Val _U_(0x3) /**< (DMAC_QOSCTRL) Critical Latency */
  367. #define DMAC_QOSCTRL_WRBQOS_DISABLE (DMAC_QOSCTRL_WRBQOS_DISABLE_Val << DMAC_QOSCTRL_WRBQOS_Pos) /**< (DMAC_QOSCTRL) Background (no sensitive operation) Position */
  368. #define DMAC_QOSCTRL_WRBQOS_LOW (DMAC_QOSCTRL_WRBQOS_LOW_Val << DMAC_QOSCTRL_WRBQOS_Pos) /**< (DMAC_QOSCTRL) Sensitive Bandwidth Position */
  369. #define DMAC_QOSCTRL_WRBQOS_MEDIUM (DMAC_QOSCTRL_WRBQOS_MEDIUM_Val << DMAC_QOSCTRL_WRBQOS_Pos) /**< (DMAC_QOSCTRL) Sensitive Latency Position */
  370. #define DMAC_QOSCTRL_WRBQOS_HIGH (DMAC_QOSCTRL_WRBQOS_HIGH_Val << DMAC_QOSCTRL_WRBQOS_Pos) /**< (DMAC_QOSCTRL) Critical Latency Position */
  371. #define DMAC_QOSCTRL_FQOS_Pos 2 /**< (DMAC_QOSCTRL) Fetch Quality of Service Position */
  372. #define DMAC_QOSCTRL_FQOS_Msk (_U_(0x3) << DMAC_QOSCTRL_FQOS_Pos) /**< (DMAC_QOSCTRL) Fetch Quality of Service Mask */
  373. #define DMAC_QOSCTRL_FQOS(value) (DMAC_QOSCTRL_FQOS_Msk & ((value) << DMAC_QOSCTRL_FQOS_Pos))
  374. #define DMAC_QOSCTRL_FQOS_DISABLE_Val _U_(0x0) /**< (DMAC_QOSCTRL) Background (no sensitive operation) */
  375. #define DMAC_QOSCTRL_FQOS_LOW_Val _U_(0x1) /**< (DMAC_QOSCTRL) Sensitive Bandwidth */
  376. #define DMAC_QOSCTRL_FQOS_MEDIUM_Val _U_(0x2) /**< (DMAC_QOSCTRL) Sensitive Latency */
  377. #define DMAC_QOSCTRL_FQOS_HIGH_Val _U_(0x3) /**< (DMAC_QOSCTRL) Critical Latency */
  378. #define DMAC_QOSCTRL_FQOS_DISABLE (DMAC_QOSCTRL_FQOS_DISABLE_Val << DMAC_QOSCTRL_FQOS_Pos) /**< (DMAC_QOSCTRL) Background (no sensitive operation) Position */
  379. #define DMAC_QOSCTRL_FQOS_LOW (DMAC_QOSCTRL_FQOS_LOW_Val << DMAC_QOSCTRL_FQOS_Pos) /**< (DMAC_QOSCTRL) Sensitive Bandwidth Position */
  380. #define DMAC_QOSCTRL_FQOS_MEDIUM (DMAC_QOSCTRL_FQOS_MEDIUM_Val << DMAC_QOSCTRL_FQOS_Pos) /**< (DMAC_QOSCTRL) Sensitive Latency Position */
  381. #define DMAC_QOSCTRL_FQOS_HIGH (DMAC_QOSCTRL_FQOS_HIGH_Val << DMAC_QOSCTRL_FQOS_Pos) /**< (DMAC_QOSCTRL) Critical Latency Position */
  382. #define DMAC_QOSCTRL_DQOS_Pos 4 /**< (DMAC_QOSCTRL) Data Transfer Quality of Service Position */
  383. #define DMAC_QOSCTRL_DQOS_Msk (_U_(0x3) << DMAC_QOSCTRL_DQOS_Pos) /**< (DMAC_QOSCTRL) Data Transfer Quality of Service Mask */
  384. #define DMAC_QOSCTRL_DQOS(value) (DMAC_QOSCTRL_DQOS_Msk & ((value) << DMAC_QOSCTRL_DQOS_Pos))
  385. #define DMAC_QOSCTRL_DQOS_DISABLE_Val _U_(0x0) /**< (DMAC_QOSCTRL) Background (no sensitive operation) */
  386. #define DMAC_QOSCTRL_DQOS_LOW_Val _U_(0x1) /**< (DMAC_QOSCTRL) Sensitive Bandwidth */
  387. #define DMAC_QOSCTRL_DQOS_MEDIUM_Val _U_(0x2) /**< (DMAC_QOSCTRL) Sensitive Latency */
  388. #define DMAC_QOSCTRL_DQOS_HIGH_Val _U_(0x3) /**< (DMAC_QOSCTRL) Critical Latency */
  389. #define DMAC_QOSCTRL_DQOS_DISABLE (DMAC_QOSCTRL_DQOS_DISABLE_Val << DMAC_QOSCTRL_DQOS_Pos) /**< (DMAC_QOSCTRL) Background (no sensitive operation) Position */
  390. #define DMAC_QOSCTRL_DQOS_LOW (DMAC_QOSCTRL_DQOS_LOW_Val << DMAC_QOSCTRL_DQOS_Pos) /**< (DMAC_QOSCTRL) Sensitive Bandwidth Position */
  391. #define DMAC_QOSCTRL_DQOS_MEDIUM (DMAC_QOSCTRL_DQOS_MEDIUM_Val << DMAC_QOSCTRL_DQOS_Pos) /**< (DMAC_QOSCTRL) Sensitive Latency Position */
  392. #define DMAC_QOSCTRL_DQOS_HIGH (DMAC_QOSCTRL_DQOS_HIGH_Val << DMAC_QOSCTRL_DQOS_Pos) /**< (DMAC_QOSCTRL) Critical Latency Position */
  393. #define DMAC_QOSCTRL_MASK _U_(0x3F) /**< \deprecated (DMAC_QOSCTRL) Register MASK (Use DMAC_QOSCTRL_Msk instead) */
  394. #define DMAC_QOSCTRL_Msk _U_(0x3F) /**< (DMAC_QOSCTRL) Register Mask */
  395. /* -------- DMAC_SWTRIGCTRL : (DMAC Offset: 0x10) (R/W 32) Software Trigger Control -------- */
  396. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  397. typedef union {
  398. struct {
  399. uint32_t SWTRIG0:1; /**< bit: 0 Channel 0 Software Trigger */
  400. uint32_t SWTRIG1:1; /**< bit: 1 Channel 1 Software Trigger */
  401. uint32_t SWTRIG2:1; /**< bit: 2 Channel 2 Software Trigger */
  402. uint32_t SWTRIG3:1; /**< bit: 3 Channel 3 Software Trigger */
  403. uint32_t SWTRIG4:1; /**< bit: 4 Channel 4 Software Trigger */
  404. uint32_t SWTRIG5:1; /**< bit: 5 Channel 5 Software Trigger */
  405. uint32_t SWTRIG6:1; /**< bit: 6 Channel 6 Software Trigger */
  406. uint32_t SWTRIG7:1; /**< bit: 7 Channel 7 Software Trigger */
  407. uint32_t :24; /**< bit: 8..31 Reserved */
  408. } bit; /**< Structure used for bit access */
  409. struct {
  410. uint32_t SWTRIG:8; /**< bit: 0..7 Channel 7 Software Trigger */
  411. uint32_t :24; /**< bit: 8..31 Reserved */
  412. } vec; /**< Structure used for vec access */
  413. uint32_t reg; /**< Type used for register access */
  414. } DMAC_SWTRIGCTRL_Type;
  415. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  416. #define DMAC_SWTRIGCTRL_OFFSET (0x10) /**< (DMAC_SWTRIGCTRL) Software Trigger Control Offset */
  417. #define DMAC_SWTRIGCTRL_RESETVALUE _U_(0x00) /**< (DMAC_SWTRIGCTRL) Software Trigger Control Reset Value */
  418. #define DMAC_SWTRIGCTRL_SWTRIG0_Pos 0 /**< (DMAC_SWTRIGCTRL) Channel 0 Software Trigger Position */
  419. #define DMAC_SWTRIGCTRL_SWTRIG0_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG0_Pos) /**< (DMAC_SWTRIGCTRL) Channel 0 Software Trigger Mask */
  420. #define DMAC_SWTRIGCTRL_SWTRIG0 DMAC_SWTRIGCTRL_SWTRIG0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG0_Msk instead */
  421. #define DMAC_SWTRIGCTRL_SWTRIG1_Pos 1 /**< (DMAC_SWTRIGCTRL) Channel 1 Software Trigger Position */
  422. #define DMAC_SWTRIGCTRL_SWTRIG1_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG1_Pos) /**< (DMAC_SWTRIGCTRL) Channel 1 Software Trigger Mask */
  423. #define DMAC_SWTRIGCTRL_SWTRIG1 DMAC_SWTRIGCTRL_SWTRIG1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG1_Msk instead */
  424. #define DMAC_SWTRIGCTRL_SWTRIG2_Pos 2 /**< (DMAC_SWTRIGCTRL) Channel 2 Software Trigger Position */
  425. #define DMAC_SWTRIGCTRL_SWTRIG2_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG2_Pos) /**< (DMAC_SWTRIGCTRL) Channel 2 Software Trigger Mask */
  426. #define DMAC_SWTRIGCTRL_SWTRIG2 DMAC_SWTRIGCTRL_SWTRIG2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG2_Msk instead */
  427. #define DMAC_SWTRIGCTRL_SWTRIG3_Pos 3 /**< (DMAC_SWTRIGCTRL) Channel 3 Software Trigger Position */
  428. #define DMAC_SWTRIGCTRL_SWTRIG3_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG3_Pos) /**< (DMAC_SWTRIGCTRL) Channel 3 Software Trigger Mask */
  429. #define DMAC_SWTRIGCTRL_SWTRIG3 DMAC_SWTRIGCTRL_SWTRIG3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG3_Msk instead */
  430. #define DMAC_SWTRIGCTRL_SWTRIG4_Pos 4 /**< (DMAC_SWTRIGCTRL) Channel 4 Software Trigger Position */
  431. #define DMAC_SWTRIGCTRL_SWTRIG4_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG4_Pos) /**< (DMAC_SWTRIGCTRL) Channel 4 Software Trigger Mask */
  432. #define DMAC_SWTRIGCTRL_SWTRIG4 DMAC_SWTRIGCTRL_SWTRIG4_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG4_Msk instead */
  433. #define DMAC_SWTRIGCTRL_SWTRIG5_Pos 5 /**< (DMAC_SWTRIGCTRL) Channel 5 Software Trigger Position */
  434. #define DMAC_SWTRIGCTRL_SWTRIG5_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG5_Pos) /**< (DMAC_SWTRIGCTRL) Channel 5 Software Trigger Mask */
  435. #define DMAC_SWTRIGCTRL_SWTRIG5 DMAC_SWTRIGCTRL_SWTRIG5_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG5_Msk instead */
  436. #define DMAC_SWTRIGCTRL_SWTRIG6_Pos 6 /**< (DMAC_SWTRIGCTRL) Channel 6 Software Trigger Position */
  437. #define DMAC_SWTRIGCTRL_SWTRIG6_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG6_Pos) /**< (DMAC_SWTRIGCTRL) Channel 6 Software Trigger Mask */
  438. #define DMAC_SWTRIGCTRL_SWTRIG6 DMAC_SWTRIGCTRL_SWTRIG6_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG6_Msk instead */
  439. #define DMAC_SWTRIGCTRL_SWTRIG7_Pos 7 /**< (DMAC_SWTRIGCTRL) Channel 7 Software Trigger Position */
  440. #define DMAC_SWTRIGCTRL_SWTRIG7_Msk (_U_(0x1) << DMAC_SWTRIGCTRL_SWTRIG7_Pos) /**< (DMAC_SWTRIGCTRL) Channel 7 Software Trigger Mask */
  441. #define DMAC_SWTRIGCTRL_SWTRIG7 DMAC_SWTRIGCTRL_SWTRIG7_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_SWTRIGCTRL_SWTRIG7_Msk instead */
  442. #define DMAC_SWTRIGCTRL_MASK _U_(0xFF) /**< \deprecated (DMAC_SWTRIGCTRL) Register MASK (Use DMAC_SWTRIGCTRL_Msk instead) */
  443. #define DMAC_SWTRIGCTRL_Msk _U_(0xFF) /**< (DMAC_SWTRIGCTRL) Register Mask */
  444. #define DMAC_SWTRIGCTRL_SWTRIG_Pos 0 /**< (DMAC_SWTRIGCTRL Position) Channel 7 Software Trigger */
  445. #define DMAC_SWTRIGCTRL_SWTRIG_Msk (_U_(0xFF) << DMAC_SWTRIGCTRL_SWTRIG_Pos) /**< (DMAC_SWTRIGCTRL Mask) SWTRIG */
  446. #define DMAC_SWTRIGCTRL_SWTRIG(value) (DMAC_SWTRIGCTRL_SWTRIG_Msk & ((value) << DMAC_SWTRIGCTRL_SWTRIG_Pos))
  447. /* -------- DMAC_PRICTRL0 : (DMAC Offset: 0x14) (R/W 32) Priority Control 0 -------- */
  448. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  449. typedef union {
  450. struct {
  451. uint32_t LVLPRI0:3; /**< bit: 0..2 Level 0 Channel Priority Number */
  452. uint32_t :4; /**< bit: 3..6 Reserved */
  453. uint32_t RRLVLEN0:1; /**< bit: 7 Level 0 Round-Robin Scheduling Enable */
  454. uint32_t LVLPRI1:3; /**< bit: 8..10 Level 1 Channel Priority Number */
  455. uint32_t :4; /**< bit: 11..14 Reserved */
  456. uint32_t RRLVLEN1:1; /**< bit: 15 Level 1 Round-Robin Scheduling Enable */
  457. uint32_t LVLPRI2:3; /**< bit: 16..18 Level 2 Channel Priority Number */
  458. uint32_t :4; /**< bit: 19..22 Reserved */
  459. uint32_t RRLVLEN2:1; /**< bit: 23 Level 2 Round-Robin Scheduling Enable */
  460. uint32_t LVLPRI3:3; /**< bit: 24..26 Level 3 Channel Priority Number */
  461. uint32_t :4; /**< bit: 27..30 Reserved */
  462. uint32_t RRLVLEN3:1; /**< bit: 31 Level 3 Round-Robin Scheduling Enable */
  463. } bit; /**< Structure used for bit access */
  464. uint32_t reg; /**< Type used for register access */
  465. } DMAC_PRICTRL0_Type;
  466. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  467. #define DMAC_PRICTRL0_OFFSET (0x14) /**< (DMAC_PRICTRL0) Priority Control 0 Offset */
  468. #define DMAC_PRICTRL0_RESETVALUE _U_(0x00) /**< (DMAC_PRICTRL0) Priority Control 0 Reset Value */
  469. #define DMAC_PRICTRL0_LVLPRI0_Pos 0 /**< (DMAC_PRICTRL0) Level 0 Channel Priority Number Position */
  470. #define DMAC_PRICTRL0_LVLPRI0_Msk (_U_(0x7) << DMAC_PRICTRL0_LVLPRI0_Pos) /**< (DMAC_PRICTRL0) Level 0 Channel Priority Number Mask */
  471. #define DMAC_PRICTRL0_LVLPRI0(value) (DMAC_PRICTRL0_LVLPRI0_Msk & ((value) << DMAC_PRICTRL0_LVLPRI0_Pos))
  472. #define DMAC_PRICTRL0_RRLVLEN0_Pos 7 /**< (DMAC_PRICTRL0) Level 0 Round-Robin Scheduling Enable Position */
  473. #define DMAC_PRICTRL0_RRLVLEN0_Msk (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN0_Pos) /**< (DMAC_PRICTRL0) Level 0 Round-Robin Scheduling Enable Mask */
  474. #define DMAC_PRICTRL0_RRLVLEN0 DMAC_PRICTRL0_RRLVLEN0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PRICTRL0_RRLVLEN0_Msk instead */
  475. #define DMAC_PRICTRL0_LVLPRI1_Pos 8 /**< (DMAC_PRICTRL0) Level 1 Channel Priority Number Position */
  476. #define DMAC_PRICTRL0_LVLPRI1_Msk (_U_(0x7) << DMAC_PRICTRL0_LVLPRI1_Pos) /**< (DMAC_PRICTRL0) Level 1 Channel Priority Number Mask */
  477. #define DMAC_PRICTRL0_LVLPRI1(value) (DMAC_PRICTRL0_LVLPRI1_Msk & ((value) << DMAC_PRICTRL0_LVLPRI1_Pos))
  478. #define DMAC_PRICTRL0_RRLVLEN1_Pos 15 /**< (DMAC_PRICTRL0) Level 1 Round-Robin Scheduling Enable Position */
  479. #define DMAC_PRICTRL0_RRLVLEN1_Msk (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN1_Pos) /**< (DMAC_PRICTRL0) Level 1 Round-Robin Scheduling Enable Mask */
  480. #define DMAC_PRICTRL0_RRLVLEN1 DMAC_PRICTRL0_RRLVLEN1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PRICTRL0_RRLVLEN1_Msk instead */
  481. #define DMAC_PRICTRL0_LVLPRI2_Pos 16 /**< (DMAC_PRICTRL0) Level 2 Channel Priority Number Position */
  482. #define DMAC_PRICTRL0_LVLPRI2_Msk (_U_(0x7) << DMAC_PRICTRL0_LVLPRI2_Pos) /**< (DMAC_PRICTRL0) Level 2 Channel Priority Number Mask */
  483. #define DMAC_PRICTRL0_LVLPRI2(value) (DMAC_PRICTRL0_LVLPRI2_Msk & ((value) << DMAC_PRICTRL0_LVLPRI2_Pos))
  484. #define DMAC_PRICTRL0_RRLVLEN2_Pos 23 /**< (DMAC_PRICTRL0) Level 2 Round-Robin Scheduling Enable Position */
  485. #define DMAC_PRICTRL0_RRLVLEN2_Msk (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN2_Pos) /**< (DMAC_PRICTRL0) Level 2 Round-Robin Scheduling Enable Mask */
  486. #define DMAC_PRICTRL0_RRLVLEN2 DMAC_PRICTRL0_RRLVLEN2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PRICTRL0_RRLVLEN2_Msk instead */
  487. #define DMAC_PRICTRL0_LVLPRI3_Pos 24 /**< (DMAC_PRICTRL0) Level 3 Channel Priority Number Position */
  488. #define DMAC_PRICTRL0_LVLPRI3_Msk (_U_(0x7) << DMAC_PRICTRL0_LVLPRI3_Pos) /**< (DMAC_PRICTRL0) Level 3 Channel Priority Number Mask */
  489. #define DMAC_PRICTRL0_LVLPRI3(value) (DMAC_PRICTRL0_LVLPRI3_Msk & ((value) << DMAC_PRICTRL0_LVLPRI3_Pos))
  490. #define DMAC_PRICTRL0_RRLVLEN3_Pos 31 /**< (DMAC_PRICTRL0) Level 3 Round-Robin Scheduling Enable Position */
  491. #define DMAC_PRICTRL0_RRLVLEN3_Msk (_U_(0x1) << DMAC_PRICTRL0_RRLVLEN3_Pos) /**< (DMAC_PRICTRL0) Level 3 Round-Robin Scheduling Enable Mask */
  492. #define DMAC_PRICTRL0_RRLVLEN3 DMAC_PRICTRL0_RRLVLEN3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PRICTRL0_RRLVLEN3_Msk instead */
  493. #define DMAC_PRICTRL0_MASK _U_(0x87878787) /**< \deprecated (DMAC_PRICTRL0) Register MASK (Use DMAC_PRICTRL0_Msk instead) */
  494. #define DMAC_PRICTRL0_Msk _U_(0x87878787) /**< (DMAC_PRICTRL0) Register Mask */
  495. /* -------- DMAC_INTPEND : (DMAC Offset: 0x20) (R/W 16) Interrupt Pending -------- */
  496. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  497. typedef union {
  498. struct {
  499. uint16_t ID:3; /**< bit: 0..2 Channel ID */
  500. uint16_t :5; /**< bit: 3..7 Reserved */
  501. uint16_t TERR:1; /**< bit: 8 Transfer Error */
  502. uint16_t TCMPL:1; /**< bit: 9 Transfer Complete */
  503. uint16_t SUSP:1; /**< bit: 10 Channel Suspend */
  504. uint16_t :2; /**< bit: 11..12 Reserved */
  505. uint16_t FERR:1; /**< bit: 13 Fetch Error */
  506. uint16_t BUSY:1; /**< bit: 14 Busy */
  507. uint16_t PEND:1; /**< bit: 15 Pending */
  508. } bit; /**< Structure used for bit access */
  509. uint16_t reg; /**< Type used for register access */
  510. } DMAC_INTPEND_Type;
  511. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  512. #define DMAC_INTPEND_OFFSET (0x20) /**< (DMAC_INTPEND) Interrupt Pending Offset */
  513. #define DMAC_INTPEND_RESETVALUE _U_(0x00) /**< (DMAC_INTPEND) Interrupt Pending Reset Value */
  514. #define DMAC_INTPEND_ID_Pos 0 /**< (DMAC_INTPEND) Channel ID Position */
  515. #define DMAC_INTPEND_ID_Msk (_U_(0x7) << DMAC_INTPEND_ID_Pos) /**< (DMAC_INTPEND) Channel ID Mask */
  516. #define DMAC_INTPEND_ID(value) (DMAC_INTPEND_ID_Msk & ((value) << DMAC_INTPEND_ID_Pos))
  517. #define DMAC_INTPEND_TERR_Pos 8 /**< (DMAC_INTPEND) Transfer Error Position */
  518. #define DMAC_INTPEND_TERR_Msk (_U_(0x1) << DMAC_INTPEND_TERR_Pos) /**< (DMAC_INTPEND) Transfer Error Mask */
  519. #define DMAC_INTPEND_TERR DMAC_INTPEND_TERR_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTPEND_TERR_Msk instead */
  520. #define DMAC_INTPEND_TCMPL_Pos 9 /**< (DMAC_INTPEND) Transfer Complete Position */
  521. #define DMAC_INTPEND_TCMPL_Msk (_U_(0x1) << DMAC_INTPEND_TCMPL_Pos) /**< (DMAC_INTPEND) Transfer Complete Mask */
  522. #define DMAC_INTPEND_TCMPL DMAC_INTPEND_TCMPL_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTPEND_TCMPL_Msk instead */
  523. #define DMAC_INTPEND_SUSP_Pos 10 /**< (DMAC_INTPEND) Channel Suspend Position */
  524. #define DMAC_INTPEND_SUSP_Msk (_U_(0x1) << DMAC_INTPEND_SUSP_Pos) /**< (DMAC_INTPEND) Channel Suspend Mask */
  525. #define DMAC_INTPEND_SUSP DMAC_INTPEND_SUSP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTPEND_SUSP_Msk instead */
  526. #define DMAC_INTPEND_FERR_Pos 13 /**< (DMAC_INTPEND) Fetch Error Position */
  527. #define DMAC_INTPEND_FERR_Msk (_U_(0x1) << DMAC_INTPEND_FERR_Pos) /**< (DMAC_INTPEND) Fetch Error Mask */
  528. #define DMAC_INTPEND_FERR DMAC_INTPEND_FERR_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTPEND_FERR_Msk instead */
  529. #define DMAC_INTPEND_BUSY_Pos 14 /**< (DMAC_INTPEND) Busy Position */
  530. #define DMAC_INTPEND_BUSY_Msk (_U_(0x1) << DMAC_INTPEND_BUSY_Pos) /**< (DMAC_INTPEND) Busy Mask */
  531. #define DMAC_INTPEND_BUSY DMAC_INTPEND_BUSY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTPEND_BUSY_Msk instead */
  532. #define DMAC_INTPEND_PEND_Pos 15 /**< (DMAC_INTPEND) Pending Position */
  533. #define DMAC_INTPEND_PEND_Msk (_U_(0x1) << DMAC_INTPEND_PEND_Pos) /**< (DMAC_INTPEND) Pending Mask */
  534. #define DMAC_INTPEND_PEND DMAC_INTPEND_PEND_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTPEND_PEND_Msk instead */
  535. #define DMAC_INTPEND_MASK _U_(0xE707) /**< \deprecated (DMAC_INTPEND) Register MASK (Use DMAC_INTPEND_Msk instead) */
  536. #define DMAC_INTPEND_Msk _U_(0xE707) /**< (DMAC_INTPEND) Register Mask */
  537. /* -------- DMAC_INTSTATUS : (DMAC Offset: 0x24) (R/ 32) Interrupt Status -------- */
  538. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  539. typedef union {
  540. struct {
  541. uint32_t CHINT0:1; /**< bit: 0 Channel 0 Pending Interrupt */
  542. uint32_t CHINT1:1; /**< bit: 1 Channel 1 Pending Interrupt */
  543. uint32_t CHINT2:1; /**< bit: 2 Channel 2 Pending Interrupt */
  544. uint32_t CHINT3:1; /**< bit: 3 Channel 3 Pending Interrupt */
  545. uint32_t CHINT4:1; /**< bit: 4 Channel 4 Pending Interrupt */
  546. uint32_t CHINT5:1; /**< bit: 5 Channel 5 Pending Interrupt */
  547. uint32_t CHINT6:1; /**< bit: 6 Channel 6 Pending Interrupt */
  548. uint32_t CHINT7:1; /**< bit: 7 Channel 7 Pending Interrupt */
  549. uint32_t :24; /**< bit: 8..31 Reserved */
  550. } bit; /**< Structure used for bit access */
  551. struct {
  552. uint32_t CHINT:8; /**< bit: 0..7 Channel 7 Pending Interrupt */
  553. uint32_t :24; /**< bit: 8..31 Reserved */
  554. } vec; /**< Structure used for vec access */
  555. uint32_t reg; /**< Type used for register access */
  556. } DMAC_INTSTATUS_Type;
  557. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  558. #define DMAC_INTSTATUS_OFFSET (0x24) /**< (DMAC_INTSTATUS) Interrupt Status Offset */
  559. #define DMAC_INTSTATUS_RESETVALUE _U_(0x00) /**< (DMAC_INTSTATUS) Interrupt Status Reset Value */
  560. #define DMAC_INTSTATUS_CHINT0_Pos 0 /**< (DMAC_INTSTATUS) Channel 0 Pending Interrupt Position */
  561. #define DMAC_INTSTATUS_CHINT0_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT0_Pos) /**< (DMAC_INTSTATUS) Channel 0 Pending Interrupt Mask */
  562. #define DMAC_INTSTATUS_CHINT0 DMAC_INTSTATUS_CHINT0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT0_Msk instead */
  563. #define DMAC_INTSTATUS_CHINT1_Pos 1 /**< (DMAC_INTSTATUS) Channel 1 Pending Interrupt Position */
  564. #define DMAC_INTSTATUS_CHINT1_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT1_Pos) /**< (DMAC_INTSTATUS) Channel 1 Pending Interrupt Mask */
  565. #define DMAC_INTSTATUS_CHINT1 DMAC_INTSTATUS_CHINT1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT1_Msk instead */
  566. #define DMAC_INTSTATUS_CHINT2_Pos 2 /**< (DMAC_INTSTATUS) Channel 2 Pending Interrupt Position */
  567. #define DMAC_INTSTATUS_CHINT2_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT2_Pos) /**< (DMAC_INTSTATUS) Channel 2 Pending Interrupt Mask */
  568. #define DMAC_INTSTATUS_CHINT2 DMAC_INTSTATUS_CHINT2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT2_Msk instead */
  569. #define DMAC_INTSTATUS_CHINT3_Pos 3 /**< (DMAC_INTSTATUS) Channel 3 Pending Interrupt Position */
  570. #define DMAC_INTSTATUS_CHINT3_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT3_Pos) /**< (DMAC_INTSTATUS) Channel 3 Pending Interrupt Mask */
  571. #define DMAC_INTSTATUS_CHINT3 DMAC_INTSTATUS_CHINT3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT3_Msk instead */
  572. #define DMAC_INTSTATUS_CHINT4_Pos 4 /**< (DMAC_INTSTATUS) Channel 4 Pending Interrupt Position */
  573. #define DMAC_INTSTATUS_CHINT4_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT4_Pos) /**< (DMAC_INTSTATUS) Channel 4 Pending Interrupt Mask */
  574. #define DMAC_INTSTATUS_CHINT4 DMAC_INTSTATUS_CHINT4_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT4_Msk instead */
  575. #define DMAC_INTSTATUS_CHINT5_Pos 5 /**< (DMAC_INTSTATUS) Channel 5 Pending Interrupt Position */
  576. #define DMAC_INTSTATUS_CHINT5_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT5_Pos) /**< (DMAC_INTSTATUS) Channel 5 Pending Interrupt Mask */
  577. #define DMAC_INTSTATUS_CHINT5 DMAC_INTSTATUS_CHINT5_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT5_Msk instead */
  578. #define DMAC_INTSTATUS_CHINT6_Pos 6 /**< (DMAC_INTSTATUS) Channel 6 Pending Interrupt Position */
  579. #define DMAC_INTSTATUS_CHINT6_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT6_Pos) /**< (DMAC_INTSTATUS) Channel 6 Pending Interrupt Mask */
  580. #define DMAC_INTSTATUS_CHINT6 DMAC_INTSTATUS_CHINT6_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT6_Msk instead */
  581. #define DMAC_INTSTATUS_CHINT7_Pos 7 /**< (DMAC_INTSTATUS) Channel 7 Pending Interrupt Position */
  582. #define DMAC_INTSTATUS_CHINT7_Msk (_U_(0x1) << DMAC_INTSTATUS_CHINT7_Pos) /**< (DMAC_INTSTATUS) Channel 7 Pending Interrupt Mask */
  583. #define DMAC_INTSTATUS_CHINT7 DMAC_INTSTATUS_CHINT7_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_INTSTATUS_CHINT7_Msk instead */
  584. #define DMAC_INTSTATUS_MASK _U_(0xFF) /**< \deprecated (DMAC_INTSTATUS) Register MASK (Use DMAC_INTSTATUS_Msk instead) */
  585. #define DMAC_INTSTATUS_Msk _U_(0xFF) /**< (DMAC_INTSTATUS) Register Mask */
  586. #define DMAC_INTSTATUS_CHINT_Pos 0 /**< (DMAC_INTSTATUS Position) Channel 7 Pending Interrupt */
  587. #define DMAC_INTSTATUS_CHINT_Msk (_U_(0xFF) << DMAC_INTSTATUS_CHINT_Pos) /**< (DMAC_INTSTATUS Mask) CHINT */
  588. #define DMAC_INTSTATUS_CHINT(value) (DMAC_INTSTATUS_CHINT_Msk & ((value) << DMAC_INTSTATUS_CHINT_Pos))
  589. /* -------- DMAC_BUSYCH : (DMAC Offset: 0x28) (R/ 32) Busy Channels -------- */
  590. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  591. typedef union {
  592. struct {
  593. uint32_t BUSYCH0:1; /**< bit: 0 Busy Channel 0 */
  594. uint32_t BUSYCH1:1; /**< bit: 1 Busy Channel 1 */
  595. uint32_t BUSYCH2:1; /**< bit: 2 Busy Channel 2 */
  596. uint32_t BUSYCH3:1; /**< bit: 3 Busy Channel 3 */
  597. uint32_t BUSYCH4:1; /**< bit: 4 Busy Channel 4 */
  598. uint32_t BUSYCH5:1; /**< bit: 5 Busy Channel 5 */
  599. uint32_t BUSYCH6:1; /**< bit: 6 Busy Channel 6 */
  600. uint32_t BUSYCH7:1; /**< bit: 7 Busy Channel 7 */
  601. uint32_t :24; /**< bit: 8..31 Reserved */
  602. } bit; /**< Structure used for bit access */
  603. struct {
  604. uint32_t BUSYCH:8; /**< bit: 0..7 Busy Channel 7 */
  605. uint32_t :24; /**< bit: 8..31 Reserved */
  606. } vec; /**< Structure used for vec access */
  607. uint32_t reg; /**< Type used for register access */
  608. } DMAC_BUSYCH_Type;
  609. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  610. #define DMAC_BUSYCH_OFFSET (0x28) /**< (DMAC_BUSYCH) Busy Channels Offset */
  611. #define DMAC_BUSYCH_RESETVALUE _U_(0x00) /**< (DMAC_BUSYCH) Busy Channels Reset Value */
  612. #define DMAC_BUSYCH_BUSYCH0_Pos 0 /**< (DMAC_BUSYCH) Busy Channel 0 Position */
  613. #define DMAC_BUSYCH_BUSYCH0_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH0_Pos) /**< (DMAC_BUSYCH) Busy Channel 0 Mask */
  614. #define DMAC_BUSYCH_BUSYCH0 DMAC_BUSYCH_BUSYCH0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH0_Msk instead */
  615. #define DMAC_BUSYCH_BUSYCH1_Pos 1 /**< (DMAC_BUSYCH) Busy Channel 1 Position */
  616. #define DMAC_BUSYCH_BUSYCH1_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH1_Pos) /**< (DMAC_BUSYCH) Busy Channel 1 Mask */
  617. #define DMAC_BUSYCH_BUSYCH1 DMAC_BUSYCH_BUSYCH1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH1_Msk instead */
  618. #define DMAC_BUSYCH_BUSYCH2_Pos 2 /**< (DMAC_BUSYCH) Busy Channel 2 Position */
  619. #define DMAC_BUSYCH_BUSYCH2_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH2_Pos) /**< (DMAC_BUSYCH) Busy Channel 2 Mask */
  620. #define DMAC_BUSYCH_BUSYCH2 DMAC_BUSYCH_BUSYCH2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH2_Msk instead */
  621. #define DMAC_BUSYCH_BUSYCH3_Pos 3 /**< (DMAC_BUSYCH) Busy Channel 3 Position */
  622. #define DMAC_BUSYCH_BUSYCH3_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH3_Pos) /**< (DMAC_BUSYCH) Busy Channel 3 Mask */
  623. #define DMAC_BUSYCH_BUSYCH3 DMAC_BUSYCH_BUSYCH3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH3_Msk instead */
  624. #define DMAC_BUSYCH_BUSYCH4_Pos 4 /**< (DMAC_BUSYCH) Busy Channel 4 Position */
  625. #define DMAC_BUSYCH_BUSYCH4_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH4_Pos) /**< (DMAC_BUSYCH) Busy Channel 4 Mask */
  626. #define DMAC_BUSYCH_BUSYCH4 DMAC_BUSYCH_BUSYCH4_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH4_Msk instead */
  627. #define DMAC_BUSYCH_BUSYCH5_Pos 5 /**< (DMAC_BUSYCH) Busy Channel 5 Position */
  628. #define DMAC_BUSYCH_BUSYCH5_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH5_Pos) /**< (DMAC_BUSYCH) Busy Channel 5 Mask */
  629. #define DMAC_BUSYCH_BUSYCH5 DMAC_BUSYCH_BUSYCH5_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH5_Msk instead */
  630. #define DMAC_BUSYCH_BUSYCH6_Pos 6 /**< (DMAC_BUSYCH) Busy Channel 6 Position */
  631. #define DMAC_BUSYCH_BUSYCH6_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH6_Pos) /**< (DMAC_BUSYCH) Busy Channel 6 Mask */
  632. #define DMAC_BUSYCH_BUSYCH6 DMAC_BUSYCH_BUSYCH6_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH6_Msk instead */
  633. #define DMAC_BUSYCH_BUSYCH7_Pos 7 /**< (DMAC_BUSYCH) Busy Channel 7 Position */
  634. #define DMAC_BUSYCH_BUSYCH7_Msk (_U_(0x1) << DMAC_BUSYCH_BUSYCH7_Pos) /**< (DMAC_BUSYCH) Busy Channel 7 Mask */
  635. #define DMAC_BUSYCH_BUSYCH7 DMAC_BUSYCH_BUSYCH7_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_BUSYCH_BUSYCH7_Msk instead */
  636. #define DMAC_BUSYCH_MASK _U_(0xFF) /**< \deprecated (DMAC_BUSYCH) Register MASK (Use DMAC_BUSYCH_Msk instead) */
  637. #define DMAC_BUSYCH_Msk _U_(0xFF) /**< (DMAC_BUSYCH) Register Mask */
  638. #define DMAC_BUSYCH_BUSYCH_Pos 0 /**< (DMAC_BUSYCH Position) Busy Channel 7 */
  639. #define DMAC_BUSYCH_BUSYCH_Msk (_U_(0xFF) << DMAC_BUSYCH_BUSYCH_Pos) /**< (DMAC_BUSYCH Mask) BUSYCH */
  640. #define DMAC_BUSYCH_BUSYCH(value) (DMAC_BUSYCH_BUSYCH_Msk & ((value) << DMAC_BUSYCH_BUSYCH_Pos))
  641. /* -------- DMAC_PENDCH : (DMAC Offset: 0x2c) (R/ 32) Pending Channels -------- */
  642. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  643. typedef union {
  644. struct {
  645. uint32_t PENDCH0:1; /**< bit: 0 Pending Channel 0 */
  646. uint32_t PENDCH1:1; /**< bit: 1 Pending Channel 1 */
  647. uint32_t PENDCH2:1; /**< bit: 2 Pending Channel 2 */
  648. uint32_t PENDCH3:1; /**< bit: 3 Pending Channel 3 */
  649. uint32_t PENDCH4:1; /**< bit: 4 Pending Channel 4 */
  650. uint32_t PENDCH5:1; /**< bit: 5 Pending Channel 5 */
  651. uint32_t PENDCH6:1; /**< bit: 6 Pending Channel 6 */
  652. uint32_t PENDCH7:1; /**< bit: 7 Pending Channel 7 */
  653. uint32_t :24; /**< bit: 8..31 Reserved */
  654. } bit; /**< Structure used for bit access */
  655. struct {
  656. uint32_t PENDCH:8; /**< bit: 0..7 Pending Channel 7 */
  657. uint32_t :24; /**< bit: 8..31 Reserved */
  658. } vec; /**< Structure used for vec access */
  659. uint32_t reg; /**< Type used for register access */
  660. } DMAC_PENDCH_Type;
  661. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  662. #define DMAC_PENDCH_OFFSET (0x2C) /**< (DMAC_PENDCH) Pending Channels Offset */
  663. #define DMAC_PENDCH_RESETVALUE _U_(0x00) /**< (DMAC_PENDCH) Pending Channels Reset Value */
  664. #define DMAC_PENDCH_PENDCH0_Pos 0 /**< (DMAC_PENDCH) Pending Channel 0 Position */
  665. #define DMAC_PENDCH_PENDCH0_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH0_Pos) /**< (DMAC_PENDCH) Pending Channel 0 Mask */
  666. #define DMAC_PENDCH_PENDCH0 DMAC_PENDCH_PENDCH0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH0_Msk instead */
  667. #define DMAC_PENDCH_PENDCH1_Pos 1 /**< (DMAC_PENDCH) Pending Channel 1 Position */
  668. #define DMAC_PENDCH_PENDCH1_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH1_Pos) /**< (DMAC_PENDCH) Pending Channel 1 Mask */
  669. #define DMAC_PENDCH_PENDCH1 DMAC_PENDCH_PENDCH1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH1_Msk instead */
  670. #define DMAC_PENDCH_PENDCH2_Pos 2 /**< (DMAC_PENDCH) Pending Channel 2 Position */
  671. #define DMAC_PENDCH_PENDCH2_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH2_Pos) /**< (DMAC_PENDCH) Pending Channel 2 Mask */
  672. #define DMAC_PENDCH_PENDCH2 DMAC_PENDCH_PENDCH2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH2_Msk instead */
  673. #define DMAC_PENDCH_PENDCH3_Pos 3 /**< (DMAC_PENDCH) Pending Channel 3 Position */
  674. #define DMAC_PENDCH_PENDCH3_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH3_Pos) /**< (DMAC_PENDCH) Pending Channel 3 Mask */
  675. #define DMAC_PENDCH_PENDCH3 DMAC_PENDCH_PENDCH3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH3_Msk instead */
  676. #define DMAC_PENDCH_PENDCH4_Pos 4 /**< (DMAC_PENDCH) Pending Channel 4 Position */
  677. #define DMAC_PENDCH_PENDCH4_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH4_Pos) /**< (DMAC_PENDCH) Pending Channel 4 Mask */
  678. #define DMAC_PENDCH_PENDCH4 DMAC_PENDCH_PENDCH4_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH4_Msk instead */
  679. #define DMAC_PENDCH_PENDCH5_Pos 5 /**< (DMAC_PENDCH) Pending Channel 5 Position */
  680. #define DMAC_PENDCH_PENDCH5_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH5_Pos) /**< (DMAC_PENDCH) Pending Channel 5 Mask */
  681. #define DMAC_PENDCH_PENDCH5 DMAC_PENDCH_PENDCH5_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH5_Msk instead */
  682. #define DMAC_PENDCH_PENDCH6_Pos 6 /**< (DMAC_PENDCH) Pending Channel 6 Position */
  683. #define DMAC_PENDCH_PENDCH6_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH6_Pos) /**< (DMAC_PENDCH) Pending Channel 6 Mask */
  684. #define DMAC_PENDCH_PENDCH6 DMAC_PENDCH_PENDCH6_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH6_Msk instead */
  685. #define DMAC_PENDCH_PENDCH7_Pos 7 /**< (DMAC_PENDCH) Pending Channel 7 Position */
  686. #define DMAC_PENDCH_PENDCH7_Msk (_U_(0x1) << DMAC_PENDCH_PENDCH7_Pos) /**< (DMAC_PENDCH) Pending Channel 7 Mask */
  687. #define DMAC_PENDCH_PENDCH7 DMAC_PENDCH_PENDCH7_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_PENDCH_PENDCH7_Msk instead */
  688. #define DMAC_PENDCH_MASK _U_(0xFF) /**< \deprecated (DMAC_PENDCH) Register MASK (Use DMAC_PENDCH_Msk instead) */
  689. #define DMAC_PENDCH_Msk _U_(0xFF) /**< (DMAC_PENDCH) Register Mask */
  690. #define DMAC_PENDCH_PENDCH_Pos 0 /**< (DMAC_PENDCH Position) Pending Channel 7 */
  691. #define DMAC_PENDCH_PENDCH_Msk (_U_(0xFF) << DMAC_PENDCH_PENDCH_Pos) /**< (DMAC_PENDCH Mask) PENDCH */
  692. #define DMAC_PENDCH_PENDCH(value) (DMAC_PENDCH_PENDCH_Msk & ((value) << DMAC_PENDCH_PENDCH_Pos))
  693. /* -------- DMAC_ACTIVE : (DMAC Offset: 0x30) (R/ 32) Active Channel and Levels -------- */
  694. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  695. typedef union {
  696. struct {
  697. uint32_t LVLEX0:1; /**< bit: 0 Level 0 Channel Trigger Request Executing */
  698. uint32_t LVLEX1:1; /**< bit: 1 Level 1 Channel Trigger Request Executing */
  699. uint32_t LVLEX2:1; /**< bit: 2 Level 2 Channel Trigger Request Executing */
  700. uint32_t LVLEX3:1; /**< bit: 3 Level 3 Channel Trigger Request Executing */
  701. uint32_t :4; /**< bit: 4..7 Reserved */
  702. uint32_t ID:5; /**< bit: 8..12 Active Channel ID */
  703. uint32_t :2; /**< bit: 13..14 Reserved */
  704. uint32_t ABUSY:1; /**< bit: 15 Active Channel Busy */
  705. uint32_t BTCNT:16; /**< bit: 16..31 Active Channel Block Transfer Count */
  706. } bit; /**< Structure used for bit access */
  707. struct {
  708. uint32_t LVLEX:4; /**< bit: 0..3 Level x Channel Trigger Request Executing */
  709. uint32_t :28; /**< bit: 4..31 Reserved */
  710. } vec; /**< Structure used for vec access */
  711. uint32_t reg; /**< Type used for register access */
  712. } DMAC_ACTIVE_Type;
  713. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  714. #define DMAC_ACTIVE_OFFSET (0x30) /**< (DMAC_ACTIVE) Active Channel and Levels Offset */
  715. #define DMAC_ACTIVE_RESETVALUE _U_(0x00) /**< (DMAC_ACTIVE) Active Channel and Levels Reset Value */
  716. #define DMAC_ACTIVE_LVLEX0_Pos 0 /**< (DMAC_ACTIVE) Level 0 Channel Trigger Request Executing Position */
  717. #define DMAC_ACTIVE_LVLEX0_Msk (_U_(0x1) << DMAC_ACTIVE_LVLEX0_Pos) /**< (DMAC_ACTIVE) Level 0 Channel Trigger Request Executing Mask */
  718. #define DMAC_ACTIVE_LVLEX0 DMAC_ACTIVE_LVLEX0_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_ACTIVE_LVLEX0_Msk instead */
  719. #define DMAC_ACTIVE_LVLEX1_Pos 1 /**< (DMAC_ACTIVE) Level 1 Channel Trigger Request Executing Position */
  720. #define DMAC_ACTIVE_LVLEX1_Msk (_U_(0x1) << DMAC_ACTIVE_LVLEX1_Pos) /**< (DMAC_ACTIVE) Level 1 Channel Trigger Request Executing Mask */
  721. #define DMAC_ACTIVE_LVLEX1 DMAC_ACTIVE_LVLEX1_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_ACTIVE_LVLEX1_Msk instead */
  722. #define DMAC_ACTIVE_LVLEX2_Pos 2 /**< (DMAC_ACTIVE) Level 2 Channel Trigger Request Executing Position */
  723. #define DMAC_ACTIVE_LVLEX2_Msk (_U_(0x1) << DMAC_ACTIVE_LVLEX2_Pos) /**< (DMAC_ACTIVE) Level 2 Channel Trigger Request Executing Mask */
  724. #define DMAC_ACTIVE_LVLEX2 DMAC_ACTIVE_LVLEX2_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_ACTIVE_LVLEX2_Msk instead */
  725. #define DMAC_ACTIVE_LVLEX3_Pos 3 /**< (DMAC_ACTIVE) Level 3 Channel Trigger Request Executing Position */
  726. #define DMAC_ACTIVE_LVLEX3_Msk (_U_(0x1) << DMAC_ACTIVE_LVLEX3_Pos) /**< (DMAC_ACTIVE) Level 3 Channel Trigger Request Executing Mask */
  727. #define DMAC_ACTIVE_LVLEX3 DMAC_ACTIVE_LVLEX3_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_ACTIVE_LVLEX3_Msk instead */
  728. #define DMAC_ACTIVE_ID_Pos 8 /**< (DMAC_ACTIVE) Active Channel ID Position */
  729. #define DMAC_ACTIVE_ID_Msk (_U_(0x1F) << DMAC_ACTIVE_ID_Pos) /**< (DMAC_ACTIVE) Active Channel ID Mask */
  730. #define DMAC_ACTIVE_ID(value) (DMAC_ACTIVE_ID_Msk & ((value) << DMAC_ACTIVE_ID_Pos))
  731. #define DMAC_ACTIVE_ABUSY_Pos 15 /**< (DMAC_ACTIVE) Active Channel Busy Position */
  732. #define DMAC_ACTIVE_ABUSY_Msk (_U_(0x1) << DMAC_ACTIVE_ABUSY_Pos) /**< (DMAC_ACTIVE) Active Channel Busy Mask */
  733. #define DMAC_ACTIVE_ABUSY DMAC_ACTIVE_ABUSY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_ACTIVE_ABUSY_Msk instead */
  734. #define DMAC_ACTIVE_BTCNT_Pos 16 /**< (DMAC_ACTIVE) Active Channel Block Transfer Count Position */
  735. #define DMAC_ACTIVE_BTCNT_Msk (_U_(0xFFFF) << DMAC_ACTIVE_BTCNT_Pos) /**< (DMAC_ACTIVE) Active Channel Block Transfer Count Mask */
  736. #define DMAC_ACTIVE_BTCNT(value) (DMAC_ACTIVE_BTCNT_Msk & ((value) << DMAC_ACTIVE_BTCNT_Pos))
  737. #define DMAC_ACTIVE_MASK _U_(0xFFFF9F0F) /**< \deprecated (DMAC_ACTIVE) Register MASK (Use DMAC_ACTIVE_Msk instead) */
  738. #define DMAC_ACTIVE_Msk _U_(0xFFFF9F0F) /**< (DMAC_ACTIVE) Register Mask */
  739. #define DMAC_ACTIVE_LVLEX_Pos 0 /**< (DMAC_ACTIVE Position) Level x Channel Trigger Request Executing */
  740. #define DMAC_ACTIVE_LVLEX_Msk (_U_(0xF) << DMAC_ACTIVE_LVLEX_Pos) /**< (DMAC_ACTIVE Mask) LVLEX */
  741. #define DMAC_ACTIVE_LVLEX(value) (DMAC_ACTIVE_LVLEX_Msk & ((value) << DMAC_ACTIVE_LVLEX_Pos))
  742. /* -------- DMAC_BASEADDR : (DMAC Offset: 0x34) (R/W 32) Descriptor Memory Section Base Address -------- */
  743. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  744. typedef union {
  745. struct {
  746. uint32_t BASEADDR:32; /**< bit: 0..31 Descriptor Memory Base Address */
  747. } bit; /**< Structure used for bit access */
  748. uint32_t reg; /**< Type used for register access */
  749. } DMAC_BASEADDR_Type;
  750. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  751. #define DMAC_BASEADDR_OFFSET (0x34) /**< (DMAC_BASEADDR) Descriptor Memory Section Base Address Offset */
  752. #define DMAC_BASEADDR_RESETVALUE _U_(0x00) /**< (DMAC_BASEADDR) Descriptor Memory Section Base Address Reset Value */
  753. #define DMAC_BASEADDR_BASEADDR_Pos 0 /**< (DMAC_BASEADDR) Descriptor Memory Base Address Position */
  754. #define DMAC_BASEADDR_BASEADDR_Msk (_U_(0xFFFFFFFF) << DMAC_BASEADDR_BASEADDR_Pos) /**< (DMAC_BASEADDR) Descriptor Memory Base Address Mask */
  755. #define DMAC_BASEADDR_BASEADDR(value) (DMAC_BASEADDR_BASEADDR_Msk & ((value) << DMAC_BASEADDR_BASEADDR_Pos))
  756. #define DMAC_BASEADDR_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_BASEADDR) Register MASK (Use DMAC_BASEADDR_Msk instead) */
  757. #define DMAC_BASEADDR_Msk _U_(0xFFFFFFFF) /**< (DMAC_BASEADDR) Register Mask */
  758. /* -------- DMAC_WRBADDR : (DMAC Offset: 0x38) (R/W 32) Write-Back Memory Section Base Address -------- */
  759. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  760. typedef union {
  761. struct {
  762. uint32_t WRBADDR:32; /**< bit: 0..31 Write-Back Memory Base Address */
  763. } bit; /**< Structure used for bit access */
  764. uint32_t reg; /**< Type used for register access */
  765. } DMAC_WRBADDR_Type;
  766. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  767. #define DMAC_WRBADDR_OFFSET (0x38) /**< (DMAC_WRBADDR) Write-Back Memory Section Base Address Offset */
  768. #define DMAC_WRBADDR_RESETVALUE _U_(0x00) /**< (DMAC_WRBADDR) Write-Back Memory Section Base Address Reset Value */
  769. #define DMAC_WRBADDR_WRBADDR_Pos 0 /**< (DMAC_WRBADDR) Write-Back Memory Base Address Position */
  770. #define DMAC_WRBADDR_WRBADDR_Msk (_U_(0xFFFFFFFF) << DMAC_WRBADDR_WRBADDR_Pos) /**< (DMAC_WRBADDR) Write-Back Memory Base Address Mask */
  771. #define DMAC_WRBADDR_WRBADDR(value) (DMAC_WRBADDR_WRBADDR_Msk & ((value) << DMAC_WRBADDR_WRBADDR_Pos))
  772. #define DMAC_WRBADDR_MASK _U_(0xFFFFFFFF) /**< \deprecated (DMAC_WRBADDR) Register MASK (Use DMAC_WRBADDR_Msk instead) */
  773. #define DMAC_WRBADDR_Msk _U_(0xFFFFFFFF) /**< (DMAC_WRBADDR) Register Mask */
  774. /* -------- DMAC_CHID : (DMAC Offset: 0x3f) (R/W 8) Channel ID -------- */
  775. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  776. typedef union {
  777. struct {
  778. uint8_t ID:3; /**< bit: 0..2 Channel ID */
  779. uint8_t :5; /**< bit: 3..7 Reserved */
  780. } bit; /**< Structure used for bit access */
  781. uint8_t reg; /**< Type used for register access */
  782. } DMAC_CHID_Type;
  783. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  784. #define DMAC_CHID_OFFSET (0x3F) /**< (DMAC_CHID) Channel ID Offset */
  785. #define DMAC_CHID_RESETVALUE _U_(0x00) /**< (DMAC_CHID) Channel ID Reset Value */
  786. #define DMAC_CHID_ID_Pos 0 /**< (DMAC_CHID) Channel ID Position */
  787. #define DMAC_CHID_ID_Msk (_U_(0x7) << DMAC_CHID_ID_Pos) /**< (DMAC_CHID) Channel ID Mask */
  788. #define DMAC_CHID_ID(value) (DMAC_CHID_ID_Msk & ((value) << DMAC_CHID_ID_Pos))
  789. #define DMAC_CHID_MASK _U_(0x07) /**< \deprecated (DMAC_CHID) Register MASK (Use DMAC_CHID_Msk instead) */
  790. #define DMAC_CHID_Msk _U_(0x07) /**< (DMAC_CHID) Register Mask */
  791. /* -------- DMAC_CHCTRLA : (DMAC Offset: 0x40) (R/W 8) Channel Control A -------- */
  792. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  793. typedef union {
  794. struct {
  795. uint8_t SWRST:1; /**< bit: 0 Channel Software Reset */
  796. uint8_t ENABLE:1; /**< bit: 1 Channel Enable */
  797. uint8_t :4; /**< bit: 2..5 Reserved */
  798. uint8_t RUNSTDBY:1; /**< bit: 6 Channel run in standby */
  799. uint8_t :1; /**< bit: 7 Reserved */
  800. } bit; /**< Structure used for bit access */
  801. uint8_t reg; /**< Type used for register access */
  802. } DMAC_CHCTRLA_Type;
  803. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  804. #define DMAC_CHCTRLA_OFFSET (0x40) /**< (DMAC_CHCTRLA) Channel Control A Offset */
  805. #define DMAC_CHCTRLA_RESETVALUE _U_(0x00) /**< (DMAC_CHCTRLA) Channel Control A Reset Value */
  806. #define DMAC_CHCTRLA_SWRST_Pos 0 /**< (DMAC_CHCTRLA) Channel Software Reset Position */
  807. #define DMAC_CHCTRLA_SWRST_Msk (_U_(0x1) << DMAC_CHCTRLA_SWRST_Pos) /**< (DMAC_CHCTRLA) Channel Software Reset Mask */
  808. #define DMAC_CHCTRLA_SWRST DMAC_CHCTRLA_SWRST_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHCTRLA_SWRST_Msk instead */
  809. #define DMAC_CHCTRLA_ENABLE_Pos 1 /**< (DMAC_CHCTRLA) Channel Enable Position */
  810. #define DMAC_CHCTRLA_ENABLE_Msk (_U_(0x1) << DMAC_CHCTRLA_ENABLE_Pos) /**< (DMAC_CHCTRLA) Channel Enable Mask */
  811. #define DMAC_CHCTRLA_ENABLE DMAC_CHCTRLA_ENABLE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHCTRLA_ENABLE_Msk instead */
  812. #define DMAC_CHCTRLA_RUNSTDBY_Pos 6 /**< (DMAC_CHCTRLA) Channel run in standby Position */
  813. #define DMAC_CHCTRLA_RUNSTDBY_Msk (_U_(0x1) << DMAC_CHCTRLA_RUNSTDBY_Pos) /**< (DMAC_CHCTRLA) Channel run in standby Mask */
  814. #define DMAC_CHCTRLA_RUNSTDBY DMAC_CHCTRLA_RUNSTDBY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHCTRLA_RUNSTDBY_Msk instead */
  815. #define DMAC_CHCTRLA_MASK _U_(0x43) /**< \deprecated (DMAC_CHCTRLA) Register MASK (Use DMAC_CHCTRLA_Msk instead) */
  816. #define DMAC_CHCTRLA_Msk _U_(0x43) /**< (DMAC_CHCTRLA) Register Mask */
  817. /* -------- DMAC_CHCTRLB : (DMAC Offset: 0x44) (R/W 32) Channel Control B -------- */
  818. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  819. typedef union {
  820. struct {
  821. uint32_t EVACT:3; /**< bit: 0..2 Event Input Action */
  822. uint32_t EVIE:1; /**< bit: 3 Channel Event Input Enable */
  823. uint32_t EVOE:1; /**< bit: 4 Channel Event Output Enable */
  824. uint32_t LVL:2; /**< bit: 5..6 Channel Arbitration Level */
  825. uint32_t :1; /**< bit: 7 Reserved */
  826. uint32_t TRIGSRC:5; /**< bit: 8..12 Trigger Source */
  827. uint32_t :9; /**< bit: 13..21 Reserved */
  828. uint32_t TRIGACT:2; /**< bit: 22..23 Trigger Action */
  829. uint32_t CMD:2; /**< bit: 24..25 Software Command */
  830. uint32_t :6; /**< bit: 26..31 Reserved */
  831. } bit; /**< Structure used for bit access */
  832. uint32_t reg; /**< Type used for register access */
  833. } DMAC_CHCTRLB_Type;
  834. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  835. #define DMAC_CHCTRLB_OFFSET (0x44) /**< (DMAC_CHCTRLB) Channel Control B Offset */
  836. #define DMAC_CHCTRLB_RESETVALUE _U_(0x00) /**< (DMAC_CHCTRLB) Channel Control B Reset Value */
  837. #define DMAC_CHCTRLB_EVACT_Pos 0 /**< (DMAC_CHCTRLB) Event Input Action Position */
  838. #define DMAC_CHCTRLB_EVACT_Msk (_U_(0x7) << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Event Input Action Mask */
  839. #define DMAC_CHCTRLB_EVACT(value) (DMAC_CHCTRLB_EVACT_Msk & ((value) << DMAC_CHCTRLB_EVACT_Pos))
  840. #define DMAC_CHCTRLB_EVACT_NOACT_Val _U_(0x0) /**< (DMAC_CHCTRLB) No action */
  841. #define DMAC_CHCTRLB_EVACT_TRIG_Val _U_(0x1) /**< (DMAC_CHCTRLB) Transfer and periodic transfer trigger */
  842. #define DMAC_CHCTRLB_EVACT_CTRIG_Val _U_(0x2) /**< (DMAC_CHCTRLB) Conditional transfer trigger */
  843. #define DMAC_CHCTRLB_EVACT_CBLOCK_Val _U_(0x3) /**< (DMAC_CHCTRLB) Conditional block transfer */
  844. #define DMAC_CHCTRLB_EVACT_SUSPEND_Val _U_(0x4) /**< (DMAC_CHCTRLB) Channel suspend operation */
  845. #define DMAC_CHCTRLB_EVACT_RESUME_Val _U_(0x5) /**< (DMAC_CHCTRLB) Channel resume operation */
  846. #define DMAC_CHCTRLB_EVACT_SSKIP_Val _U_(0x6) /**< (DMAC_CHCTRLB) Skip next block suspend action */
  847. #define DMAC_CHCTRLB_EVACT_NOACT (DMAC_CHCTRLB_EVACT_NOACT_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) No action Position */
  848. #define DMAC_CHCTRLB_EVACT_TRIG (DMAC_CHCTRLB_EVACT_TRIG_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Transfer and periodic transfer trigger Position */
  849. #define DMAC_CHCTRLB_EVACT_CTRIG (DMAC_CHCTRLB_EVACT_CTRIG_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Conditional transfer trigger Position */
  850. #define DMAC_CHCTRLB_EVACT_CBLOCK (DMAC_CHCTRLB_EVACT_CBLOCK_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Conditional block transfer Position */
  851. #define DMAC_CHCTRLB_EVACT_SUSPEND (DMAC_CHCTRLB_EVACT_SUSPEND_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Channel suspend operation Position */
  852. #define DMAC_CHCTRLB_EVACT_RESUME (DMAC_CHCTRLB_EVACT_RESUME_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Channel resume operation Position */
  853. #define DMAC_CHCTRLB_EVACT_SSKIP (DMAC_CHCTRLB_EVACT_SSKIP_Val << DMAC_CHCTRLB_EVACT_Pos) /**< (DMAC_CHCTRLB) Skip next block suspend action Position */
  854. #define DMAC_CHCTRLB_EVIE_Pos 3 /**< (DMAC_CHCTRLB) Channel Event Input Enable Position */
  855. #define DMAC_CHCTRLB_EVIE_Msk (_U_(0x1) << DMAC_CHCTRLB_EVIE_Pos) /**< (DMAC_CHCTRLB) Channel Event Input Enable Mask */
  856. #define DMAC_CHCTRLB_EVIE DMAC_CHCTRLB_EVIE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHCTRLB_EVIE_Msk instead */
  857. #define DMAC_CHCTRLB_EVOE_Pos 4 /**< (DMAC_CHCTRLB) Channel Event Output Enable Position */
  858. #define DMAC_CHCTRLB_EVOE_Msk (_U_(0x1) << DMAC_CHCTRLB_EVOE_Pos) /**< (DMAC_CHCTRLB) Channel Event Output Enable Mask */
  859. #define DMAC_CHCTRLB_EVOE DMAC_CHCTRLB_EVOE_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHCTRLB_EVOE_Msk instead */
  860. #define DMAC_CHCTRLB_LVL_Pos 5 /**< (DMAC_CHCTRLB) Channel Arbitration Level Position */
  861. #define DMAC_CHCTRLB_LVL_Msk (_U_(0x3) << DMAC_CHCTRLB_LVL_Pos) /**< (DMAC_CHCTRLB) Channel Arbitration Level Mask */
  862. #define DMAC_CHCTRLB_LVL(value) (DMAC_CHCTRLB_LVL_Msk & ((value) << DMAC_CHCTRLB_LVL_Pos))
  863. #define DMAC_CHCTRLB_TRIGSRC_Pos 8 /**< (DMAC_CHCTRLB) Trigger Source Position */
  864. #define DMAC_CHCTRLB_TRIGSRC_Msk (_U_(0x1F) << DMAC_CHCTRLB_TRIGSRC_Pos) /**< (DMAC_CHCTRLB) Trigger Source Mask */
  865. #define DMAC_CHCTRLB_TRIGSRC(value) (DMAC_CHCTRLB_TRIGSRC_Msk & ((value) << DMAC_CHCTRLB_TRIGSRC_Pos))
  866. #define DMAC_CHCTRLB_TRIGSRC_DISABLE_Val _U_(0x0) /**< (DMAC_CHCTRLB) Only software/event triggers */
  867. #define DMAC_CHCTRLB_TRIGSRC_DISABLE (DMAC_CHCTRLB_TRIGSRC_DISABLE_Val << DMAC_CHCTRLB_TRIGSRC_Pos) /**< (DMAC_CHCTRLB) Only software/event triggers Position */
  868. #define DMAC_CHCTRLB_TRIGACT_Pos 22 /**< (DMAC_CHCTRLB) Trigger Action Position */
  869. #define DMAC_CHCTRLB_TRIGACT_Msk (_U_(0x3) << DMAC_CHCTRLB_TRIGACT_Pos) /**< (DMAC_CHCTRLB) Trigger Action Mask */
  870. #define DMAC_CHCTRLB_TRIGACT(value) (DMAC_CHCTRLB_TRIGACT_Msk & ((value) << DMAC_CHCTRLB_TRIGACT_Pos))
  871. #define DMAC_CHCTRLB_TRIGACT_BLOCK_Val _U_(0x0) /**< (DMAC_CHCTRLB) One trigger required for each block transfer */
  872. #define DMAC_CHCTRLB_TRIGACT_BEAT_Val _U_(0x2) /**< (DMAC_CHCTRLB) One trigger required for each beat transfer */
  873. #define DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val _U_(0x3) /**< (DMAC_CHCTRLB) One trigger required for each transaction */
  874. #define DMAC_CHCTRLB_TRIGACT_BLOCK (DMAC_CHCTRLB_TRIGACT_BLOCK_Val << DMAC_CHCTRLB_TRIGACT_Pos) /**< (DMAC_CHCTRLB) One trigger required for each block transfer Position */
  875. #define DMAC_CHCTRLB_TRIGACT_BEAT (DMAC_CHCTRLB_TRIGACT_BEAT_Val << DMAC_CHCTRLB_TRIGACT_Pos) /**< (DMAC_CHCTRLB) One trigger required for each beat transfer Position */
  876. #define DMAC_CHCTRLB_TRIGACT_TRANSACTION (DMAC_CHCTRLB_TRIGACT_TRANSACTION_Val << DMAC_CHCTRLB_TRIGACT_Pos) /**< (DMAC_CHCTRLB) One trigger required for each transaction Position */
  877. #define DMAC_CHCTRLB_CMD_Pos 24 /**< (DMAC_CHCTRLB) Software Command Position */
  878. #define DMAC_CHCTRLB_CMD_Msk (_U_(0x3) << DMAC_CHCTRLB_CMD_Pos) /**< (DMAC_CHCTRLB) Software Command Mask */
  879. #define DMAC_CHCTRLB_CMD(value) (DMAC_CHCTRLB_CMD_Msk & ((value) << DMAC_CHCTRLB_CMD_Pos))
  880. #define DMAC_CHCTRLB_CMD_NOACT_Val _U_(0x0) /**< (DMAC_CHCTRLB) No action */
  881. #define DMAC_CHCTRLB_CMD_SUSPEND_Val _U_(0x1) /**< (DMAC_CHCTRLB) Channel suspend operation */
  882. #define DMAC_CHCTRLB_CMD_RESUME_Val _U_(0x2) /**< (DMAC_CHCTRLB) Channel resume operation */
  883. #define DMAC_CHCTRLB_CMD_NOACT (DMAC_CHCTRLB_CMD_NOACT_Val << DMAC_CHCTRLB_CMD_Pos) /**< (DMAC_CHCTRLB) No action Position */
  884. #define DMAC_CHCTRLB_CMD_SUSPEND (DMAC_CHCTRLB_CMD_SUSPEND_Val << DMAC_CHCTRLB_CMD_Pos) /**< (DMAC_CHCTRLB) Channel suspend operation Position */
  885. #define DMAC_CHCTRLB_CMD_RESUME (DMAC_CHCTRLB_CMD_RESUME_Val << DMAC_CHCTRLB_CMD_Pos) /**< (DMAC_CHCTRLB) Channel resume operation Position */
  886. #define DMAC_CHCTRLB_MASK _U_(0x3C01F7F) /**< \deprecated (DMAC_CHCTRLB) Register MASK (Use DMAC_CHCTRLB_Msk instead) */
  887. #define DMAC_CHCTRLB_Msk _U_(0x3C01F7F) /**< (DMAC_CHCTRLB) Register Mask */
  888. /* -------- DMAC_CHINTENCLR : (DMAC Offset: 0x4c) (R/W 8) Channel Interrupt Enable Clear -------- */
  889. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  890. typedef union {
  891. struct {
  892. uint8_t TERR:1; /**< bit: 0 Channel Transfer Error Interrupt Enable */
  893. uint8_t TCMPL:1; /**< bit: 1 Channel Transfer Complete Interrupt Enable */
  894. uint8_t SUSP:1; /**< bit: 2 Channel Suspend Interrupt Enable */
  895. uint8_t :5; /**< bit: 3..7 Reserved */
  896. } bit; /**< Structure used for bit access */
  897. uint8_t reg; /**< Type used for register access */
  898. } DMAC_CHINTENCLR_Type;
  899. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  900. #define DMAC_CHINTENCLR_OFFSET (0x4C) /**< (DMAC_CHINTENCLR) Channel Interrupt Enable Clear Offset */
  901. #define DMAC_CHINTENCLR_RESETVALUE _U_(0x00) /**< (DMAC_CHINTENCLR) Channel Interrupt Enable Clear Reset Value */
  902. #define DMAC_CHINTENCLR_TERR_Pos 0 /**< (DMAC_CHINTENCLR) Channel Transfer Error Interrupt Enable Position */
  903. #define DMAC_CHINTENCLR_TERR_Msk (_U_(0x1) << DMAC_CHINTENCLR_TERR_Pos) /**< (DMAC_CHINTENCLR) Channel Transfer Error Interrupt Enable Mask */
  904. #define DMAC_CHINTENCLR_TERR DMAC_CHINTENCLR_TERR_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTENCLR_TERR_Msk instead */
  905. #define DMAC_CHINTENCLR_TCMPL_Pos 1 /**< (DMAC_CHINTENCLR) Channel Transfer Complete Interrupt Enable Position */
  906. #define DMAC_CHINTENCLR_TCMPL_Msk (_U_(0x1) << DMAC_CHINTENCLR_TCMPL_Pos) /**< (DMAC_CHINTENCLR) Channel Transfer Complete Interrupt Enable Mask */
  907. #define DMAC_CHINTENCLR_TCMPL DMAC_CHINTENCLR_TCMPL_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTENCLR_TCMPL_Msk instead */
  908. #define DMAC_CHINTENCLR_SUSP_Pos 2 /**< (DMAC_CHINTENCLR) Channel Suspend Interrupt Enable Position */
  909. #define DMAC_CHINTENCLR_SUSP_Msk (_U_(0x1) << DMAC_CHINTENCLR_SUSP_Pos) /**< (DMAC_CHINTENCLR) Channel Suspend Interrupt Enable Mask */
  910. #define DMAC_CHINTENCLR_SUSP DMAC_CHINTENCLR_SUSP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTENCLR_SUSP_Msk instead */
  911. #define DMAC_CHINTENCLR_MASK _U_(0x07) /**< \deprecated (DMAC_CHINTENCLR) Register MASK (Use DMAC_CHINTENCLR_Msk instead) */
  912. #define DMAC_CHINTENCLR_Msk _U_(0x07) /**< (DMAC_CHINTENCLR) Register Mask */
  913. /* -------- DMAC_CHINTENSET : (DMAC Offset: 0x4d) (R/W 8) Channel Interrupt Enable Set -------- */
  914. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  915. typedef union {
  916. struct {
  917. uint8_t TERR:1; /**< bit: 0 Channel Transfer Error Interrupt Enable */
  918. uint8_t TCMPL:1; /**< bit: 1 Channel Transfer Complete Interrupt Enable */
  919. uint8_t SUSP:1; /**< bit: 2 Channel Suspend Interrupt Enable */
  920. uint8_t :5; /**< bit: 3..7 Reserved */
  921. } bit; /**< Structure used for bit access */
  922. uint8_t reg; /**< Type used for register access */
  923. } DMAC_CHINTENSET_Type;
  924. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  925. #define DMAC_CHINTENSET_OFFSET (0x4D) /**< (DMAC_CHINTENSET) Channel Interrupt Enable Set Offset */
  926. #define DMAC_CHINTENSET_RESETVALUE _U_(0x00) /**< (DMAC_CHINTENSET) Channel Interrupt Enable Set Reset Value */
  927. #define DMAC_CHINTENSET_TERR_Pos 0 /**< (DMAC_CHINTENSET) Channel Transfer Error Interrupt Enable Position */
  928. #define DMAC_CHINTENSET_TERR_Msk (_U_(0x1) << DMAC_CHINTENSET_TERR_Pos) /**< (DMAC_CHINTENSET) Channel Transfer Error Interrupt Enable Mask */
  929. #define DMAC_CHINTENSET_TERR DMAC_CHINTENSET_TERR_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTENSET_TERR_Msk instead */
  930. #define DMAC_CHINTENSET_TCMPL_Pos 1 /**< (DMAC_CHINTENSET) Channel Transfer Complete Interrupt Enable Position */
  931. #define DMAC_CHINTENSET_TCMPL_Msk (_U_(0x1) << DMAC_CHINTENSET_TCMPL_Pos) /**< (DMAC_CHINTENSET) Channel Transfer Complete Interrupt Enable Mask */
  932. #define DMAC_CHINTENSET_TCMPL DMAC_CHINTENSET_TCMPL_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTENSET_TCMPL_Msk instead */
  933. #define DMAC_CHINTENSET_SUSP_Pos 2 /**< (DMAC_CHINTENSET) Channel Suspend Interrupt Enable Position */
  934. #define DMAC_CHINTENSET_SUSP_Msk (_U_(0x1) << DMAC_CHINTENSET_SUSP_Pos) /**< (DMAC_CHINTENSET) Channel Suspend Interrupt Enable Mask */
  935. #define DMAC_CHINTENSET_SUSP DMAC_CHINTENSET_SUSP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTENSET_SUSP_Msk instead */
  936. #define DMAC_CHINTENSET_MASK _U_(0x07) /**< \deprecated (DMAC_CHINTENSET) Register MASK (Use DMAC_CHINTENSET_Msk instead) */
  937. #define DMAC_CHINTENSET_Msk _U_(0x07) /**< (DMAC_CHINTENSET) Register Mask */
  938. /* -------- DMAC_CHINTFLAG : (DMAC Offset: 0x4e) (R/W 8) Channel Interrupt Flag Status and Clear -------- */
  939. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  940. typedef union { // __I to avoid read-modify-write on write-to-clear register
  941. struct {
  942. __I uint8_t TERR:1; /**< bit: 0 Channel Transfer Error */
  943. __I uint8_t TCMPL:1; /**< bit: 1 Channel Transfer Complete */
  944. __I uint8_t SUSP:1; /**< bit: 2 Channel Suspend */
  945. __I uint8_t :5; /**< bit: 3..7 Reserved */
  946. } bit; /**< Structure used for bit access */
  947. uint8_t reg; /**< Type used for register access */
  948. } DMAC_CHINTFLAG_Type;
  949. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  950. #define DMAC_CHINTFLAG_OFFSET (0x4E) /**< (DMAC_CHINTFLAG) Channel Interrupt Flag Status and Clear Offset */
  951. #define DMAC_CHINTFLAG_RESETVALUE _U_(0x00) /**< (DMAC_CHINTFLAG) Channel Interrupt Flag Status and Clear Reset Value */
  952. #define DMAC_CHINTFLAG_TERR_Pos 0 /**< (DMAC_CHINTFLAG) Channel Transfer Error Position */
  953. #define DMAC_CHINTFLAG_TERR_Msk (_U_(0x1) << DMAC_CHINTFLAG_TERR_Pos) /**< (DMAC_CHINTFLAG) Channel Transfer Error Mask */
  954. #define DMAC_CHINTFLAG_TERR DMAC_CHINTFLAG_TERR_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTFLAG_TERR_Msk instead */
  955. #define DMAC_CHINTFLAG_TCMPL_Pos 1 /**< (DMAC_CHINTFLAG) Channel Transfer Complete Position */
  956. #define DMAC_CHINTFLAG_TCMPL_Msk (_U_(0x1) << DMAC_CHINTFLAG_TCMPL_Pos) /**< (DMAC_CHINTFLAG) Channel Transfer Complete Mask */
  957. #define DMAC_CHINTFLAG_TCMPL DMAC_CHINTFLAG_TCMPL_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTFLAG_TCMPL_Msk instead */
  958. #define DMAC_CHINTFLAG_SUSP_Pos 2 /**< (DMAC_CHINTFLAG) Channel Suspend Position */
  959. #define DMAC_CHINTFLAG_SUSP_Msk (_U_(0x1) << DMAC_CHINTFLAG_SUSP_Pos) /**< (DMAC_CHINTFLAG) Channel Suspend Mask */
  960. #define DMAC_CHINTFLAG_SUSP DMAC_CHINTFLAG_SUSP_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHINTFLAG_SUSP_Msk instead */
  961. #define DMAC_CHINTFLAG_MASK _U_(0x07) /**< \deprecated (DMAC_CHINTFLAG) Register MASK (Use DMAC_CHINTFLAG_Msk instead) */
  962. #define DMAC_CHINTFLAG_Msk _U_(0x07) /**< (DMAC_CHINTFLAG) Register Mask */
  963. /* -------- DMAC_CHSTATUS : (DMAC Offset: 0x4f) (R/ 8) Channel Status -------- */
  964. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  965. typedef union {
  966. struct {
  967. uint8_t PEND:1; /**< bit: 0 Channel Pending */
  968. uint8_t BUSY:1; /**< bit: 1 Channel Busy */
  969. uint8_t FERR:1; /**< bit: 2 Channel Fetch Error */
  970. uint8_t :5; /**< bit: 3..7 Reserved */
  971. } bit; /**< Structure used for bit access */
  972. uint8_t reg; /**< Type used for register access */
  973. } DMAC_CHSTATUS_Type;
  974. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  975. #define DMAC_CHSTATUS_OFFSET (0x4F) /**< (DMAC_CHSTATUS) Channel Status Offset */
  976. #define DMAC_CHSTATUS_RESETVALUE _U_(0x00) /**< (DMAC_CHSTATUS) Channel Status Reset Value */
  977. #define DMAC_CHSTATUS_PEND_Pos 0 /**< (DMAC_CHSTATUS) Channel Pending Position */
  978. #define DMAC_CHSTATUS_PEND_Msk (_U_(0x1) << DMAC_CHSTATUS_PEND_Pos) /**< (DMAC_CHSTATUS) Channel Pending Mask */
  979. #define DMAC_CHSTATUS_PEND DMAC_CHSTATUS_PEND_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHSTATUS_PEND_Msk instead */
  980. #define DMAC_CHSTATUS_BUSY_Pos 1 /**< (DMAC_CHSTATUS) Channel Busy Position */
  981. #define DMAC_CHSTATUS_BUSY_Msk (_U_(0x1) << DMAC_CHSTATUS_BUSY_Pos) /**< (DMAC_CHSTATUS) Channel Busy Mask */
  982. #define DMAC_CHSTATUS_BUSY DMAC_CHSTATUS_BUSY_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHSTATUS_BUSY_Msk instead */
  983. #define DMAC_CHSTATUS_FERR_Pos 2 /**< (DMAC_CHSTATUS) Channel Fetch Error Position */
  984. #define DMAC_CHSTATUS_FERR_Msk (_U_(0x1) << DMAC_CHSTATUS_FERR_Pos) /**< (DMAC_CHSTATUS) Channel Fetch Error Mask */
  985. #define DMAC_CHSTATUS_FERR DMAC_CHSTATUS_FERR_Msk /**< \deprecated Old style mask definition for 1 bit bitfield. Use DMAC_CHSTATUS_FERR_Msk instead */
  986. #define DMAC_CHSTATUS_MASK _U_(0x07) /**< \deprecated (DMAC_CHSTATUS) Register MASK (Use DMAC_CHSTATUS_Msk instead) */
  987. #define DMAC_CHSTATUS_Msk _U_(0x07) /**< (DMAC_CHSTATUS) Register Mask */
  988. #if !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__))
  989. /** \brief DMAC_DESCRIPTOR hardware registers */
  990. typedef struct { /* Direct Memory Access Controller */
  991. __IO DMAC_BTCTRL_Type BTCTRL; /**< Offset: 0x00 (R/W 16) Block Transfer Control */
  992. __IO DMAC_BTCNT_Type BTCNT; /**< Offset: 0x02 (R/W 16) Block Transfer Count */
  993. __IO DMAC_SRCADDR_Type SRCADDR; /**< Offset: 0x04 (R/W 32) Block Transfer Source Address */
  994. __IO DMAC_DSTADDR_Type DSTADDR; /**< Offset: 0x08 (R/W 32) Block Transfer Destination Address */
  995. __IO DMAC_DESCADDR_Type DESCADDR; /**< Offset: 0x0C (R/W 32) Next Descriptor Address */
  996. } DmacDescriptor
  997. #ifdef __GNUC__
  998. __attribute__ ((aligned (8)))
  999. #endif
  1000. ;
  1001. /** \brief DMAC hardware registers */
  1002. typedef struct { /* Direct Memory Access Controller */
  1003. __IO DMAC_CTRL_Type CTRL; /**< Offset: 0x00 (R/W 16) Control */
  1004. __IO DMAC_CRCCTRL_Type CRCCTRL; /**< Offset: 0x02 (R/W 16) CRC Control */
  1005. __IO DMAC_CRCDATAIN_Type CRCDATAIN; /**< Offset: 0x04 (R/W 32) CRC Data Input */
  1006. __IO DMAC_CRCCHKSUM_Type CRCCHKSUM; /**< Offset: 0x08 (R/W 32) CRC Checksum */
  1007. __IO DMAC_CRCSTATUS_Type CRCSTATUS; /**< Offset: 0x0C (R/W 8) CRC Status */
  1008. __IO DMAC_DBGCTRL_Type DBGCTRL; /**< Offset: 0x0D (R/W 8) Debug Control */
  1009. __IO DMAC_QOSCTRL_Type QOSCTRL; /**< Offset: 0x0E (R/W 8) QOS Control */
  1010. __I uint8_t Reserved1[1];
  1011. __IO DMAC_SWTRIGCTRL_Type SWTRIGCTRL; /**< Offset: 0x10 (R/W 32) Software Trigger Control */
  1012. __IO DMAC_PRICTRL0_Type PRICTRL0; /**< Offset: 0x14 (R/W 32) Priority Control 0 */
  1013. __I uint8_t Reserved2[8];
  1014. __IO DMAC_INTPEND_Type INTPEND; /**< Offset: 0x20 (R/W 16) Interrupt Pending */
  1015. __I uint8_t Reserved3[2];
  1016. __I DMAC_INTSTATUS_Type INTSTATUS; /**< Offset: 0x24 (R/ 32) Interrupt Status */
  1017. __I DMAC_BUSYCH_Type BUSYCH; /**< Offset: 0x28 (R/ 32) Busy Channels */
  1018. __I DMAC_PENDCH_Type PENDCH; /**< Offset: 0x2C (R/ 32) Pending Channels */
  1019. __I DMAC_ACTIVE_Type ACTIVE; /**< Offset: 0x30 (R/ 32) Active Channel and Levels */
  1020. __IO DMAC_BASEADDR_Type BASEADDR; /**< Offset: 0x34 (R/W 32) Descriptor Memory Section Base Address */
  1021. __IO DMAC_WRBADDR_Type WRBADDR; /**< Offset: 0x38 (R/W 32) Write-Back Memory Section Base Address */
  1022. __I uint8_t Reserved4[3];
  1023. __IO DMAC_CHID_Type CHID; /**< Offset: 0x3F (R/W 8) Channel ID */
  1024. __IO DMAC_CHCTRLA_Type CHCTRLA; /**< Offset: 0x40 (R/W 8) Channel Control A */
  1025. __I uint8_t Reserved5[3];
  1026. __IO DMAC_CHCTRLB_Type CHCTRLB; /**< Offset: 0x44 (R/W 32) Channel Control B */
  1027. __I uint8_t Reserved6[4];
  1028. __IO DMAC_CHINTENCLR_Type CHINTENCLR; /**< Offset: 0x4C (R/W 8) Channel Interrupt Enable Clear */
  1029. __IO DMAC_CHINTENSET_Type CHINTENSET; /**< Offset: 0x4D (R/W 8) Channel Interrupt Enable Set */
  1030. __IO DMAC_CHINTFLAG_Type CHINTFLAG; /**< Offset: 0x4E (R/W 8) Channel Interrupt Flag Status and Clear */
  1031. __I DMAC_CHSTATUS_Type CHSTATUS; /**< Offset: 0x4F (R/ 8) Channel Status */
  1032. } Dmac;
  1033. #endif /* !(defined(__ASSEMBLER__) || defined(__IAR_SYSTEMS_ASM__)) */
  1034. /** \brief DMAC_DESCRIPTOR memory section attribute */
  1035. #define SECTION_DMAC_DESCRIPTOR
  1036. /** @} end of Direct Memory Access Controller */
  1037. #endif /* _SAML11_DMAC_COMPONENT_H_ */