pdma_reg.h 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886
  1. /**************************************************************************//**
  2. * @file pdma_reg.h
  3. * @version V1.00
  4. * @brief PDMA register definition header file
  5. *
  6. * SPDX-License-Identifier: Apache-2.0
  7. * @copyright (C) 2017-2020 Nuvoton Technology Corp. All rights reserved.
  8. *****************************************************************************/
  9. #ifndef __PDMA_REG_H__
  10. #define __PDMA_REG_H__
  11. #if defined ( __CC_ARM )
  12. #pragma anon_unions
  13. #endif
  14. /**
  15. @addtogroup REGISTER Control Register
  16. @{
  17. */
  18. /**
  19. @addtogroup PDMA Peripheral Direct Memory Access Controller(PDMA)
  20. Memory Mapped Structure for PDMA Controller
  21. @{ */
  22. typedef struct
  23. {
  24. /**
  25. * @var DSCT_T::CTL
  26. * Offset: 0x00 Descriptor Table Control Register of PDMA Channel n.
  27. * ---------------------------------------------------------------------------------------------------
  28. * |Bits |Field |Descriptions
  29. * | :----: | :----: | :---- |
  30. * |[1:0] |OPMODE |PDMA Operation Mode Selection
  31. * | | |00 = Idle state: Channel is stopped or this table is complete, when PDMA finish channel table task, OPMODE will be cleared to idle state automatically.
  32. * | | |01 = Basic mode: The descriptor table only has one task
  33. * | | |When this task is finished, the PDMA_INTSTS[n] will be asserted.
  34. * | | |10 = Scatter-Gather mode: When operating in this mode, user must give the next descriptor table address in PDMA_DSCT_NEXT register; PDMA controller will ignore this task, then load the next task to execute.
  35. * | | |11 = Reserved.
  36. * | | |Note: Before filling transfer task in the Descriptor Table, user must check if the descriptor table is complete.
  37. * |[2] |TXTYPE |Transfer Type
  38. * | | |0 = Burst transfer type.
  39. * | | |1 = Single transfer type.
  40. * |[6:4] |BURSIZE |Burst Size
  41. * | | |This field is used for peripheral to determine the burst size or used for determine the re-arbitration size.
  42. * | | |000 = 128 Transfers.
  43. * | | |001 = 64 Transfers.
  44. * | | |010 = 32 Transfers.
  45. * | | |011 = 16 Transfers.
  46. * | | |100 = 8 Transfers.
  47. * | | |101 = 4 Transfers.
  48. * | | |110 = 2 Transfers.
  49. * | | |111 = 1 Transfers.
  50. * | | |Note: This field is only useful in burst transfer type.
  51. * |[7] |TBINTDIS |Table Interrupt Disable Bit
  52. * | | |This field can be used to decide whether to enable table interrupt or not
  53. * | | |If the TBINTDIS bit is enabled when PDMA controller finishes transfer task, it will not generates transfer done interrupt.
  54. * | | |0 = Table interrupt Enabled.
  55. * | | |1 = Table interrupt Disabled.
  56. * |[9:8] |SAINC |Source Address Increment
  57. * | | |This field is used to set the source address increment size.
  58. * | | |11 = No increment (fixed address).
  59. * | | |Others = Increment and size is depended on TXWIDTH selection.
  60. * |[11:10] |DAINC |Destination Address Increment
  61. * | | |This field is used to set the destination address increment size.
  62. * | | |11 = No increment (fixed address).
  63. * | | |Others = Increment and size is depended on TXWIDTH selection.
  64. * |[13:12] |TXWIDTH |Transfer Width Selection
  65. * | | |This field is used for transfer width.
  66. * | | |00 = One byte (8 bit) is transferred for every operation.
  67. * | | |01= One half-word (16 bit) is transferred for every operation.
  68. * | | |10 = One word (32-bit) is transferred for every operation.
  69. * | | |11 = Reserved.
  70. * | | |Note: The PDMA transfer source address (PDMA_DSCT_SA) and PDMA transfer destination address (PDMA_DSCT_DA) should be alignment under the TXWIDTH selection
  71. * |[14] |TXACK |Transfer Acknowledge Selection
  72. * | | |0 = transfer ack when transfer done.
  73. * | | |1 = transfer ack when PDMA get transfer data.
  74. * |[15] |STRIDEEN |Stride Mode Enable Bit
  75. * | | |0 = Stride transfer mode Disabled.
  76. * | | |1 = Stride transfer mode Enabled.
  77. * |[31:16] |TXCNT |Transfer Count
  78. * | | |The TXCNT represents the required number of PDMA transfer, the real transfer count is (TXCNT + 1); The maximum transfer count is 16384 , every transfer may be byte, half-word or word that is dependent on TXWIDTH field.
  79. * | | |Note: When PDMA finish each transfer data, this field will be decrease immediately.
  80. * @var DSCT_T::SA
  81. * Offset: 0x04 Source Address Register of PDMA Channel n
  82. * ---------------------------------------------------------------------------------------------------
  83. * |Bits |Field |Descriptions
  84. * | :----: | :----: | :---- |
  85. * |[31:0] |SA |PDMA Transfer Source Address Register
  86. * | | |This field indicates a 32-bit source address of PDMA controller.
  87. * @var DSCT_T::DA
  88. * Offset: 0x08 Destination Address Register of PDMA Channel n
  89. * ---------------------------------------------------------------------------------------------------
  90. * |Bits |Field |Descriptions
  91. * | :----: | :----: | :---- |
  92. * |[31:0] |DA |PDMA Transfer Destination Address Register
  93. * | | |This field indicates a 32-bit destination address of PDMA controller.
  94. * @var DSCT_T::NEXT
  95. * Offset: 0x0C Next Scatter-Gather Descriptor Table Offset Address of PDMA Channel n
  96. * ---------------------------------------------------------------------------------------------------
  97. * |Bits |Field |Descriptions
  98. * | :----: | :----: | :---- |
  99. * |[15:0] |EXENEXT |PDMA Execution Next Descriptor Table Offset
  100. * | | |This field indicates the offset of next descriptor table address of current execution descriptor table in system memory.
  101. * | | |Note: write operation is useless in this field.
  102. * |[31:16] |NEXT |PDMA Next Descriptor Table Offset.
  103. * | | |This field indicates the offset of the next descriptor table address in system memory.
  104. * | | |Write Operation:
  105. * | | |If the system memory based address is 0x2000_0000 (PDMA_SCATBA), and the next descriptor table is start from 0x2000_0100, then this field must fill in 0x0100.
  106. * | | |Read Operation:
  107. * | | |When operating in scatter-gather mode, the last two bits NEXT[1:0] will become reserved, and indicate the first next address of system memory.
  108. * | | |Note1: The descriptor table address must be word boundary.
  109. * | | |Note2: Before filled transfer task in the descriptor table, user must check if the descriptor table is complete.
  110. */
  111. __IO uint32_t CTL; /*!< [0x0000] Descriptor Table Control Register of PDMA Channel n. */
  112. __IO uint32_t SA; /*!< [0x0004] Source Address Register of PDMA Channel n */
  113. __IO uint32_t DA; /*!< [0x0008] Destination Address Register of PDMA Channel n */
  114. __IO uint32_t NEXT; /*!< [0x000c] First Scatter-Gather Descriptor Table Offset Address of PDMA Channel n */
  115. } DSCT_T;
  116. typedef struct
  117. {
  118. /**
  119. * @var STRIDE_T::STCR
  120. * Offset: 0x500 Stride Transfer Count Register of PDMA Channel n
  121. * ---------------------------------------------------------------------------------------------------
  122. * |Bits |Field |Descriptions
  123. * | :----: | :----: | :---- |
  124. * |[15:0] |STC |PDMA Stride Transfer Count
  125. * | | |The 16-bit register defines the stride transfer count of each row.
  126. * @var STRIDE_T::ASOCR
  127. * Offset: 0x504 Address Stride Offset Register of PDMA Channel n
  128. * ---------------------------------------------------------------------------------------------------
  129. * |Bits |Field |Descriptions
  130. * | :----: | :----: | :---- |
  131. * |[15:0] |SASOL |VDMA Source Address Stride Offset Length
  132. * | | |The 16-bit register defines the source address stride transfer offset count of each row.
  133. * |[31:16] |DASOL |VDMA Destination Address Stride Offset Length
  134. * | | |The 16-bit register defines the destination address stride transfer offset count of each row.
  135. */
  136. __IO uint32_t STCR; /*!< [0x0500] Stride Transfer Count Register of PDMA Channel 0 */
  137. __IO uint32_t ASOCR; /*!< [0x0504] Address Stride Offset Register of PDMA Channel 0 */
  138. } STRIDE_T;
  139. typedef struct
  140. {
  141. /**
  142. * @var REPEAT_T::AICTL
  143. * Offset: 0x600 Address Interval Control Register of PDMA Channel n
  144. * ---------------------------------------------------------------------------------------------------
  145. * |Bits |Field |Descriptions
  146. * | :----: | :----: | :---- |
  147. * |[15:0] |SAICNT |PDMA Source Address Interval Count
  148. * | | |The 16-bit register defines the source address interval count of each row.
  149. * |[31:16] |DAICNT |PDMA Destination Address Interval Count
  150. * | | |The 16-bit register defines the destination address interval count of each row.
  151. * @var REPEAT_T::RCNT
  152. * Offset: 0x604 Repeat Count Register of PDMA Channe n
  153. * ---------------------------------------------------------------------------------------------------
  154. * |Bits |Field |Descriptions
  155. * | :----: | :----: | :---- |
  156. * |[15:0] |RCNT |PDMA Repeat Count
  157. * | | |The 16-bit register defines the repeat times of block transfer.
  158. */
  159. __IO uint32_t AICTL; /*!< [0x0600] Address Interval Control Register of PDMA Channel 0 */
  160. __IO uint32_t RCNT; /*!< [0x0604] Repeat Count Register of PDMA Channel 0 */
  161. } REPEAT_T;
  162. typedef struct
  163. {
  164. /**
  165. * @var PDMA_T::CURSCAT
  166. * Offset: 0x100 Current Scatter-Gather Descriptor Table Address of PDMA Channel n
  167. * ---------------------------------------------------------------------------------------------------
  168. * |Bits |Field |Descriptions
  169. * | :----: | :----: | :---- |
  170. * |[31:0] |CURADDR |PDMA Current Description Address Register (Read Only)
  171. * | | |This field indicates a 32-bit current external description address of PDMA controller.
  172. * | | |Note: This field is read only and only used for Scatter-Gather mode to indicate the current external description address.
  173. * @var PDMA_T::CHCTL
  174. * Offset: 0x400 PDMA Channel Control Register
  175. * ---------------------------------------------------------------------------------------------------
  176. * |Bits |Field |Descriptions
  177. * | :----: | :----: | :---- |
  178. * |[15:0] |CHENn |PDMA Channel Enable Bit
  179. * | | |Set this bit to 1 to enable PDMAn operation. Channel cannot be active if it is not set as enabled.
  180. * | | |0 = PDMA channel [n] Disabled.
  181. * | | |1 = PDMA channel [n] Enabled.
  182. * | | |Note: Set corresponding bit of PDMA_PAUSE or PDMA_CHRST register will also clear this bit.
  183. * @var PDMA_T::PAUSE
  184. * Offset: 0x404 PDMA Transfer Stop Control Register
  185. * ---------------------------------------------------------------------------------------------------
  186. * |Bits |Field |Descriptions
  187. * | :----: | :----: | :---- |
  188. * |[15:0] |PAUSEn |PDMA Transfer Pause Control Register (Write Only)
  189. * | | |User can set PAUSEn bit field to pause the PDMA transfer
  190. * | | |When user sets PAUSEn bit, the PDMA controller will pause the on-going transfer, then clear the channel enable bit CHEN(PDMA_CHCTL [n], n=0,1..7) and clear request active flag
  191. * | | |If re-enable the paused channel again, the remaining transfers will be processed.
  192. * | | |0 = No effect.
  193. * | | |1 = Pause PDMA channel n transfer.
  194. * @var PDMA_T::SWREQ
  195. * Offset: 0x408 PDMA Software Request Register
  196. * ---------------------------------------------------------------------------------------------------
  197. * |Bits |Field |Descriptions
  198. * | :----: | :----: | :---- |
  199. * |[15:0] |SWREQn |PDMA Software Request Register (Write Only)
  200. * | | |Set this bit to 1 to generate a software request to PDMA [n].
  201. * | | |0 = No effect.
  202. * | | |1 = Generate a software request.
  203. * | | |Note1: User can read PDMA_TRGSTS register to know which channel is on active
  204. * | | |Active flag may be triggered by software request or peripheral request.
  205. * | | |Note2: If user does not enable corresponding PDMA channel, the software request will be ignored.
  206. * @var PDMA_T::TRGSTS
  207. * Offset: 0x40C PDMA Channel Request Status Register
  208. * ---------------------------------------------------------------------------------------------------
  209. * |Bits |Field |Descriptions
  210. * | :----: | :----: | :---- |
  211. * |[15:0] |REQSTSn |PDMA Channel Request Status (Read Only)
  212. * | | |This flag indicates whether channel[n] have a request or not, no matter request from software or peripheral
  213. * | | |When PDMA controller finishes channel transfer, this bit will be cleared automatically.
  214. * | | |0 = PDMA Channel n has no request.
  215. * | | |1 = PDMA Channel n has a request.
  216. * | | |Note: If user pauses or resets each PDMA transfer by setting PDMA_PAUSE or PDMA_CHRST register respectively, this bit will be cleared automatically after finishing current transfer.
  217. * @var PDMA_T::PRISET
  218. * Offset: 0x410 PDMA Fixed Priority Setting Register
  219. * ---------------------------------------------------------------------------------------------------
  220. * |Bits |Field |Descriptions
  221. * | :----: | :----: | :---- |
  222. * |[15:0] |FPRISETn |PDMA Fixed Priority Setting Register
  223. * | | |Set this bit to 1 to enable fixed priority level.
  224. * | | |Write Operation:
  225. * | | |0 = No effect.
  226. * | | |1 = Set PDMA channel [n] to fixed priority channel.
  227. * | | |Read Operation:
  228. * | | |0 = Corresponding PDMA channel is round-robin priority.
  229. * | | |1 = Corresponding PDMA channel is fixed priority.
  230. * | | |Note: This field only set to fixed priority, clear fixed priority use PDMA_PRICLR register.
  231. * @var PDMA_T::PRICLR
  232. * Offset: 0x414 PDMA Fixed Priority Clear Register
  233. * ---------------------------------------------------------------------------------------------------
  234. * |Bits |Field |Descriptions
  235. * | :----: | :----: | :---- |
  236. * |[15:0] |FPRICLRn |PDMA Fixed Priority Clear Register (Write Only)
  237. * | | |Set this bit to 1 to clear fixed priority level.
  238. * | | |0 = No effect.
  239. * | | |1 = Clear PDMA channel [n] fixed priority setting.
  240. * | | |Note: User can read PDMA_PRISET register to know the channel priority.
  241. * @var PDMA_T::INTEN
  242. * Offset: 0x418 PDMA Interrupt Enable Register
  243. * ---------------------------------------------------------------------------------------------------
  244. * |Bits |Field |Descriptions
  245. * | :----: | :----: | :---- |
  246. * |[15:0] |INTENn |PDMA Interrupt Enable Register
  247. * | | |This field is used for enabling PDMA channel[n] interrupt.
  248. * | | |0 = PDMA channel n interrupt Disabled.
  249. * | | |1 = PDMA channel n interrupt Enabled.
  250. * @var PDMA_T::INTSTS
  251. * Offset: 0x41C PDMA Interrupt Status Register
  252. * ---------------------------------------------------------------------------------------------------
  253. * |Bits |Field |Descriptions
  254. * | :----: | :----: | :---- |
  255. * |[0] |ABTIF |PDMA Read/Write Target Abort Interrupt Flag (Read-only)
  256. * | | |This bit indicates that PDMA has target abort error; Software can read PDMA_ABTSTS register to find which channel has target abort error.
  257. * | | |0 = No AHB bus ERROR response received.
  258. * | | |1 = AHB bus ERROR response received.
  259. * |[1] |TDIF |Transfer Done Interrupt Flag (Read Only)
  260. * | | |This bit indicates that PDMA controller has finished transmission; User can read PDMA_TDSTS register to indicate which channel finished transfer.
  261. * | | |0 = Not finished yet.
  262. * | | |1 = PDMA channel has finished transmission.
  263. * |[2] |ALIGNF |Transfer Alignment Interrupt Flag (Read Only)
  264. * | | |0 = PDMA channel source address and destination address both follow transfer width setting.
  265. * | | |1 = PDMA channel source address or destination address is not follow transfer width setting.
  266. * |[8] |REQTOF0 |Request Time-out Flag for Channel 0
  267. * | | |This flag indicates that PDMA controller has waited peripheral request for a period defined by PDMA_TOC0, user can write 1 to clear these bits.
  268. * | | |0 = No request time-out.
  269. * | | |1 = Peripheral request time-out.
  270. * |[9] |REQTOF1 |Request Time-out Flag for Channel 1
  271. * | | |This flag indicates that PDMA controller has waited peripheral request for a period defined by PDMA_TOC1, user can write 1 to clear these bits.
  272. * | | |0 = No request time-out.
  273. * | | |1 = Peripheral request time-out.
  274. * @var PDMA_T::ABTSTS
  275. * Offset: 0x420 PDMA Channel Read/Write Target Abort Flag Register
  276. * ---------------------------------------------------------------------------------------------------
  277. * |Bits |Field |Descriptions
  278. * | :----: | :----: | :---- |
  279. * |[15:0] |ABTIFn |PDMA Read/Write Target Abort Interrupt Status Flag
  280. * | | |This bit indicates which PDMA controller has target abort error; User can write 1 to clear these bits.
  281. * | | |0 = No AHB bus ERROR response received when channel n transfer.
  282. * | | |1 = AHB bus ERROR response received when channel n transfer.
  283. * @var PDMA_T::TDSTS
  284. * Offset: 0x424 PDMA Channel Transfer Done Flag Register
  285. * ---------------------------------------------------------------------------------------------------
  286. * |Bits |Field |Descriptions
  287. * | :----: | :----: | :---- |
  288. * |[15:0] |TDIFn |Transfer Done Flag Register
  289. * | | |This bit indicates whether PDMA controller channel transfer has been finished or not, user can write 1 to clear these bits.
  290. * | | |0 = PDMA channel transfer has not finished.
  291. * | | |1 = PDMA channel has finished transmission.
  292. * @var PDMA_T::ALIGN
  293. * Offset: 0x428 PDMA Transfer Alignment Status Register
  294. * ---------------------------------------------------------------------------------------------------
  295. * |Bits |Field |Descriptions
  296. * | :----: | :----: | :---- |
  297. * |[15:0] |ALIGNn |Transfer Alignment Flag Register
  298. * | | |0 = PDMA channel source address and destination address both follow transfer width setting.
  299. * | | |1 = PDMA channel source address or destination address is not follow transfer width setting.
  300. * @var PDMA_T::TACTSTS
  301. * Offset: 0x42C PDMA Transfer Active Flag Register
  302. * ---------------------------------------------------------------------------------------------------
  303. * |Bits |Field |Descriptions
  304. * | :----: | :----: | :---- |
  305. * |[15:0] |TXACTFn |Transfer on Active Flag Register (Read Only)
  306. * | | |This bit indicates which PDMA channel is in active.
  307. * | | |0 = PDMA channel is not finished.
  308. * | | |1 = PDMA channel is active.
  309. * @var PDMA_T::TOUTPSC
  310. * Offset: 0x430 PDMA Time-out Prescaler Register
  311. * ---------------------------------------------------------------------------------------------------
  312. * |Bits |Field |Descriptions
  313. * | :----: | :----: | :---- |
  314. * |[2:0] |TOUTPSC0 |PDMA Channel 0 Time-out Clock Source Prescaler Bits
  315. * | | |000 = PDMA channel 0 time-out clock source is HCLK/28.
  316. * | | |001 = PDMA channel 0 time-out clock source is HCLK/29.
  317. * | | |010 = PDMA channel 0 time-out clock source is HCLK/210.
  318. * | | |011 = PDMA channel 0 time-out clock source is HCLK/211.
  319. * | | |100 = PDMA channel 0 time-out clock source is HCLK/212.
  320. * | | |101 = PDMA channel 0 time-out clock source is HCLK/213.
  321. * | | |110 = PDMA channel 0 time-out clock source is HCLK/214.
  322. * | | |111 = PDMA channel 0 time-out clock source is HCLK/215.
  323. * |[6:4] |TOUTPSC1 |PDMA Channel 1 Time-out Clock Source Prescaler Bits
  324. * | | |000 = PDMA channel 1 time-out clock source is HCLK/28.
  325. * | | |001 = PDMA channel 1 time-out clock source is HCLK/29.
  326. * | | |010 = PDMA channel 1 time-out clock source is HCLK/210.
  327. * | | |011 = PDMA channel 1 time-out clock source is HCLK/211.
  328. * | | |100 = PDMA channel 1 time-out clock source is HCLK/212.
  329. * | | |101 = PDMA channel 1 time-out clock source is HCLK/213.
  330. * | | |110 = PDMA channel 1 time-out clock source is HCLK/214.
  331. * | | |111 = PDMA channel 1 time-out clock source is HCLK/215.
  332. * @var PDMA_T::TOUTEN
  333. * Offset: 0x434 PDMA Time-out Enable Register
  334. * ---------------------------------------------------------------------------------------------------
  335. * |Bits |Field |Descriptions
  336. * | :----: | :----: | :---- |
  337. * |[1:0] |TOUTENn |PDMA Time-out Enable Bits
  338. * | | |0 = PDMA Channel n time-out function Disable.
  339. * | | |1 = PDMA Channel n time-out function Enable.
  340. * @var PDMA_T::TOUTIEN
  341. * Offset: 0x438 PDMA Time-out Interrupt Enable Register
  342. * ---------------------------------------------------------------------------------------------------
  343. * |Bits |Field |Descriptions
  344. * | :----: | :----: | :---- |
  345. * |[1:0] |TOUTIENn |PDMA Time-out Interrupt Enable Bits
  346. * | | |0 = PDMA Channel n time-out interrupt Disable.
  347. * | | |1 = PDMA Channel n time-out interrupt Enable.
  348. * @var PDMA_T::SCATBA
  349. * Offset: 0x43C PDMA Scatter-Gather Descriptor Table Base Address Register
  350. * ---------------------------------------------------------------------------------------------------
  351. * |Bits |Field |Descriptions
  352. * | :----: | :----: | :---- |
  353. * |[31:16] |SCATBA |PDMA Scatter-gather Descriptor Table Address Register
  354. * | | |In Scatter-Gather mode, this is the base address for calculating the next link - list address
  355. * | | |The next link address equation is
  356. * | | |Next Link Address = PDMA_SCATBA + PDMA_DSCT_NEXT.
  357. * | | |Note: Only useful in Scatter-Gather mode.
  358. * @var PDMA_T::TOC0_1
  359. * Offset: 0x440 PDMA Time-out Counter Ch1 and Ch0 Register
  360. * ---------------------------------------------------------------------------------------------------
  361. * |Bits |Field |Descriptions
  362. * | :----: | :----: | :---- |
  363. * |[15:0] |TOC0 |Time-out Counter for Channel 0
  364. * | | |This controls the period of time-out function for channel 0
  365. * | | |The calculation unit is based on 10 kHz clock.
  366. * |[31:16] |TOC1 |Time-out Counter for Channel 1
  367. * | | |This controls the period of time-out function for channel 1
  368. * | | |The calculation unit is based on 10 kHz clock.
  369. * @var PDMA_T::CHRST
  370. * Offset: 0x460 PDMA Channel Reset Register
  371. * ---------------------------------------------------------------------------------------------------
  372. * |Bits |Field |Descriptions
  373. * | :----: | :----: | :---- |
  374. * |[15:0] |CHnRST |Channel N Reset
  375. * | | |0 = corresponding channel n not reset.
  376. * | | |1 = corresponding channel n is reset.
  377. * @var PDMA_T::REQSEL0_3
  378. * Offset: 0x480 PDMA Request Source Select Register 0
  379. * ---------------------------------------------------------------------------------------------------
  380. * |Bits |Field |Descriptions
  381. * | :----: | :----: | :---- |
  382. * |[6:0] |REQSRC0 |Channel 0 Request Source Selection
  383. * | | |This filed defines which peripheral is connected to PDMA channel 0
  384. * | | |User can configure the peripheral by setting REQSRC0.
  385. * | | |0 = Disable PDMA peripheral request.
  386. * | | |1 = Reserved.
  387. * | | |2 = Channel connects to USB_TX.
  388. * | | |3 = Channel connects to USB_RX.
  389. * | | |4 = Channel connects to UART0_TX.
  390. * | | |5 = Channel connects to UART0_RX.
  391. * | | |6 = Channel connects to UART1_TX.
  392. * | | |7 = Channel connects to UART1_RX.
  393. * | | |8 = Channel connects to UART2_TX.
  394. * | | |9 = Channel connects to UART2_RX.
  395. * | | |10=Channel connects to UART3_TX.
  396. * | | |11 = Channel connects to UART3_RX.
  397. * | | |12 = Channel connects to UART4_TX.
  398. * | | |13 = Channel connects to UART4_RX.
  399. * | | |14 = Channel connects to UART5_TX.
  400. * | | |15 = Channel connects to UART5_RX.
  401. * | | |16 = Channel connects to USCI0_TX.
  402. * | | |17 = Channel connects to USCI0_RX.
  403. * | | |18 = Channel connects to USCI1_TX.
  404. * | | |19 = Channel connects to USCI1_RX.
  405. * | | |20 = Channel connects to QSPI0_TX.
  406. * | | |21 = Channel connects to QSPI0_RX.
  407. * | | |22 = Channel connects to SPI0_TX.
  408. * | | |23 = Channel connects to SPI0_RX.
  409. * | | |24 = Channel connects to SPI1_TX.
  410. * | | |25 = Channel connects to SPI1_RX.
  411. * | | |26 = Channel connects to SPI2_TX.
  412. * | | |27 = Channel connects to SPI2_RX.
  413. * | | |28 = Channel connects to SPI3_TX.
  414. * | | |29 = Channel connects to SPI3_RX.
  415. * | | |30 = Reserved.
  416. * | | |31 = Reserved.
  417. * | | |32 = Channel connects to EPWM0_P1_RX.
  418. * | | |33 = Channel connects to EPWM0_P2_RX.
  419. * | | |34 = Channel connects to EPWM0_P3_RX.
  420. * | | |35 = Channel connects to EPWM1_P1_RX.
  421. * | | |36 = Channel connects to EPWM1_P2_RX.
  422. * | | |37 = Channel connects to EPWM1_P3_RX.
  423. * | | |38 = Channel connects to I2C0_TX.
  424. * | | |39 = Channel connects to I2C0_RX.
  425. * | | |40 = Channel connects to I2C1_TX.
  426. * | | |41 = Channel connects to I2C1_RX.
  427. * | | |42 = Channel connects to I2C2_TX.
  428. * | | |43 = Channel connects to I2C2_RX.
  429. * | | |44 = Channel connects to I2S0_TX.
  430. * | | |45 = Channel connects to I2S0_RX.
  431. * | | |46 = Channel connects to TMR0.
  432. * | | |47 = Channel connects to TMR1.
  433. * | | |48 = Channel connects to TMR2.
  434. * | | |49 = Channel connects to TMR3.
  435. * | | |50 = Channel connects to ADC_RX.
  436. * | | |51 = Channel connects to DAC0_TX.
  437. * | | |52 = Channel connects to DAC1_TX.
  438. * | | |53 = Channel connects to EPWM0_CH0_TX.
  439. * | | |54 = Channel connects to EPWM0_CH1_TX.
  440. * | | |55 = Channel connects to EPWM0_CH2_TX.
  441. * | | |56 = Channel connects to EPWM0_CH3_TX.
  442. * | | |57 = Channel connects to EPWM0_CH4_TX.
  443. * | | |58 = Channel connects to EPWM0_CH5_TX.
  444. * | | |59 = Channel connects to EPWM1_CH0_TX.
  445. * | | |60 = Channel connects to EPWM1_CH1_TX.
  446. * | | |61 = Channel connects to EPWM1_CH2_TX.
  447. * | | |62 = Channel connects to EPWM1_CH3_TX.
  448. * | | |63 = Channel connects to EPWM1_CH4_TX.
  449. * | | |64 = Channel connects to EPWM1_CH5_TX.
  450. * | | |65 = Channel connects to ETMC_RX.
  451. * | | |Others = Reserved.
  452. * | | |Note 1: A peripheral can't assign to two channels at the same time.
  453. * | | |Note 2: This field is useless when transfer between memory and memory.
  454. * |[14:8] |REQSRC1 |Channel 1 Request Source Selection
  455. * | | |This filed defines which peripheral is connected to PDMA channel 1
  456. * | | |User can configure the peripheral setting by REQSRC1.
  457. * | | |Note: The channel configuration is the same as REQSRC0 field
  458. * | | |Please refer to the explanation of REQSRC0.
  459. * |[22:16] |REQSRC2 |Channel 2 Request Source Selection
  460. * | | |This filed defines which peripheral is connected to PDMA channel 2
  461. * | | |User can configure the peripheral setting by REQSRC2.
  462. * | | |Note: The channel configuration is the same as REQSRC0 field
  463. * | | |Please refer to the explanation of REQSRC0.
  464. * |[30:24] |REQSRC3 |Channel 3 Request Source Selection
  465. * | | |This filed defines which peripheral is connected to PDMA channel 3
  466. * | | |User can configure the peripheral setting by REQSRC3.
  467. * | | |Note: The channel configuration is the same as REQSRC0 field
  468. * | | |Please refer to the explanation of REQSRC0.
  469. * @var PDMA_T::REQSEL4_7
  470. * Offset: 0x484 PDMA Request Source Select Register 1
  471. * ---------------------------------------------------------------------------------------------------
  472. * |Bits |Field |Descriptions
  473. * | :----: | :----: | :---- |
  474. * |[6:0] |REQSRC4 |Channel 4 Request Source Selection
  475. * | | |This filed defines which peripheral is connected to PDMA channel 4
  476. * | | |User can configure the peripheral setting by REQSRC4.
  477. * | | |Note: The channel configuration is the same as REQSRC0 field
  478. * | | |Please refer to the explanation of REQSRC0.
  479. * |[14:8] |REQSRC5 |Channel 5 Request Source Selection
  480. * | | |This filed defines which peripheral is connected to PDMA channel 5
  481. * | | |User can configure the peripheral setting by REQSRC5.
  482. * | | |Note: The channel configuration is the same as REQSRC0 field
  483. * | | |Please refer to the explanation of REQSRC0.
  484. * |[22:16] |REQSRC6 |Channel 6 Request Source Selection
  485. * | | |This filed defines which peripheral is connected to PDMA channel 6
  486. * | | |User can configure the peripheral setting by REQSRC6.
  487. * | | |Note: The channel configuration is the same as REQSRC0 field
  488. * | | |Please refer to the explanation of REQSRC0.
  489. * |[30:24] |REQSRC7 |Channel 7 Request Source Selection
  490. * | | |This filed defines which peripheral is connected to PDMA channel 7
  491. * | | |User can configure the peripheral setting by REQSRC7.
  492. * | | |Note: The channel configuration is the same as REQSRC0 field
  493. * | | |Please refer to the explanation of REQSRC0.
  494. * @var PDMA_T::REQSEL8_11
  495. * Offset: 0x488 PDMA Request Source Select Register 2
  496. * ---------------------------------------------------------------------------------------------------
  497. * |Bits |Field |Descriptions
  498. * | :----: | :----: | :---- |
  499. * |[6:0] |REQSRC8 |Channel 8 Request Source Selection
  500. * | | |This filed defines which peripheral is connected to PDMA channel 8
  501. * | | |User can configure the peripheral setting by REQSRC8.
  502. * | | |Note: The channel configuration is the same as REQSRC0 field
  503. * | | |Please refer to the explanation of REQSRC0.
  504. * |[14:8] |REQSRC9 |Channel 9 Request Source Selection
  505. * | | |This filed defines which peripheral is connected to PDMA channel 9
  506. * | | |User can configure the peripheral setting by REQSRC9.
  507. * | | |Note: The channel configuration is the same as REQSRC0 field
  508. * | | |Please refer to the explanation of REQSRC0.
  509. * |[22:16] |REQSRC10 |Channel 10 Request Source Selection
  510. * | | |This filed defines which peripheral is connected to PDMA channel 10
  511. * | | |User can configure the peripheral setting by REQSRC10.
  512. * | | |Note: The channel configuration is the same as REQSRC0 field
  513. * | | |Please refer to the explanation of REQSRC0.
  514. * |[30:24] |REQSRC11 |Channel 11 Request Source Selection
  515. * | | |This filed defines which peripheral is connected to PDMA channel 11
  516. * | | |User can configure the peripheral setting by REQSRC11.
  517. * | | |Note: The channel configuration is the same as REQSRC0 field
  518. * | | |Please refer to the explanation of REQSRC0.
  519. * @var PDMA_T::REQSEL12_15
  520. * Offset: 0x48C PDMA Request Source Select Register 3
  521. * ---------------------------------------------------------------------------------------------------
  522. * |Bits |Field |Descriptions
  523. * | :----: | :----: | :---- |
  524. * |[6:0] |REQSRC12 |Channel 12 Request Source Selection
  525. * | | |This filed defines which peripheral is connected to PDMA channel 12
  526. * | | |User can configure the peripheral setting by REQSRC12.
  527. * | | |Note: The channel configuration is the same as REQSRC0 field
  528. * | | |Please refer to the explanation of REQSRC0.
  529. * |[14:8] |REQSRC13 |Channel 13 Request Source Selection
  530. * | | |This filed defines which peripheral is connected to PDMA channel 13
  531. * | | |User can configure the peripheral setting by REQSRC13.
  532. * | | |Note: The channel configuration is the same as REQSRC0 field
  533. * | | |Please refer to the explanation of REQSRC0.
  534. * |[22:16] |REQSRC14 |Channel 14 Request Source Selection
  535. * | | |This filed defines which peripheral is connected to PDMA channel 14
  536. * | | |User can configure the peripheral setting by REQSRC14.
  537. * | | |Note: The channel configuration is the same as REQSRC0 field
  538. * | | |Please refer to the explanation of REQSRC0.
  539. * |[30:24] |REQSRC15 |Channel 15 Request Source Selection
  540. * | | |This filed defines which peripheral is connected to PDMA channel 15
  541. * | | |User can configure the peripheral setting by REQSRC15.
  542. * | | |Note: The channel configuration is the same as REQSRC0 field
  543. * | | |Please refer to the explanation of REQSRC0.
  544. */
  545. DSCT_T DSCT[16];
  546. __I uint32_t CURSCAT[16]; /*!< [0x0100] Current Scatter-Gather Descriptor Table Address of PDMA Channel n */
  547. /// @cond HIDDEN_SYMBOLS
  548. __I uint32_t RESERVE1[176];
  549. /// @endcond //HIDDEN_SYMBOLS
  550. __IO uint32_t CHCTL; /*!< [0x0400] PDMA Channel Control Register */
  551. __O uint32_t PAUSE; /*!< [0x0404] PDMA Transfer Pause Control Register */
  552. __O uint32_t SWREQ; /*!< [0x0408] PDMA Software Request Register */
  553. __I uint32_t TRGSTS; /*!< [0x040c] PDMA Channel Request Status Register */
  554. __IO uint32_t PRISET; /*!< [0x0410] PDMA Fixed Priority Setting Register */
  555. __O uint32_t PRICLR; /*!< [0x0414] PDMA Fixed Priority Clear Register */
  556. __IO uint32_t INTEN; /*!< [0x0418] PDMA Interrupt Enable Register */
  557. __IO uint32_t INTSTS; /*!< [0x041c] PDMA Interrupt Status Register */
  558. __IO uint32_t ABTSTS; /*!< [0x0420] PDMA Channel Read/Write Target Abort Flag Register */
  559. __IO uint32_t TDSTS; /*!< [0x0424] PDMA Channel Transfer Done Flag Register */
  560. __IO uint32_t ALIGN; /*!< [0x0428] PDMA Transfer Alignment Status Register */
  561. __I uint32_t TACTSTS; /*!< [0x042c] PDMA Transfer Active Flag Register */
  562. __IO uint32_t TOUTPSC; /*!< [0x0430] PDMA Time-out Prescaler Register */
  563. __IO uint32_t TOUTEN; /*!< [0x0434] PDMA Time-out Enable Register */
  564. __IO uint32_t TOUTIEN; /*!< [0x0438] PDMA Time-out Interrupt Enable Register */
  565. __IO uint32_t SCATBA; /*!< [0x043c] PDMA Scatter-Gather Descriptor Table Base Address Register */
  566. __IO uint32_t TOC0_1; /*!< [0x0440] PDMA Time-out Counter Ch1 and Ch0 Register */
  567. /// @cond HIDDEN_SYMBOLS
  568. __I uint32_t RESERVE2[7];
  569. /// @endcond //HIDDEN_SYMBOLS
  570. __IO uint32_t CHRST; /*!< [0x0460] PDMA Channel Reset Register */
  571. /// @cond HIDDEN_SYMBOLS
  572. __I uint32_t RESERVE3[7];
  573. /// @endcond //HIDDEN_SYMBOLS
  574. __IO uint32_t REQSEL0_3; /*!< [0x0480] PDMA Request Source Select Register 0 */
  575. __IO uint32_t REQSEL4_7; /*!< [0x0484] PDMA Request Source Select Register 1 */
  576. __IO uint32_t REQSEL8_11; /*!< [0x0488] PDMA Request Source Select Register 2 */
  577. __IO uint32_t REQSEL12_15; /*!< [0x048c] PDMA Request Source Select Register 3 */
  578. /// @cond HIDDEN_SYMBOLS
  579. __I uint32_t RESERVE4[28];
  580. /// @endcond //HIDDEN_SYMBOLS
  581. STRIDE_T STRIDE[6];
  582. /// @cond HIDDEN_SYMBOLS
  583. __IO uint32_t RESERVE5[52];
  584. /// @endcond //HIDDEN_SYMBOLS
  585. REPEAT_T REPEAT[2];
  586. } PDMA_T;
  587. /**
  588. @addtogroup PDMA_CONST PDMA Bit Field Definition
  589. Constant Definitions for PDMA Controller
  590. @{ */
  591. #define PDMA_DSCT_CTL_OPMODE_Pos (0) /*!< PDMA_T::DSCT_CTL: OPMODE Position */
  592. #define PDMA_DSCT_CTL_OPMODE_Msk (0x3ul << PDMA_DSCT_CTL_OPMODE_Pos) /*!< PDMA_T::DSCT_CTL: OPMODE Mask */
  593. #define PDMA_DSCT_CTL_TXTYPE_Pos (2) /*!< PDMA_T::DSCT_CTL: TXTYPE Position */
  594. #define PDMA_DSCT_CTL_TXTYPE_Msk (0x1ul << PDMA_DSCT_CTL_TXTYPE_Pos) /*!< PDMA_T::DSCT_CTL: TXTYPE Mask */
  595. #define PDMA_DSCT_CTL_BURSIZE_Pos (4) /*!< PDMA_T::DSCT_CTL: BURSIZE Position */
  596. #define PDMA_DSCT_CTL_BURSIZE_Msk (0x7ul << PDMA_DSCT_CTL_BURSIZE_Pos) /*!< PDMA_T::DSCT_CTL: BURSIZE Mask */
  597. #define PDMA_DSCT_CTL_TBINTDIS_Pos (7) /*!< PDMA_T::DSCT_CTL: TBINTDIS Position */
  598. #define PDMA_DSCT_CTL_TBINTDIS_Msk (0x1ul << PDMA_DSCT_CTL_TBINTDIS_Pos) /*!< PDMA_T::DSCT_CTL: TBINTDIS Mask */
  599. #define PDMA_DSCT_CTL_SAINC_Pos (8) /*!< PDMA_T::DSCT_CTL: SAINC Position */
  600. #define PDMA_DSCT_CTL_SAINC_Msk (0x3ul << PDMA_DSCT_CTL_SAINC_Pos) /*!< PDMA_T::DSCT_CTL: SAINC Mask */
  601. #define PDMA_DSCT_CTL_DAINC_Pos (10) /*!< PDMA_T::DSCT_CTL: DAINC Position */
  602. #define PDMA_DSCT_CTL_DAINC_Msk (0x3ul << PDMA_DSCT_CTL_DAINC_Pos) /*!< PDMA_T::DSCT_CTL: DAINC Mask */
  603. #define PDMA_DSCT_CTL_TXWIDTH_Pos (12) /*!< PDMA_T::DSCT_CTL: TXWIDTH Position */
  604. #define PDMA_DSCT_CTL_TXWIDTH_Msk (0x3ul << PDMA_DSCT_CTL_TXWIDTH_Pos) /*!< PDMA_T::DSCT_CTL: TXWIDTH Mask */
  605. #define PDMA_DSCT_CTL_TXACK_Pos (14) /*!< PDMA_T::DSCT_CTL: TXACK Position */
  606. #define PDMA_DSCT_CTL_TXACK_Msk (0x1ul << PDMA_DSCT_CTL_TXACK_Pos) /*!< PDMA_T::DSCT_CTL: TXACK Mask */
  607. #define PDMA_DSCT_CTL_STRIDEEN_Pos (15) /*!< PDMA_T::DSCT_CTL: STRIDEEN Position */
  608. #define PDMA_DSCT_CTL_STRIDEEN_Msk (0x1ul << PDMA_DSCT_CTL_STRIDEEN_Pos) /*!< PDMA_T::DSCT_CTL: STRIDEEN Mask */
  609. #define PDMA_DSCT_CTL_TXCNT_Pos (16) /*!< PDMA_T::DSCT_CTL: TXCNT Position */
  610. #define PDMA_DSCT_CTL_TXCNT_Msk (0xfffful << PDMA_DSCT_CTL_TXCNT_Pos) /*!< PDMA_T::DSCT_CTL: TXCNT Mask */
  611. #define PDMA_DSCT_SA_SA_Pos (0) /*!< PDMA_T::DSCT_SA: SA Position */
  612. #define PDMA_DSCT_SA_SA_Msk (0xfffffffful << PDMA_DSCT_SA_SA_Pos) /*!< PDMA_T::DSCT_SA: SA Mask */
  613. #define PDMA_DSCT_DA_DA_Pos (0) /*!< PDMA_T::DSCT_DA: DA Position */
  614. #define PDMA_DSCT_DA_DA_Msk (0xfffffffful << PDMA_DSCT_DA_DA_Pos) /*!< PDMA_T::DSCT_DA: DA Mask */
  615. #define PDMA_DSCT_NEXT_NEXT_Pos (0) /*!< PDMA_T::DSCT_NEXT: NEXT Position */
  616. #define PDMA_DSCT_NEXT_NEXT_Msk (0xfffful << PDMA_DSCT_NEXT_NEXT_Pos) /*!< PDMA_T::DSCT_NEXT: NEXT Mask */
  617. #define PDMA_DSCT_NEXT_EXENEXT_Pos (16) /*!< PDMA_T::DSCT_FIRST: NEXT Position */
  618. #define PDMA_DSCT_NEXT_EXENEXT_Msk (0xfffful << PDMA_DSCT_NEXT_EXENEXT_Pos) /*!< PDMA_T::DSCT_FIRST: NEXT Mask */
  619. #define PDMA_CURSCAT_CURADDR_Pos (0) /*!< PDMA_T::CURSCAT: CURADDR Position */
  620. #define PDMA_CURSCAT_CURADDR_Msk (0xfffffffful << PDMA_CURSCAT_CURADDR_Pos) /*!< PDMA_T::CURSCAT: CURADDR Mask */
  621. #define PDMA_CHCTL_CHENn_Pos (0) /*!< PDMA_T::CHCTL: CHENn Position */
  622. #define PDMA_CHCTL_CHENn_Msk (0xfffful << PDMA_CHCTL_CHENn_Pos) /*!< PDMA_T::CHCTL: CHENn Mask */
  623. #define PDMA_PAUSE_PAUSEn_Pos (0) /*!< PDMA_T::PAUSE: PAUSEn Position */
  624. #define PDMA_PAUSE_PAUSEn_Msk (0xfffful << PDMA_PAUSE_PAUSEn_Pos) /*!< PDMA_T::PAUSE: PAUSEn Mask */
  625. #define PDMA_SWREQ_SWREQn_Pos (0) /*!< PDMA_T::SWREQ: SWREQn Position */
  626. #define PDMA_SWREQ_SWREQn_Msk (0xfffful << PDMA_SWREQ_SWREQn_Pos) /*!< PDMA_T::SWREQ: SWREQn Mask */
  627. #define PDMA_TRGSTS_REQSTSn_Pos (0) /*!< PDMA_T::TRGSTS: REQSTSn Position */
  628. #define PDMA_TRGSTS_REQSTSn_Msk (0xfffful << PDMA_TRGSTS_REQSTSn_Pos) /*!< PDMA_T::TRGSTS: REQSTSn Mask */
  629. #define PDMA_PRISET_FPRISETn_Pos (0) /*!< PDMA_T::PRISET: FPRISETn Position */
  630. #define PDMA_PRISET_FPRISETn_Msk (0xfffful << PDMA_PRISET_FPRISETn_Pos) /*!< PDMA_T::PRISET: FPRISETn Mask */
  631. #define PDMA_PRICLR_FPRICLRn_Pos (0) /*!< PDMA_T::PRICLR: FPRICLRn Position */
  632. #define PDMA_PRICLR_FPRICLRn_Msk (0xfffful << PDMA_PRICLR_FPRICLRn_Pos) /*!< PDMA_T::PRICLR: FPRICLRn Mask */
  633. #define PDMA_INTEN_INTENn_Pos (0) /*!< PDMA_T::INTEN: INTENn Position */
  634. #define PDMA_INTEN_INTENn_Msk (0xfffful << PDMA_INTEN_INTENn_Pos) /*!< PDMA_T::INTEN: INTENn Mask */
  635. #define PDMA_INTSTS_ABTIF_Pos (0) /*!< PDMA_T::INTSTS: ABTIF Position */
  636. #define PDMA_INTSTS_ABTIF_Msk (0x1ul << PDMA_INTSTS_ABTIF_Pos) /*!< PDMA_T::INTSTS: ABTIF Mask */
  637. #define PDMA_INTSTS_TDIF_Pos (1) /*!< PDMA_T::INTSTS: TDIF Position */
  638. #define PDMA_INTSTS_TDIF_Msk (0x1ul << PDMA_INTSTS_TDIF_Pos) /*!< PDMA_T::INTSTS: TDIF Mask */
  639. #define PDMA_INTSTS_ALIGNF_Pos (2) /*!< PDMA_T::INTSTS: ALIGNF Position */
  640. #define PDMA_INTSTS_ALIGNF_Msk (0x1ul << PDMA_INTSTS_ALIGNF_Pos) /*!< PDMA_T::INTSTS: ALIGNF Mask */
  641. #define PDMA_INTSTS_REQTOF0_Pos (8) /*!< PDMA_T::INTSTS: REQTOF0 Position */
  642. #define PDMA_INTSTS_REQTOF0_Msk (0x1ul << PDMA_INTSTS_REQTOF0_Pos) /*!< PDMA_T::INTSTS: REQTOF0 Mask */
  643. #define PDMA_INTSTS_REQTOF1_Pos (9) /*!< PDMA_T::INTSTS: REQTOF1 Position */
  644. #define PDMA_INTSTS_REQTOF1_Msk (0x1ul << PDMA_INTSTS_REQTOF1_Pos) /*!< PDMA_T::INTSTS: REQTOF1 Mask */
  645. #define PDMA_ABTSTS_ABTIF0_Pos (0) /*!< PDMA_T::ABTSTS: ABTIF0 Position */
  646. #define PDMA_ABTSTS_ABTIF0_Msk (0x1ul << PDMA_ABTSTS_ABTIF0_Pos) /*!< PDMA_T::ABTSTS: ABTIF0 Mask */
  647. #define PDMA_ABTSTS_ABTIF1_Pos (1) /*!< PDMA_T::ABTSTS: ABTIF1 Position */
  648. #define PDMA_ABTSTS_ABTIF1_Msk (0x1ul << PDMA_ABTSTS_ABTIF1_Pos) /*!< PDMA_T::ABTSTS: ABTIF1 Mask */
  649. #define PDMA_ABTSTS_ABTIF2_Pos (2) /*!< PDMA_T::ABTSTS: ABTIF2 Position */
  650. #define PDMA_ABTSTS_ABTIF2_Msk (0x1ul << PDMA_ABTSTS_ABTIF2_Pos) /*!< PDMA_T::ABTSTS: ABTIF2 Mask */
  651. #define PDMA_ABTSTS_ABTIF3_Pos (3) /*!< PDMA_T::ABTSTS: ABTIF3 Position */
  652. #define PDMA_ABTSTS_ABTIF3_Msk (0x1ul << PDMA_ABTSTS_ABTIF3_Pos) /*!< PDMA_T::ABTSTS: ABTIF3 Mask */
  653. #define PDMA_ABTSTS_ABTIF4_Pos (4) /*!< PDMA_T::ABTSTS: ABTIF4 Position */
  654. #define PDMA_ABTSTS_ABTIF4_Msk (0x1ul << PDMA_ABTSTS_ABTIF4_Pos) /*!< PDMA_T::ABTSTS: ABTIF4 Mask */
  655. #define PDMA_ABTSTS_ABTIF5_Pos (5) /*!< PDMA_T::ABTSTS: ABTIF5 Position */
  656. #define PDMA_ABTSTS_ABTIF5_Msk (0x1ul << PDMA_ABTSTS_ABTIF5_Pos) /*!< PDMA_T::ABTSTS: ABTIF5 Mask */
  657. #define PDMA_ABTSTS_ABTIF6_Pos (6) /*!< PDMA_T::ABTSTS: ABTIF6 Position */
  658. #define PDMA_ABTSTS_ABTIF6_Msk (0x1ul << PDMA_ABTSTS_ABTIF6_Pos) /*!< PDMA_T::ABTSTS: ABTIF6 Mask */
  659. #define PDMA_ABTSTS_ABTIF7_Pos (7) /*!< PDMA_T::ABTSTS: ABTIF7 Position */
  660. #define PDMA_ABTSTS_ABTIF7_Msk (0x1ul << PDMA_ABTSTS_ABTIF7_Pos) /*!< PDMA_T::ABTSTS: ABTIF7 Mask */
  661. #define PDMA_ABTSTS_ABTIF8_Pos (8) /*!< PDMA_T::ABTSTS: ABTIF8 Position */
  662. #define PDMA_ABTSTS_ABTIF8_Msk (0x1ul << PDMA_ABTSTS_ABTIF8_Pos) /*!< PDMA_T::ABTSTS: ABTIF8 Mask */
  663. #define PDMA_ABTSTS_ABTIF9_Pos (9) /*!< PDMA_T::ABTSTS: ABTIF9 Position */
  664. #define PDMA_ABTSTS_ABTIF9_Msk (0x1ul << PDMA_ABTSTS_ABTIF9_Pos) /*!< PDMA_T::ABTSTS: ABTIF9 Mask */
  665. #define PDMA_ABTSTS_ABTIF10_Pos (10) /*!< PDMA_T::ABTSTS: ABTIF10 Position */
  666. #define PDMA_ABTSTS_ABTIF10_Msk (0x1ul << PDMA_ABTSTS_ABTIF10_Pos) /*!< PDMA_T::ABTSTS: ABTIF10 Mask */
  667. #define PDMA_ABTSTS_ABTIF11_Pos (11) /*!< PDMA_T::ABTSTS: ABTIF11 Position */
  668. #define PDMA_ABTSTS_ABTIF11_Msk (0x1ul << PDMA_ABTSTS_ABTIF11_Pos) /*!< PDMA_T::ABTSTS: ABTIF11 Mask */
  669. #define PDMA_ABTSTS_ABTIF12_Pos (12) /*!< PDMA_T::ABTSTS: ABTIF12 Position */
  670. #define PDMA_ABTSTS_ABTIF12_Msk (0x1ul << PDMA_ABTSTS_ABTIF12_Pos) /*!< PDMA_T::ABTSTS: ABTIF12 Mask */
  671. #define PDMA_ABTSTS_ABTIF13_Pos (13) /*!< PDMA_T::ABTSTS: ABTIF13 Position */
  672. #define PDMA_ABTSTS_ABTIF13_Msk (0x1ul << PDMA_ABTSTS_ABTIF13_Pos) /*!< PDMA_T::ABTSTS: ABTIF13 Mask */
  673. #define PDMA_ABTSTS_ABTIF14_Pos (14) /*!< PDMA_T::ABTSTS: ABTIF14 Position */
  674. #define PDMA_ABTSTS_ABTIF14_Msk (0x1ul << PDMA_ABTSTS_ABTIF14_Pos) /*!< PDMA_T::ABTSTS: ABTIF14 Mask */
  675. #define PDMA_ABTSTS_ABTIF15_Pos (15) /*!< PDMA_T::ABTSTS: ABTIF15 Position */
  676. #define PDMA_ABTSTS_ABTIF15_Msk (0x1ul << PDMA_ABTSTS_ABTIF15_Pos) /*!< PDMA_T::ABTSTS: ABTIF15 Mask */
  677. #define PDMA_TDSTS_TDIF0_Pos (0) /*!< PDMA_T::TDSTS: TDIF0 Position */
  678. #define PDMA_TDSTS_TDIF0_Msk (0x1ul << PDMA_TDSTS_TDIF0_Pos) /*!< PDMA_T::TDSTS: TDIF0 Mask */
  679. #define PDMA_TDSTS_TDIF1_Pos (1) /*!< PDMA_T::TDSTS: TDIF1 Position */
  680. #define PDMA_TDSTS_TDIF1_Msk (0x1ul << PDMA_TDSTS_TDIF1_Pos) /*!< PDMA_T::TDSTS: TDIF1 Mask */
  681. #define PDMA_TDSTS_TDIF2_Pos (2) /*!< PDMA_T::TDSTS: TDIF2 Position */
  682. #define PDMA_TDSTS_TDIF2_Msk (0x1ul << PDMA_TDSTS_TDIF2_Pos) /*!< PDMA_T::TDSTS: TDIF2 Mask */
  683. #define PDMA_TDSTS_TDIF3_Pos (3) /*!< PDMA_T::TDSTS: TDIF3 Position */
  684. #define PDMA_TDSTS_TDIF3_Msk (0x1ul << PDMA_TDSTS_TDIF3_Pos) /*!< PDMA_T::TDSTS: TDIF3 Mask */
  685. #define PDMA_TDSTS_TDIF4_Pos (4) /*!< PDMA_T::TDSTS: TDIF4 Position */
  686. #define PDMA_TDSTS_TDIF4_Msk (0x1ul << PDMA_TDSTS_TDIF4_Pos) /*!< PDMA_T::TDSTS: TDIF4 Mask */
  687. #define PDMA_TDSTS_TDIF5_Pos (5) /*!< PDMA_T::TDSTS: TDIF5 Position */
  688. #define PDMA_TDSTS_TDIF5_Msk (0x1ul << PDMA_TDSTS_TDIF5_Pos) /*!< PDMA_T::TDSTS: TDIF5 Mask */
  689. #define PDMA_TDSTS_TDIF6_Pos (6) /*!< PDMA_T::TDSTS: TDIF6 Position */
  690. #define PDMA_TDSTS_TDIF6_Msk (0x1ul << PDMA_TDSTS_TDIF6_Pos) /*!< PDMA_T::TDSTS: TDIF6 Mask */
  691. #define PDMA_TDSTS_TDIF7_Pos (7) /*!< PDMA_T::TDSTS: TDIF7 Position */
  692. #define PDMA_TDSTS_TDIF7_Msk (0x1ul << PDMA_TDSTS_TDIF7_Pos) /*!< PDMA_T::TDSTS: TDIF7 Mask */
  693. #define PDMA_TDSTS_TDIF8_Pos (8) /*!< PDMA_T::TDSTS: TDIF8 Position */
  694. #define PDMA_TDSTS_TDIF8_Msk (0x1ul << PDMA_TDSTS_TDIF8_Pos) /*!< PDMA_T::TDSTS: TDIF8 Mask */
  695. #define PDMA_TDSTS_TDIF9_Pos (9) /*!< PDMA_T::TDSTS: TDIF9 Position */
  696. #define PDMA_TDSTS_TDIF9_Msk (0x1ul << PDMA_TDSTS_TDIF9_Pos) /*!< PDMA_T::TDSTS: TDIF9 Mask */
  697. #define PDMA_TDSTS_TDIF10_Pos (10) /*!< PDMA_T::TDSTS: TDIF10 Position */
  698. #define PDMA_TDSTS_TDIF10_Msk (0x1ul << PDMA_TDSTS_TDIF10_Pos) /*!< PDMA_T::TDSTS: TDIF10 Mask */
  699. #define PDMA_TDSTS_TDIF11_Pos (11) /*!< PDMA_T::TDSTS: TDIF11 Position */
  700. #define PDMA_TDSTS_TDIF11_Msk (0x1ul << PDMA_TDSTS_TDIF11_Pos) /*!< PDMA_T::TDSTS: TDIF11 Mask */
  701. #define PDMA_TDSTS_TDIF12_Pos (12) /*!< PDMA_T::TDSTS: TDIF12 Position */
  702. #define PDMA_TDSTS_TDIF12_Msk (0x1ul << PDMA_TDSTS_TDIF12_Pos) /*!< PDMA_T::TDSTS: TDIF12 Mask */
  703. #define PDMA_TDSTS_TDIF13_Pos (13) /*!< PDMA_T::TDSTS: TDIF13 Position */
  704. #define PDMA_TDSTS_TDIF13_Msk (0x1ul << PDMA_TDSTS_TDIF13_Pos) /*!< PDMA_T::TDSTS: TDIF13 Mask */
  705. #define PDMA_TDSTS_TDIF14_Pos (14) /*!< PDMA_T::TDSTS: TDIF14 Position */
  706. #define PDMA_TDSTS_TDIF14_Msk (0x1ul << PDMA_TDSTS_TDIF14_Pos) /*!< PDMA_T::TDSTS: TDIF14 Mask */
  707. #define PDMA_TDSTS_TDIF15_Pos (15) /*!< PDMA_T::TDSTS: TDIF15 Position */
  708. #define PDMA_TDSTS_TDIF15_Msk (0x1ul << PDMA_TDSTS_TDIF15_Pos) /*!< PDMA_T::TDSTS: TDIF15 Mask */
  709. #define PDMA_ALIGN_ALIGNn_Pos (0) /*!< PDMA_T::ALIGN: ALIGNn Position */
  710. #define PDMA_ALIGN_ALIGNn_Msk (0xfffful << PDMA_ALIGN_ALIGNn_Pos) /*!< PDMA_T::ALIGN: ALIGNn Mask */
  711. #define PDMA_TACTSTS_TXACTFn_Pos (0) /*!< PDMA_T::TACTSTS: TXACTFn Position */
  712. #define PDMA_TACTSTS_TXACTFn_Msk (0xfffful << PDMA_TACTSTS_TXACTFn_Pos) /*!< PDMA_T::TACTSTS: TXACTFn Mask */
  713. #define PDMA_TOUTPSC_TOUTPSC0_Pos (0) /*!< PDMA_T::TOUTPSC: TOUTPSC0 Position */
  714. #define PDMA_TOUTPSC_TOUTPSC0_Msk (0x7ul << PDMA_TOUTPSC_TOUTPSC0_Pos) /*!< PDMA_T::TOUTPSC: TOUTPSC0 Mask */
  715. #define PDMA_TOUTPSC_TOUTPSC1_Pos (4) /*!< PDMA_T::TOUTPSC: TOUTPSC1 Position */
  716. #define PDMA_TOUTPSC_TOUTPSC1_Msk (0x7ul << PDMA_TOUTPSC_TOUTPSC1_Pos) /*!< PDMA_T::TOUTPSC: TOUTPSC1 Mask */
  717. #define PDMA_TOUTEN_TOUTENn_Pos (0) /*!< PDMA_T::TOUTEN: TOUTENn Position */
  718. #define PDMA_TOUTEN_TOUTENn_Msk (0x3ul << PDMA_TOUTEN_TOUTENn_Pos) /*!< PDMA_T::TOUTEN: TOUTENn Mask */
  719. #define PDMA_TOUTIEN_TOUTIENn_Pos (0) /*!< PDMA_T::TOUTIEN: TOUTIENn Position */
  720. #define PDMA_TOUTIEN_TOUTIENn_Msk (0x3ul << PDMA_TOUTIEN_TOUTIENn_Pos) /*!< PDMA_T::TOUTIEN: TOUTIENn Mask */
  721. #define PDMA_SCATBA_SCATBA_Pos (16) /*!< PDMA_T::SCATBA: SCATBA Position */
  722. #define PDMA_SCATBA_SCATBA_Msk (0xfffful << PDMA_SCATBA_SCATBA_Pos) /*!< PDMA_T::SCATBA: SCATBA Mask */
  723. #define PDMA_TOC0_1_TOC0_Pos (0) /*!< PDMA_T::TOC0_1: TOC0 Position */
  724. #define PDMA_TOC0_1_TOC0_Msk (0xfffful << PDMA_TOC0_1_TOC0_Pos) /*!< PDMA_T::TOC0_1: TOC0 Mask */
  725. #define PDMA_TOC0_1_TOC1_Pos (16) /*!< PDMA_T::TOC0_1: TOC1 Position */
  726. #define PDMA_TOC0_1_TOC1_Msk (0xfffful << PDMA_TOC0_1_TOC1_Pos) /*!< PDMA_T::TOC0_1: TOC1 Mask */
  727. #define PDMA_CHRST_CHnRST_Pos (0) /*!< PDMA_T::CHRST: CHnRST Position */
  728. #define PDMA_CHRST_CHnRST_Msk (0xfffful << PDMA_CHRST_CHnRST_Pos) /*!< PDMA_T::CHRST: CHnRST Mask */
  729. #define PDMA_REQSEL0_3_REQSRC0_Pos (0) /*!< PDMA_T::REQSEL0_3: REQSRC0 Position */
  730. #define PDMA_REQSEL0_3_REQSRC0_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC0_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC0 Mask */
  731. #define PDMA_REQSEL0_3_REQSRC1_Pos (8) /*!< PDMA_T::REQSEL0_3: REQSRC1 Position */
  732. #define PDMA_REQSEL0_3_REQSRC1_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC1_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC1 Mask */
  733. #define PDMA_REQSEL0_3_REQSRC2_Pos (16) /*!< PDMA_T::REQSEL0_3: REQSRC2 Position */
  734. #define PDMA_REQSEL0_3_REQSRC2_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC2_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC2 Mask */
  735. #define PDMA_REQSEL0_3_REQSRC3_Pos (24) /*!< PDMA_T::REQSEL0_3: REQSRC3 Position */
  736. #define PDMA_REQSEL0_3_REQSRC3_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC3_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC3 Mask */
  737. #define PDMA_REQSEL4_7_REQSRC4_Pos (0) /*!< PDMA_T::REQSEL4_7: REQSRC4 Position */
  738. #define PDMA_REQSEL4_7_REQSRC4_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC4_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC4 Mask */
  739. #define PDMA_REQSEL4_7_REQSRC5_Pos (8) /*!< PDMA_T::REQSEL4_7: REQSRC5 Position */
  740. #define PDMA_REQSEL4_7_REQSRC5_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC5_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC5 Mask */
  741. #define PDMA_REQSEL4_7_REQSRC6_Pos (16) /*!< PDMA_T::REQSEL4_7: REQSRC6 Position */
  742. #define PDMA_REQSEL4_7_REQSRC6_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC6_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC6 Mask */
  743. #define PDMA_REQSEL4_7_REQSRC7_Pos (24) /*!< PDMA_T::REQSEL4_7: REQSRC7 Position */
  744. #define PDMA_REQSEL4_7_REQSRC7_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC7_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC7 Mask */
  745. #define PDMA_REQSEL8_11_REQSRC8_Pos (0) /*!< PDMA_T::REQSEL8_11: REQSRC8 Position */
  746. #define PDMA_REQSEL8_11_REQSRC8_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC8_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC8 Mask */
  747. #define PDMA_REQSEL8_11_REQSRC9_Pos (8) /*!< PDMA_T::REQSEL8_11: REQSRC9 Position */
  748. #define PDMA_REQSEL8_11_REQSRC9_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC9_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC9 Mask */
  749. #define PDMA_REQSEL8_11_REQSRC10_Pos (16) /*!< PDMA_T::REQSEL8_11: REQSRC10 Position */
  750. #define PDMA_REQSEL8_11_REQSRC10_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC10_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC10 Mask */
  751. #define PDMA_REQSEL8_11_REQSRC11_Pos (24) /*!< PDMA_T::REQSEL8_11: REQSRC11 Position */
  752. #define PDMA_REQSEL8_11_REQSRC11_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC11_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC11 Mask */
  753. #define PDMA_REQSEL12_15_REQSRC12_Pos (0) /*!< PDMA_T::REQSEL12_15: REQSRC12 Position */
  754. #define PDMA_REQSEL12_15_REQSRC12_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC12_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC12 Mask */
  755. #define PDMA_REQSEL12_15_REQSRC13_Pos (8) /*!< PDMA_T::REQSEL12_15: REQSRC13 Position */
  756. #define PDMA_REQSEL12_15_REQSRC13_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC13_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC13 Mask */
  757. #define PDMA_REQSEL12_15_REQSRC14_Pos (16) /*!< PDMA_T::REQSEL12_15: REQSRC14 Position */
  758. #define PDMA_REQSEL12_15_REQSRC14_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC14_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC14 Mask */
  759. #define PDMA_REQSEL12_15_REQSRC15_Pos (24) /*!< PDMA_T::REQSEL12_15: REQSRC15 Position */
  760. #define PDMA_REQSEL12_15_REQSRC15_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC15_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC15 Mask */
  761. #define PDMA_STCRn_STC_Pos (0) /*!< PDMA_T::STCRn: STC Position */
  762. #define PDMA_STCRn_STC_Msk (0xfffful << PDMA_STCRn_STC_Pos) /*!< PDMA_T::STCRn: STC Mask */
  763. #define PDMA_ASOCRn_SASOL_Pos (0) /*!< PDMA_T::ASOCRn: SASOL Position */
  764. #define PDMA_ASOCRn_SASOL_Msk (0xfffful << PDMA_ASOCRn_SASOL_Pos) /*!< PDMA_T::ASOCRn: SASOL Mask */
  765. #define PDMA_ASOCRn_DASOL_Pos (16) /*!< PDMA_T::ASOCRn: DASOL Position */
  766. #define PDMA_ASOCRn_DASOL_Msk (0xfffful << PDMA_ASOCRn_DASOL_Pos) /*!< PDMA_T::ASOCRn: DASOL Mask */
  767. #define PDMA_RCNTn_RCNT_Pos (0) /*!< PDMA_T::RCNTn: RCNT Position */
  768. #define PDMA_RCNTn_RCNT_Msk (0xfffful << PDMA_STCRn_RCNT_Pos) /*!< PDMA_T::RCNTn: RCNT Mask */
  769. #define PDMA_AICTLn_SAICNT_Pos (0) /*!< PDMA_T::AICTLn: SAICNT Position */
  770. #define PDMA_AICTLn_SAICNT_Msk (0xfffful << PDMA_ASOCRn_SASOL_Pos) /*!< PDMA_T::AICTLn: SAICNT Mask */
  771. #define PDMA_AICTLn_DAICNT_Pos (16) /*!< PDMA_T::AICTLn: DAICNT Position */
  772. #define PDMA_AICTLn_DAICNT_Msk (0xfffful << PDMA_ASOCRn_DASOL_Pos) /*!< PDMA_T::AICTLn: DAICNT Mask */
  773. /**@}*/ /* PDMA_CONST */
  774. /**@}*/ /* end of PDMA register group */
  775. /**@}*/ /* end of REGISTER group */
  776. #if defined ( __CC_ARM )
  777. #pragma no_anon_unions
  778. #endif
  779. #endif /* __PDMA_REG_H__ */