1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249 |
- /**************************************************************************//**
- * @file pdma.h
- * @brief PDMA driver header file
- *
- * SPDX-License-Identifier: Apache-2.0
- * @copyright (C) 2018 Nuvoton Technology Corp. All rights reserved.
- *****************************************************************************/
- #ifndef __NU_PDMA_H__
- #define __NU_PDMA_H__
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- /**
- @addtogroup REGISTER Control Register
- @{
- */
- /**
- @addtogroup PDMA Peripheral Direct Memory Access Controller(PDMA)
- Memory Mapped Structure for PDMA Controller
- @{ */
- typedef struct
- {
- /**
- * @var DSCT_T::CTL
- * Offset: 0x00 Descriptor Table Control Register of PDMA Channel n.
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[1:0] |OPMODE |PDMA Operation Mode Selection
- * | | |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.
- * | | |01 = Basic mode: The descriptor table only has one task
- * | | |When this task is finished, the PDMA_INTSTS[n] will be asserted.
- * | | |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.
- * | | |11 = Reserved.
- * | | |Note: Before filling transfer task in the Descriptor Table, user must check if the descriptor table is complete.
- * |[2] |TXTYPE |Transfer Type
- * | | |0 = Burst transfer type.
- * | | |1 = Single transfer type.
- * |[6:4] |BURSIZE |Burst Size
- * | | |This field is used for peripheral to determine the burst size or used for determine the re-arbitration size.
- * | | |000 = 128 Transfers.
- * | | |001 = 64 Transfers.
- * | | |010 = 32 Transfers.
- * | | |011 = 16 Transfers.
- * | | |100 = 8 Transfers.
- * | | |101 = 4 Transfers.
- * | | |110 = 2 Transfers.
- * | | |111 = 1 Transfers.
- * | | |Note: This field is only useful in burst transfer type.
- * |[7] |TBINTDIS |Table Interrupt Disable Bit
- * | | |This field can be used to decide whether to enable table interrupt or not
- * | | |If the TBINTDIS bit is enabled when PDMA controller finishes transfer task, it will not generates transfer done interrupt.
- * | | |0 = Table interrupt Enabled.
- * | | |1 = Table interrupt Disabled.
- * |[9:8] |SAINC |Source Address Increment
- * | | |This field is used to set the source address increment size.
- * | | |11 = No increment (fixed address).
- * | | |Others = Increment and size is depended on TXWIDTH selection.
- * |[11:10] |DAINC |Destination Address Increment
- * | | |This field is used to set the destination address increment size.
- * | | |11 = No increment (fixed address).
- * | | |Others = Increment and size is depended on TXWIDTH selection.
- * |[13:12] |TXWIDTH |Transfer Width Selection
- * | | |This field is used for transfer width.
- * | | |00 = One byte (8 bit) is transferred for every operation.
- * | | |01= One half-word (16 bit) is transferred for every operation.
- * | | |10 = One word (32-bit) is transferred for every operation.
- * | | |11 = Reserved.
- * | | |Note: The PDMA transfer source address (PDMA_DSCT_SA) and PDMA transfer destination address (PDMA_DSCT_DA) should be alignment under the TXWIDTH selection
- * |[14] |TXACK |Transfer Acknowledge Selection
- * | | |0 = transfer ack when transfer done.
- * | | |1 = transfer ack when PDMA get transfer data.
- * |[15] |STRIDEEN |Stride Mode Enable Bit
- * | | |0 = Stride transfer mode Disabled.
- * | | |1 = Stride transfer mode Enabled.
- * |[31:16] |TXCNT |Transfer Count
- * | | |The TXCNT represents the required number of PDMA transfer, the real transfer count is (TXCNT + 1); The maximum transfer count is 65536 , every transfer may be byte, half-word or word that is dependent on TXWIDTH field.
- * | | |Note: When PDMA finish each transfer data, this field will be decrease immediately.
- * @var DSCT_T::SA
- * Offset: 0x04 Source Address Register of PDMA Channel n
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[31:0] |SA |PDMA Transfer Source Address Register
- * | | |This field indicates a 32-bit source address of PDMA controller.
- * @var DSCT_T::DA
- * Offset: 0x08 Destination Address Register of PDMA Channel n
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[31:0] |DA |PDMA Transfer Destination Address Register
- * | | |This field indicates a 32-bit destination address of PDMA controller.
- * @var DSCT_T::NEXT
- * Offset: 0x0C Next Scatter-Gather Descriptor Table Offset Address of PDMA Channel n
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |EXENEXT |PDMA Execution Next Descriptor Table Offset
- * | | |This field indicates the offset of next descriptor table address of current execution descriptor table in system memory.
- * | | |Note: write operation is useless in this field.
- * |[31:16] |NEXT |PDMA Next Descriptor Table Offset.
- * | | |This field indicates the offset of the next descriptor table address in system memory.
- * | | |Write Operation:
- * | | |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.
- * | | |Read Operation:
- * | | |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.
- * | | |Note1: The descriptor table address must be word boundary.
- * | | |Note2: Before filled transfer task in the descriptor table, user must check if the descriptor table is complete.
- */
- __IO uint32_t CTL; /*!< [0x0000] Descriptor Table Control Register of PDMA Channel n. */
- __IO uint32_t SA; /*!< [0x0004] Source Address Register of PDMA Channel n */
- __IO uint32_t DA; /*!< [0x0008] Destination Address Register of PDMA Channel n */
- __IO uint32_t NEXT; /*!< [0x000c] First Scatter-Gather Descriptor Table Offset Address of PDMA Channel n */
- } DSCT_T;
- typedef struct
- {
- /**
- * @var STRIDE_T::STCR
- * Offset: 0x500 Stride Transfer Count Register of PDMA Channel n
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |STC |PDMA Stride Transfer Count
- * | | |The 16-bit register defines the stride transfer count of each row.
- * @var STRIDE_T::ASOCR
- * Offset: 0x504 Address Stride Offset Register of PDMA Channel n
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |SASOL |VDMA Source Address Stride Offset Length
- * | | |The 16-bit register defines the source address stride transfer offset count of each row.
- * |[31:16] |DASOL |VDMA Destination Address Stride Offset Length
- * | | |The 16-bit register defines the destination address stride transfer offset count of each row.
- */
- __IO uint32_t STCR; /*!< [0x0500] Stride Transfer Count Register of PDMA Channel 0 */
- __IO uint32_t ASOCR; /*!< [0x0504] Address Stride Offset Register of PDMA Channel 0 */
- } STRIDE_T;
- typedef struct
- {
- /**
- * @var PDMA_T::CURSCAT
- * Offset: 0x100 Current Scatter-Gather Descriptor Table Address of PDMA Channel n
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[31:0] |CURADDR |PDMA Current Description Address Register (Read Only)
- * | | |This field indicates a 32-bit current external description address of PDMA controller.
- * | | |Note: This field is read only and only used for Scatter-Gather mode to indicate the current external description address.
- * @var PDMA_T::CHCTL
- * Offset: 0x400 PDMA Channel Control Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |CHENn |PDMA Channel Enable Bit
- * | | |Set this bit to 1 to enable PDMAn operation. Channel cannot be active if it is not set as enabled.
- * | | |0 = PDMA channel [n] Disabled.
- * | | |1 = PDMA channel [n] Enabled.
- * | | |Note: Set corresponding bit of PDMA_PAUSE or PDMA_CHRST register will also clear this bit.
- * @var PDMA_T::PAUSE
- * Offset: 0x404 PDMA Transfer Stop Control Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |PAUSEn |PDMA Transfer Pause Control Register (Write Only)
- * | | |User can set PAUSEn bit field to pause the PDMA transfer
- * | | |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
- * | | |If re-enable the paused channel again, the remaining transfers will be processed.
- * | | |0 = No effect.
- * | | |1 = Pause PDMA channel n transfer.
- * @var PDMA_T::SWREQ
- * Offset: 0x408 PDMA Software Request Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |SWREQn |PDMA Software Request Register (Write Only)
- * | | |Set this bit to 1 to generate a software request to PDMA [n].
- * | | |0 = No effect.
- * | | |1 = Generate a software request.
- * | | |Note1: User can read PDMA_TRGSTS register to know which channel is on active
- * | | |Active flag may be triggered by software request or peripheral request.
- * | | |Note2: If user does not enable corresponding PDMA channel, the software request will be ignored.
- * @var PDMA_T::TRGSTS
- * Offset: 0x40C PDMA Channel Request Status Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |REQSTSn |PDMA Channel Request Status (Read Only)
- * | | |This flag indicates whether channel[n] have a request or not, no matter request from software or peripheral
- * | | |When PDMA controller finishes channel transfer, this bit will be cleared automatically.
- * | | |0 = PDMA Channel n has no request.
- * | | |1 = PDMA Channel n has a request.
- * | | |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.
- * @var PDMA_T::PRISET
- * Offset: 0x410 PDMA Fixed Priority Setting Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |FPRISETn |PDMA Fixed Priority Setting Register
- * | | |Set this bit to 1 to enable fixed priority level.
- * | | |Write Operation:
- * | | |0 = No effect.
- * | | |1 = Set PDMA channel [n] to fixed priority channel.
- * | | |Read Operation:
- * | | |0 = Corresponding PDMA channel is round-robin priority.
- * | | |1 = Corresponding PDMA channel is fixed priority.
- * | | |Note: This field only set to fixed priority, clear fixed priority use PDMA_PRICLR register.
- * @var PDMA_T::PRICLR
- * Offset: 0x414 PDMA Fixed Priority Clear Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |FPRICLRn |PDMA Fixed Priority Clear Register (Write Only)
- * | | |Set this bit to 1 to clear fixed priority level.
- * | | |0 = No effect.
- * | | |1 = Clear PDMA channel [n] fixed priority setting.
- * | | |Note: User can read PDMA_PRISET register to know the channel priority.
- * @var PDMA_T::INTEN
- * Offset: 0x418 PDMA Interrupt Enable Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |INTENn |PDMA Interrupt Enable Register
- * | | |This field is used for enabling PDMA channel[n] interrupt.
- * | | |0 = PDMA channel n interrupt Disabled.
- * | | |1 = PDMA channel n interrupt Enabled.
- * @var PDMA_T::INTSTS
- * Offset: 0x41C PDMA Interrupt Status Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[0] |ABTIF |PDMA Read/Write Target Abort Interrupt Flag (Read-only)
- * | | |This bit indicates that PDMA has target abort error; Software can read PDMA_ABTSTS register to find which channel has target abort error.
- * | | |0 = No AHB bus ERROR response received.
- * | | |1 = AHB bus ERROR response received.
- * |[1] |TDIF |Transfer Done Interrupt Flag (Read Only)
- * | | |This bit indicates that PDMA controller has finished transmission; User can read PDMA_TDSTS register to indicate which channel finished transfer.
- * | | |0 = Not finished yet.
- * | | |1 = PDMA channel has finished transmission.
- * |[2] |ALIGNF |Transfer Alignment Interrupt Flag (Read Only)
- * | | |0 = PDMA channel source address and destination address both follow transfer width setting.
- * | | |1 = PDMA channel source address or destination address is not follow transfer width setting.
- * |[8] |REQTOF0 |Request Time-out Flag for Channel 0
- * | | |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.
- * | | |0 = No request time-out.
- * | | |1 = Peripheral request time-out.
- * |[9] |REQTOF1 |Request Time-out Flag for Channel 1
- * | | |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.
- * | | |0 = No request time-out.
- * | | |1 = Peripheral request time-out.
- * @var PDMA_T::ABTSTS
- * Offset: 0x420 PDMA Channel Read/Write Target Abort Flag Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |ABTIFn |PDMA Read/Write Target Abort Interrupt Status Flag
- * | | |This bit indicates which PDMA controller has target abort error; User can write 1 to clear these bits.
- * | | |0 = No AHB bus ERROR response received when channel n transfer.
- * | | |1 = AHB bus ERROR response received when channel n transfer.
- * @var PDMA_T::TDSTS
- * Offset: 0x424 PDMA Channel Transfer Done Flag Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |TDIFn |Transfer Done Flag Register
- * | | |This bit indicates whether PDMA controller channel transfer has been finished or not, user can write 1 to clear these bits.
- * | | |0 = PDMA channel transfer has not finished.
- * | | |1 = PDMA channel has finished transmission.
- * @var PDMA_T::ALIGN
- * Offset: 0x428 PDMA Transfer Alignment Status Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |ALIGNn |Transfer Alignment Flag Register
- * | | |0 = PDMA channel source address and destination address both follow transfer width setting.
- * | | |1 = PDMA channel source address or destination address is not follow transfer width setting.
- * @var PDMA_T::TACTSTS
- * Offset: 0x42C PDMA Transfer Active Flag Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |TXACTFn |Transfer on Active Flag Register (Read Only)
- * | | |This bit indicates which PDMA channel is in active.
- * | | |0 = PDMA channel is not finished.
- * | | |1 = PDMA channel is active.
- * @var PDMA_T::TOUTPSC
- * Offset: 0x430 PDMA Time-out Prescaler Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[2:0] |TOUTPSC0 |PDMA Channel 0 Time-out Clock Source Prescaler Bits
- * | | |000 = PDMA channel 0 time-out clock source is HCLK/28.
- * | | |001 = PDMA channel 0 time-out clock source is HCLK/29.
- * | | |010 = PDMA channel 0 time-out clock source is HCLK/210.
- * | | |011 = PDMA channel 0 time-out clock source is HCLK/211.
- * | | |100 = PDMA channel 0 time-out clock source is HCLK/212.
- * | | |101 = PDMA channel 0 time-out clock source is HCLK/213.
- * | | |110 = PDMA channel 0 time-out clock source is HCLK/214.
- * | | |111 = PDMA channel 0 time-out clock source is HCLK/215.
- * |[6:4] |TOUTPSC1 |PDMA Channel 1 Time-out Clock Source Prescaler Bits
- * | | |000 = PDMA channel 1 time-out clock source is HCLK/28.
- * | | |001 = PDMA channel 1 time-out clock source is HCLK/29.
- * | | |010 = PDMA channel 1 time-out clock source is HCLK/210.
- * | | |011 = PDMA channel 1 time-out clock source is HCLK/211.
- * | | |100 = PDMA channel 1 time-out clock source is HCLK/212.
- * | | |101 = PDMA channel 1 time-out clock source is HCLK/213.
- * | | |110 = PDMA channel 1 time-out clock source is HCLK/214.
- * | | |111 = PDMA channel 1 time-out clock source is HCLK/215.
- * @var PDMA_T::TOUTEN
- * Offset: 0x434 PDMA Time-out Enable Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[1:0] |TOUTENn |PDMA Time-out Enable Bits
- * | | |0 = PDMA Channel n time-out function Disable.
- * | | |1 = PDMA Channel n time-out function Enable.
- * @var PDMA_T::TOUTIEN
- * Offset: 0x438 PDMA Time-out Interrupt Enable Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[1:0] |TOUTIENn |PDMA Time-out Interrupt Enable Bits
- * | | |0 = PDMA Channel n time-out interrupt Disable.
- * | | |1 = PDMA Channel n time-out interrupt Enable.
- * @var PDMA_T::SCATBA
- * Offset: 0x43C PDMA Scatter-Gather Descriptor Table Base Address Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[31:16] |SCATBA |PDMA Scatter-gather Descriptor Table Address Register
- * | | |In Scatter-Gather mode, this is the base address for calculating the next link - list address
- * | | |The next link address equation is
- * | | |Next Link Address = PDMA_SCATBA + PDMA_DSCT_NEXT.
- * | | |Note: Only useful in Scatter-Gather mode.
- * @var PDMA_T::TOC0_1
- * Offset: 0x440 PDMA Time-out Counter Ch1 and Ch0 Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |TOC0 |Time-out Counter for Channel 0
- * | | |This controls the period of time-out function for channel 0
- * | | |The calculation unit is based on 10 kHz clock.
- * |[31:16] |TOC1 |Time-out Counter for Channel 1
- * | | |This controls the period of time-out function for channel 1
- * | | |The calculation unit is based on 10 kHz clock.
- * @var PDMA_T::CHRST
- * Offset: 0x460 PDMA Channel Reset Register
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[15:0] |CHnRST |Channel N Reset
- * | | |0 = corresponding channel n not reset.
- * | | |1 = corresponding channel n is reset.
- * @var PDMA_T::REQSEL0_3
- * Offset: 0x480 PDMA Request Source Select Register 0
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[6:0] |REQSRC0 |Channel 0 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 0
- * | | |User can configure the peripheral by setting REQSRC0.
- * | | |0 = Disable PDMA peripheral request.
- * | | |1 = Reserved.
- * | | |2 = Channel connects to USB_TX.
- * | | |3 = Channel connects to USB_RX.
- * | | |4 = Channel connects to UART0_TX.
- * | | |5 = Channel connects to UART0_RX.
- * | | |6 = Channel connects to UART1_TX.
- * | | |7 = Channel connects to UART1_RX.
- * | | |8 = Channel connects to UART2_TX.
- * | | |9 = Channel connects to UART2_RX.
- * | | |10=Channel connects to UART3_TX.
- * | | |11 = Channel connects to UART3_RX.
- * | | |12 = Channel connects to UART4_TX.
- * | | |13 = Channel connects to UART4_RX.
- * | | |14 = Channel connects to UART5_TX.
- * | | |15 = Channel connects to UART5_RX.
- * | | |16 = Channel connects to USCI0_TX.
- * | | |17 = Channel connects to USCI0_RX.
- * | | |18 = Channel connects to USCI1_TX.
- * | | |19 = Channel connects to USCI1_RX.
- * | | |20 = Channel connects to QSPI0_TX.
- * | | |21 = Channel connects to QSPI0_RX.
- * | | |22 = Channel connects to SPI0_TX.
- * | | |23 = Channel connects to SPI0_RX.
- * | | |24 = Channel connects to SPI1_TX.
- * | | |25 = Channel connects to SPI1_RX.
- * | | |26 = Channel connects to SPI2_TX.
- * | | |27 = Channel connects to SPI2_RX.
- * | | |28 = Channel connects to SPI3_TX.
- * | | |29 = Channel connects to SPI3_RX.
- * | | |30 = Reserved.
- * | | |31 = Reserved.
- * | | |32 = Channel connects to EPWM0_P1_RX.
- * | | |33 = Channel connects to EPWM0_P2_RX.
- * | | |34 = Channel connects to EPWM0_P3_RX.
- * | | |35 = Channel connects to EPWM1_P1_RX.
- * | | |36 = Channel connects to EPWM1_P2_RX.
- * | | |37 = Channel connects to EPWM1_P3_RX.
- * | | |38 = Channel connects to I2C0_TX.
- * | | |39 = Channel connects to I2C0_RX.
- * | | |40 = Channel connects to I2C1_TX.
- * | | |41 = Channel connects to I2C1_RX.
- * | | |42 = Channel connects to I2C2_TX.
- * | | |43 = Channel connects to I2C2_RX.
- * | | |44 = Channel connects to I2S0_TX.
- * | | |45 = Channel connects to I2S0_RX.
- * | | |46 = Channel connects to TMR0.
- * | | |47 = Channel connects to TMR1.
- * | | |48 = Channel connects to TMR2.
- * | | |49 = Channel connects to TMR3.
- * | | |50 = Channel connects to ADC_RX.
- * | | |51 = Channel connects to DAC0_TX.
- * | | |52 = Channel connects to DAC1_TX.
- * | | |53 = Channel connects to EPWM0_CH0_TX.
- * | | |54 = Channel connects to EPWM0_CH1_TX.
- * | | |55 = Channel connects to EPWM0_CH2_TX.
- * | | |56 = Channel connects to EPWM0_CH3_TX.
- * | | |57 = Channel connects to EPWM0_CH4_TX.
- * | | |58 = Channel connects to EPWM0_CH5_TX.
- * | | |59 = Channel connects to EPWM1_CH0_TX.
- * | | |60 = Channel connects to EPWM1_CH1_TX.
- * | | |61 = Channel connects to EPWM1_CH2_TX.
- * | | |62 = Channel connects to EPWM1_CH3_TX.
- * | | |63 = Channel connects to EPWM1_CH4_TX.
- * | | |64 = Channel connects to EPWM1_CH5_TX.
- * | | |65 = Channel connects to ETMC_RX.
- * | | |Others = Reserved.
- * | | |Note 1: A peripheral can't assign to two channels at the same time.
- * | | |Note 2: This field is useless when transfer between memory and memory.
- * |[14:8] |REQSRC1 |Channel 1 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 1
- * | | |User can configure the peripheral setting by REQSRC1.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[22:16] |REQSRC2 |Channel 2 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 2
- * | | |User can configure the peripheral setting by REQSRC2.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[30:24] |REQSRC3 |Channel 3 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 3
- * | | |User can configure the peripheral setting by REQSRC3.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * @var PDMA_T::REQSEL4_7
- * Offset: 0x484 PDMA Request Source Select Register 1
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[6:0] |REQSRC4 |Channel 4 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 4
- * | | |User can configure the peripheral setting by REQSRC4.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[14:8] |REQSRC5 |Channel 5 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 5
- * | | |User can configure the peripheral setting by REQSRC5.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[22:16] |REQSRC6 |Channel 6 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 6
- * | | |User can configure the peripheral setting by REQSRC6.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[30:24] |REQSRC7 |Channel 7 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 7
- * | | |User can configure the peripheral setting by REQSRC7.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * @var PDMA_T::REQSEL8_11
- * Offset: 0x488 PDMA Request Source Select Register 2
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[6:0] |REQSRC8 |Channel 8 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 8
- * | | |User can configure the peripheral setting by REQSRC8.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[14:8] |REQSRC9 |Channel 9 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 9
- * | | |User can configure the peripheral setting by REQSRC9.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[22:16] |REQSRC10 |Channel 10 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 10
- * | | |User can configure the peripheral setting by REQSRC10.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[30:24] |REQSRC11 |Channel 11 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 11
- * | | |User can configure the peripheral setting by REQSRC11.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * @var PDMA_T::REQSEL12_15
- * Offset: 0x48C PDMA Request Source Select Register 3
- * ---------------------------------------------------------------------------------------------------
- * |Bits |Field |Descriptions
- * | :----: | :----: | :---- |
- * |[6:0] |REQSRC12 |Channel 12 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 12
- * | | |User can configure the peripheral setting by REQSRC12.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[14:8] |REQSRC13 |Channel 13 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 13
- * | | |User can configure the peripheral setting by REQSRC13.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[22:16] |REQSRC14 |Channel 14 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 14
- * | | |User can configure the peripheral setting by REQSRC14.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- * |[30:24] |REQSRC15 |Channel 15 Request Source Selection
- * | | |This filed defines which peripheral is connected to PDMA channel 15
- * | | |User can configure the peripheral setting by REQSRC15.
- * | | |Note: The channel configuration is the same as REQSRC0 field
- * | | |Please refer to the explanation of REQSRC0.
- */
- DSCT_T DSCT[16];
- __I uint32_t CURSCAT[16]; /*!< [0x0100] Current Scatter-Gather Descriptor Table Address of PDMA Channel n */
- /// @cond HIDDEN_SYMBOLS
- __I uint32_t RESERVE1[176];
- /// @endcond //HIDDEN_SYMBOLS
- __IO uint32_t CHCTL; /*!< [0x0400] PDMA Channel Control Register */
- __O uint32_t PAUSE; /*!< [0x0404] PDMA Transfer Pause Control Register */
- __O uint32_t SWREQ; /*!< [0x0408] PDMA Software Request Register */
- __I uint32_t TRGSTS; /*!< [0x040c] PDMA Channel Request Status Register */
- __IO uint32_t PRISET; /*!< [0x0410] PDMA Fixed Priority Setting Register */
- __O uint32_t PRICLR; /*!< [0x0414] PDMA Fixed Priority Clear Register */
- __IO uint32_t INTEN; /*!< [0x0418] PDMA Interrupt Enable Register */
- __IO uint32_t INTSTS; /*!< [0x041c] PDMA Interrupt Status Register */
- __IO uint32_t ABTSTS; /*!< [0x0420] PDMA Channel Read/Write Target Abort Flag Register */
- __IO uint32_t TDSTS; /*!< [0x0424] PDMA Channel Transfer Done Flag Register */
- __IO uint32_t ALIGN; /*!< [0x0428] PDMA Transfer Alignment Status Register */
- __I uint32_t TACTSTS; /*!< [0x042c] PDMA Transfer Active Flag Register */
- __IO uint32_t TOUTPSC; /*!< [0x0430] PDMA Time-out Prescaler Register */
- __IO uint32_t TOUTEN; /*!< [0x0434] PDMA Time-out Enable Register */
- __IO uint32_t TOUTIEN; /*!< [0x0438] PDMA Time-out Interrupt Enable Register */
- __IO uint32_t SCATBA; /*!< [0x043c] PDMA Scatter-Gather Descriptor Table Base Address Register */
- __IO uint32_t TOC0_1; /*!< [0x0440] PDMA Time-out Counter Ch1 and Ch0 Register */
- __IO uint32_t TOC2_3; /*!< [0x0444] PDMA Time-out Counter Ch1 and Ch0 Register */
- __IO uint32_t TOC4_5; /*!< [0x0448] PDMA Time-out Counter Ch1 and Ch0 Register */
- __IO uint32_t TOC6_7; /*!< [0x044c] PDMA Time-out Counter Ch1 and Ch0 Register */
- __IO uint32_t TOC8_9; /*!< [0x0450] PDMA Time-out Counter Ch1 and Ch0 Register */
- /// @cond HIDDEN_SYMBOLS
- __I uint32_t RESERVE2[3];
- /// @endcond //HIDDEN_SYMBOLS
- __IO uint32_t CHRST; /*!< [0x0460] PDMA Channel Reset Register */
- /// @cond HIDDEN_SYMBOLS
- __I uint32_t RESERVE5[3];
- /// @endcond //HIDDEN_SYMBOLS
- __IO uint32_t TOUTPSC2; /*!< [0x0470] PPDMA Time-out Prescaler Register */
- /// @cond HIDDEN_SYMBOLS
- __I uint32_t RESERVE3[3];
- /// @endcond //HIDDEN_SYMBOLS
- __IO uint32_t REQSEL0_3; /*!< [0x0480] PDMA Request Source Select Register 0 */
- __IO uint32_t REQSEL4_7; /*!< [0x0484] PDMA Request Source Select Register 1 */
- __IO uint32_t REQSEL8_11; /*!< [0x0488] PDMA Request Source Select Register 2 */
- __IO uint32_t REQSEL12_15; /*!< [0x048c] PDMA Request Source Select Register 3 */
- /// @cond HIDDEN_SYMBOLS
- __I uint32_t RESERVE4[28];
- /// @endcond //HIDDEN_SYMBOLS
- STRIDE_T STRIDE[6];
- } PDMA_T;
- /**
- @addtogroup PDMA_CONST PDMA Bit Field Definition
- Constant Definitions for PDMA Controller
- @{ */
- #define PDMA_DSCT_CTL_OPMODE_Pos (0) /*!< PDMA_T::DSCT_CTL: OPMODE Position */
- #define PDMA_DSCT_CTL_OPMODE_Msk (0x3ul << PDMA_DSCT_CTL_OPMODE_Pos) /*!< PDMA_T::DSCT_CTL: OPMODE Mask */
- #define PDMA_DSCT_CTL_TXTYPE_Pos (2) /*!< PDMA_T::DSCT_CTL: TXTYPE Position */
- #define PDMA_DSCT_CTL_TXTYPE_Msk (0x1ul << PDMA_DSCT_CTL_TXTYPE_Pos) /*!< PDMA_T::DSCT_CTL: TXTYPE Mask */
- #define PDMA_DSCT_CTL_BURSIZE_Pos (4) /*!< PDMA_T::DSCT_CTL: BURSIZE Position */
- #define PDMA_DSCT_CTL_BURSIZE_Msk (0x7ul << PDMA_DSCT_CTL_BURSIZE_Pos) /*!< PDMA_T::DSCT_CTL: BURSIZE Mask */
- #define PDMA_DSCT_CTL_TBINTDIS_Pos (7) /*!< PDMA_T::DSCT_CTL: TBINTDIS Position */
- #define PDMA_DSCT_CTL_TBINTDIS_Msk (0x1ul << PDMA_DSCT_CTL_TBINTDIS_Pos) /*!< PDMA_T::DSCT_CTL: TBINTDIS Mask */
- #define PDMA_DSCT_CTL_SAINC_Pos (8) /*!< PDMA_T::DSCT_CTL: SAINC Position */
- #define PDMA_DSCT_CTL_SAINC_Msk (0x3ul << PDMA_DSCT_CTL_SAINC_Pos) /*!< PDMA_T::DSCT_CTL: SAINC Mask */
- #define PDMA_DSCT_CTL_DAINC_Pos (10) /*!< PDMA_T::DSCT_CTL: DAINC Position */
- #define PDMA_DSCT_CTL_DAINC_Msk (0x3ul << PDMA_DSCT_CTL_DAINC_Pos) /*!< PDMA_T::DSCT_CTL: DAINC Mask */
- #define PDMA_DSCT_CTL_TXWIDTH_Pos (12) /*!< PDMA_T::DSCT_CTL: TXWIDTH Position */
- #define PDMA_DSCT_CTL_TXWIDTH_Msk (0x3ul << PDMA_DSCT_CTL_TXWIDTH_Pos) /*!< PDMA_T::DSCT_CTL: TXWIDTH Mask */
- #define PDMA_DSCT_CTL_TXACK_Pos (14) /*!< PDMA_T::DSCT_CTL: TXACK Position */
- #define PDMA_DSCT_CTL_TXACK_Msk (0x1ul << PDMA_DSCT_CTL_TXACK_Pos) /*!< PDMA_T::DSCT_CTL: TXACK Mask */
- #define PDMA_DSCT_CTL_STRIDEEN_Pos (15) /*!< PDMA_T::DSCT_CTL: STRIDEEN Position */
- #define PDMA_DSCT_CTL_STRIDEEN_Msk (0x1ul << PDMA_DSCT_CTL_STRIDEEN_Pos) /*!< PDMA_T::DSCT_CTL: STRIDEEN Mask */
- #define PDMA_DSCT_CTL_TXCNT_Pos (16) /*!< PDMA_T::DSCT_CTL: TXCNT Position */
- #define PDMA_DSCT_CTL_TXCNT_Msk (0xfffful << PDMA_DSCT_CTL_TXCNT_Pos) /*!< PDMA_T::DSCT_CTL: TXCNT Mask */
- #define PDMA_DSCT_SA_SA_Pos (0) /*!< PDMA_T::DSCT_SA: SA Position */
- #define PDMA_DSCT_SA_SA_Msk (0xfffffffful << PDMA_DSCT_SA_SA_Pos) /*!< PDMA_T::DSCT_SA: SA Mask */
- #define PDMA_DSCT_DA_DA_Pos (0) /*!< PDMA_T::DSCT_DA: DA Position */
- #define PDMA_DSCT_DA_DA_Msk (0xfffffffful << PDMA_DSCT_DA_DA_Pos) /*!< PDMA_T::DSCT_DA: DA Mask */
- #define PDMA_DSCT_NEXT_NEXT_Pos (0) /*!< PDMA_T::DSCT_NEXT: NEXT Position */
- #define PDMA_DSCT_NEXT_NEXT_Msk (0xfffful << PDMA_DSCT_NEXT_NEXT_Pos) /*!< PDMA_T::DSCT_NEXT: NEXT Mask */
- #define PDMA_DSCT_NEXT_EXENEXT_Pos (16) /*!< PDMA_T::DSCT_FIRST: NEXT Position */
- #define PDMA_DSCT_NEXT_EXENEXT_Msk (0xfffful << PDMA_DSCT_NEXT_EXENEXT_Pos) /*!< PDMA_T::DSCT_FIRST: NEXT Mask */
- #define PDMA_CURSCAT_CURADDR_Pos (0) /*!< PDMA_T::CURSCAT: CURADDR Position */
- #define PDMA_CURSCAT_CURADDR_Msk (0xfffffffful << PDMA_CURSCAT_CURADDR_Pos) /*!< PDMA_T::CURSCAT: CURADDR Mask */
- #define PDMA_CHCTL_CHENn_Pos (0) /*!< PDMA_T::CHCTL: CHENn Position */
- #define PDMA_CHCTL_CHENn_Msk (0xfffful << PDMA_CHCTL_CHENn_Pos) /*!< PDMA_T::CHCTL: CHENn Mask */
- #define PDMA_PAUSE_PAUSEn_Pos (0) /*!< PDMA_T::PAUSE: PAUSEn Position */
- #define PDMA_PAUSE_PAUSEn_Msk (0xfffful << PDMA_PAUSE_PAUSEn_Pos) /*!< PDMA_T::PAUSE: PAUSEn Mask */
- #define PDMA_SWREQ_SWREQn_Pos (0) /*!< PDMA_T::SWREQ: SWREQn Position */
- #define PDMA_SWREQ_SWREQn_Msk (0xfffful << PDMA_SWREQ_SWREQn_Pos) /*!< PDMA_T::SWREQ: SWREQn Mask */
- #define PDMA_TRGSTS_REQSTSn_Pos (0) /*!< PDMA_T::TRGSTS: REQSTSn Position */
- #define PDMA_TRGSTS_REQSTSn_Msk (0xfffful << PDMA_TRGSTS_REQSTSn_Pos) /*!< PDMA_T::TRGSTS: REQSTSn Mask */
- #define PDMA_PRISET_FPRISETn_Pos (0) /*!< PDMA_T::PRISET: FPRISETn Position */
- #define PDMA_PRISET_FPRISETn_Msk (0xfffful << PDMA_PRISET_FPRISETn_Pos) /*!< PDMA_T::PRISET: FPRISETn Mask */
- #define PDMA_PRICLR_FPRICLRn_Pos (0) /*!< PDMA_T::PRICLR: FPRICLRn Position */
- #define PDMA_PRICLR_FPRICLRn_Msk (0xfffful << PDMA_PRICLR_FPRICLRn_Pos) /*!< PDMA_T::PRICLR: FPRICLRn Mask */
- #define PDMA_INTEN_INTENn_Pos (0) /*!< PDMA_T::INTEN: INTENn Position */
- #define PDMA_INTEN_INTENn_Msk (0xfffful << PDMA_INTEN_INTENn_Pos) /*!< PDMA_T::INTEN: INTENn Mask */
- #define PDMA_INTSTS_ABTIF_Pos (0) /*!< PDMA_T::INTSTS: ABTIF Position */
- #define PDMA_INTSTS_ABTIF_Msk (0x1ul << PDMA_INTSTS_ABTIF_Pos) /*!< PDMA_T::INTSTS: ABTIF Mask */
- #define PDMA_INTSTS_TDIF_Pos (1) /*!< PDMA_T::INTSTS: TDIF Position */
- #define PDMA_INTSTS_TDIF_Msk (0x1ul << PDMA_INTSTS_TDIF_Pos) /*!< PDMA_T::INTSTS: TDIF Mask */
- #define PDMA_INTSTS_ALIGNF_Pos (2) /*!< PDMA_T::INTSTS: ALIGNF Position */
- #define PDMA_INTSTS_ALIGNF_Msk (0x1ul << PDMA_INTSTS_ALIGNF_Pos) /*!< PDMA_T::INTSTS: ALIGNF Mask */
- #define PDMA_INTSTS_REQTOF0_Pos (8) /*!< PDMA_T::INTSTS: REQTOF0 Position */
- #define PDMA_INTSTS_REQTOF0_Msk (0x1ul << PDMA_INTSTS_REQTOF0_Pos) /*!< PDMA_T::INTSTS: REQTOF0 Mask */
- #define PDMA_INTSTS_REQTOFn_Msk (0x3FFul << PDMA_INTSTS_REQTOF0_Pos) /*!< PDMA_T::INTSTS: REQTOFX Mask */
- #define PDMA_INTSTS_REQTOF1_Pos (9) /*!< PDMA_T::INTSTS: REQTOF1 Position */
- #define PDMA_INTSTS_REQTOF1_Msk (0x1ul << PDMA_INTSTS_REQTOF1_Pos) /*!< PDMA_T::INTSTS: REQTOF1 Mask */
- #define PDMA_INTSTS_REQTOF2_Pos (10) /*!< PDMA_T::INTSTS: REQTOF2 Position */
- #define PDMA_INTSTS_REQTOF2_Msk (0x1ul << PDMA_INTSTS_REQTOF2_Pos) /*!< PDMA_T::INTSTS: REQTOF2 Mask */
- #define PDMA_INTSTS_REQTOF3_Pos (11) /*!< PDMA_T::INTSTS: REQTOF3 Position */
- #define PDMA_INTSTS_REQTOF3_Msk (0x1ul << PDMA_INTSTS_REQTOF3_Pos) /*!< PDMA_T::INTSTS: REQTOF3 Mask */
- #define PDMA_INTSTS_REQTOF4_Pos (12) /*!< PDMA_T::INTSTS: REQTOF4 Position */
- #define PDMA_INTSTS_REQTOF4_Msk (0x1ul << PDMA_INTSTS_REQTOF4_Pos) /*!< PDMA_T::INTSTS: REQTOF4 Mask */
- #define PDMA_INTSTS_REQTOF5_Pos (13) /*!< PDMA_T::INTSTS: REQTOF5 Position */
- #define PDMA_INTSTS_REQTOF5_Msk (0x1ul << PDMA_INTSTS_REQTOF5_Pos) /*!< PDMA_T::INTSTS: REQTOF5 Mask */
- #define PDMA_INTSTS_REQTOF6_Pos (14) /*!< PDMA_T::INTSTS: REQTOF6 Position */
- #define PDMA_INTSTS_REQTOF6_Msk (0x1ul << PDMA_INTSTS_REQTOF6_Pos) /*!< PDMA_T::INTSTS: REQTOF6 Mask */
- #define PDMA_INTSTS_REQTOF7_Pos (15) /*!< PDMA_T::INTSTS: REQTOF7 Position */
- #define PDMA_INTSTS_REQTOF7_Msk (0x1ul << PDMA_INTSTS_REQTOF7_Pos) /*!< PDMA_T::INTSTS: REQTOF7 Mask */
- #define PDMA_INTSTS_REQTOF8_Pos (16) /*!< PDMA_T::INTSTS: REQTOF8 Position */
- #define PDMA_INTSTS_REQTOF8_Msk (0x1ul << PDMA_INTSTS_REQTOF8_Pos) /*!< PDMA_T::INTSTS: REQTOF8 Mask */
- #define PDMA_INTSTS_REQTOF9_Pos (17) /*!< PDMA_T::INTSTS: REQTOF9 Position */
- #define PDMA_INTSTS_REQTOF9_Msk (0x1ul << PDMA_INTSTS_REQTOF9_Pos) /*!< PDMA_T::INTSTS: REQTOF9 Mask */
- #define PDMA_ABTSTS_ABTIF0_Pos (0) /*!< PDMA_T::ABTSTS: ABTIF0 Position */
- #define PDMA_ABTSTS_ABTIF0_Msk (0x1ul << PDMA_ABTSTS_ABTIF0_Pos) /*!< PDMA_T::ABTSTS: ABTIF0 Mask */
- #define PDMA_ABTSTS_ABTIF1_Pos (1) /*!< PDMA_T::ABTSTS: ABTIF1 Position */
- #define PDMA_ABTSTS_ABTIF1_Msk (0x1ul << PDMA_ABTSTS_ABTIF1_Pos) /*!< PDMA_T::ABTSTS: ABTIF1 Mask */
- #define PDMA_ABTSTS_ABTIF2_Pos (2) /*!< PDMA_T::ABTSTS: ABTIF2 Position */
- #define PDMA_ABTSTS_ABTIF2_Msk (0x1ul << PDMA_ABTSTS_ABTIF2_Pos) /*!< PDMA_T::ABTSTS: ABTIF2 Mask */
- #define PDMA_ABTSTS_ABTIF3_Pos (3) /*!< PDMA_T::ABTSTS: ABTIF3 Position */
- #define PDMA_ABTSTS_ABTIF3_Msk (0x1ul << PDMA_ABTSTS_ABTIF3_Pos) /*!< PDMA_T::ABTSTS: ABTIF3 Mask */
- #define PDMA_ABTSTS_ABTIF4_Pos (4) /*!< PDMA_T::ABTSTS: ABTIF4 Position */
- #define PDMA_ABTSTS_ABTIF4_Msk (0x1ul << PDMA_ABTSTS_ABTIF4_Pos) /*!< PDMA_T::ABTSTS: ABTIF4 Mask */
- #define PDMA_ABTSTS_ABTIF5_Pos (5) /*!< PDMA_T::ABTSTS: ABTIF5 Position */
- #define PDMA_ABTSTS_ABTIF5_Msk (0x1ul << PDMA_ABTSTS_ABTIF5_Pos) /*!< PDMA_T::ABTSTS: ABTIF5 Mask */
- #define PDMA_ABTSTS_ABTIF6_Pos (6) /*!< PDMA_T::ABTSTS: ABTIF6 Position */
- #define PDMA_ABTSTS_ABTIF6_Msk (0x1ul << PDMA_ABTSTS_ABTIF6_Pos) /*!< PDMA_T::ABTSTS: ABTIF6 Mask */
- #define PDMA_ABTSTS_ABTIF7_Pos (7) /*!< PDMA_T::ABTSTS: ABTIF7 Position */
- #define PDMA_ABTSTS_ABTIF7_Msk (0x1ul << PDMA_ABTSTS_ABTIF7_Pos) /*!< PDMA_T::ABTSTS: ABTIF7 Mask */
- #define PDMA_ABTSTS_ABTIF8_Pos (8) /*!< PDMA_T::ABTSTS: ABTIF8 Position */
- #define PDMA_ABTSTS_ABTIF8_Msk (0x1ul << PDMA_ABTSTS_ABTIF8_Pos) /*!< PDMA_T::ABTSTS: ABTIF8 Mask */
- #define PDMA_ABTSTS_ABTIF9_Pos (9) /*!< PDMA_T::ABTSTS: ABTIF9 Position */
- #define PDMA_ABTSTS_ABTIF9_Msk (0x1ul << PDMA_ABTSTS_ABTIF9_Pos) /*!< PDMA_T::ABTSTS: ABTIF9 Mask */
- #define PDMA_ABTSTS_ABTIF10_Pos (10) /*!< PDMA_T::ABTSTS: ABTIF10 Position */
- #define PDMA_ABTSTS_ABTIF10_Msk (0x1ul << PDMA_ABTSTS_ABTIF10_Pos) /*!< PDMA_T::ABTSTS: ABTIF10 Mask */
- #define PDMA_ABTSTS_ABTIF11_Pos (11) /*!< PDMA_T::ABTSTS: ABTIF11 Position */
- #define PDMA_ABTSTS_ABTIF11_Msk (0x1ul << PDMA_ABTSTS_ABTIF11_Pos) /*!< PDMA_T::ABTSTS: ABTIF11 Mask */
- #define PDMA_ABTSTS_ABTIF12_Pos (12) /*!< PDMA_T::ABTSTS: ABTIF12 Position */
- #define PDMA_ABTSTS_ABTIF12_Msk (0x1ul << PDMA_ABTSTS_ABTIF12_Pos) /*!< PDMA_T::ABTSTS: ABTIF12 Mask */
- #define PDMA_ABTSTS_ABTIF13_Pos (13) /*!< PDMA_T::ABTSTS: ABTIF13 Position */
- #define PDMA_ABTSTS_ABTIF13_Msk (0x1ul << PDMA_ABTSTS_ABTIF13_Pos) /*!< PDMA_T::ABTSTS: ABTIF13 Mask */
- #define PDMA_ABTSTS_ABTIF14_Pos (14) /*!< PDMA_T::ABTSTS: ABTIF14 Position */
- #define PDMA_ABTSTS_ABTIF14_Msk (0x1ul << PDMA_ABTSTS_ABTIF14_Pos) /*!< PDMA_T::ABTSTS: ABTIF14 Mask */
- #define PDMA_ABTSTS_ABTIF15_Pos (15) /*!< PDMA_T::ABTSTS: ABTIF15 Position */
- #define PDMA_ABTSTS_ABTIF15_Msk (0x1ul << PDMA_ABTSTS_ABTIF15_Pos) /*!< PDMA_T::ABTSTS: ABTIF15 Mask */
- #define PDMA_TDSTS_TDIF0_Pos (0) /*!< PDMA_T::TDSTS: TDIF0 Position */
- #define PDMA_TDSTS_TDIF0_Msk (0x1ul << PDMA_TDSTS_TDIF0_Pos) /*!< PDMA_T::TDSTS: TDIF0 Mask */
- #define PDMA_TDSTS_TDIF1_Pos (1) /*!< PDMA_T::TDSTS: TDIF1 Position */
- #define PDMA_TDSTS_TDIF1_Msk (0x1ul << PDMA_TDSTS_TDIF1_Pos) /*!< PDMA_T::TDSTS: TDIF1 Mask */
- #define PDMA_TDSTS_TDIF2_Pos (2) /*!< PDMA_T::TDSTS: TDIF2 Position */
- #define PDMA_TDSTS_TDIF2_Msk (0x1ul << PDMA_TDSTS_TDIF2_Pos) /*!< PDMA_T::TDSTS: TDIF2 Mask */
- #define PDMA_TDSTS_TDIF3_Pos (3) /*!< PDMA_T::TDSTS: TDIF3 Position */
- #define PDMA_TDSTS_TDIF3_Msk (0x1ul << PDMA_TDSTS_TDIF3_Pos) /*!< PDMA_T::TDSTS: TDIF3 Mask */
- #define PDMA_TDSTS_TDIF4_Pos (4) /*!< PDMA_T::TDSTS: TDIF4 Position */
- #define PDMA_TDSTS_TDIF4_Msk (0x1ul << PDMA_TDSTS_TDIF4_Pos) /*!< PDMA_T::TDSTS: TDIF4 Mask */
- #define PDMA_TDSTS_TDIF5_Pos (5) /*!< PDMA_T::TDSTS: TDIF5 Position */
- #define PDMA_TDSTS_TDIF5_Msk (0x1ul << PDMA_TDSTS_TDIF5_Pos) /*!< PDMA_T::TDSTS: TDIF5 Mask */
- #define PDMA_TDSTS_TDIF6_Pos (6) /*!< PDMA_T::TDSTS: TDIF6 Position */
- #define PDMA_TDSTS_TDIF6_Msk (0x1ul << PDMA_TDSTS_TDIF6_Pos) /*!< PDMA_T::TDSTS: TDIF6 Mask */
- #define PDMA_TDSTS_TDIF7_Pos (7) /*!< PDMA_T::TDSTS: TDIF7 Position */
- #define PDMA_TDSTS_TDIF7_Msk (0x1ul << PDMA_TDSTS_TDIF7_Pos) /*!< PDMA_T::TDSTS: TDIF7 Mask */
- #define PDMA_TDSTS_TDIF8_Pos (8) /*!< PDMA_T::TDSTS: TDIF8 Position */
- #define PDMA_TDSTS_TDIF8_Msk (0x1ul << PDMA_TDSTS_TDIF8_Pos) /*!< PDMA_T::TDSTS: TDIF8 Mask */
- #define PDMA_TDSTS_TDIF9_Pos (9) /*!< PDMA_T::TDSTS: TDIF9 Position */
- #define PDMA_TDSTS_TDIF9_Msk (0x1ul << PDMA_TDSTS_TDIF9_Pos) /*!< PDMA_T::TDSTS: TDIF9 Mask */
- #define PDMA_TDSTS_TDIF10_Pos (10) /*!< PDMA_T::TDSTS: TDIF10 Position */
- #define PDMA_TDSTS_TDIF10_Msk (0x1ul << PDMA_TDSTS_TDIF10_Pos) /*!< PDMA_T::TDSTS: TDIF10 Mask */
- #define PDMA_TDSTS_TDIF11_Pos (11) /*!< PDMA_T::TDSTS: TDIF11 Position */
- #define PDMA_TDSTS_TDIF11_Msk (0x1ul << PDMA_TDSTS_TDIF11_Pos) /*!< PDMA_T::TDSTS: TDIF11 Mask */
- #define PDMA_TDSTS_TDIF12_Pos (12) /*!< PDMA_T::TDSTS: TDIF12 Position */
- #define PDMA_TDSTS_TDIF12_Msk (0x1ul << PDMA_TDSTS_TDIF12_Pos) /*!< PDMA_T::TDSTS: TDIF12 Mask */
- #define PDMA_TDSTS_TDIF13_Pos (13) /*!< PDMA_T::TDSTS: TDIF13 Position */
- #define PDMA_TDSTS_TDIF13_Msk (0x1ul << PDMA_TDSTS_TDIF13_Pos) /*!< PDMA_T::TDSTS: TDIF13 Mask */
- #define PDMA_TDSTS_TDIF14_Pos (14) /*!< PDMA_T::TDSTS: TDIF14 Position */
- #define PDMA_TDSTS_TDIF14_Msk (0x1ul << PDMA_TDSTS_TDIF14_Pos) /*!< PDMA_T::TDSTS: TDIF14 Mask */
- #define PDMA_TDSTS_TDIF15_Pos (15) /*!< PDMA_T::TDSTS: TDIF15 Position */
- #define PDMA_TDSTS_TDIF15_Msk (0x1ul << PDMA_TDSTS_TDIF15_Pos) /*!< PDMA_T::TDSTS: TDIF15 Mask */
- #define PDMA_ALIGN_ALIGNn_Pos (0) /*!< PDMA_T::ALIGN: ALIGNn Position */
- #define PDMA_ALIGN_ALIGNn_Msk (0xfffful << PDMA_ALIGN_ALIGNn_Pos) /*!< PDMA_T::ALIGN: ALIGNn Mask */
- #define PDMA_TACTSTS_TXACTFn_Pos (0) /*!< PDMA_T::TACTSTS: TXACTFn Position */
- #define PDMA_TACTSTS_TXACTFn_Msk (0xfffful << PDMA_TACTSTS_TXACTFn_Pos) /*!< PDMA_T::TACTSTS: TXACTFn Mask */
- #define PDMA_TOUTPSC_TOUTPSC0_Pos (0) /*!< PDMA_T::TOUTPSC: TOUTPSC0 Position */
- #define PDMA_TOUTPSC_TOUTPSC0_Msk (0x7ul << PDMA_TOUTPSC_TOUTPSC0_Pos) /*!< PDMA_T::TOUTPSC: TOUTPSC0 Mask */
- #define PDMA_TOUTPSC_TOUTPSC1_Pos (4) /*!< PDMA_T::TOUTPSC: TOUTPSC1 Position */
- #define PDMA_TOUTPSC_TOUTPSC1_Msk (0x7ul << PDMA_TOUTPSC_TOUTPSC1_Pos) /*!< PDMA_T::TOUTPSC: TOUTPSC1 Mask */
- #define PDMA_TOUTEN_TOUTENn_Pos (0) /*!< PDMA_T::TOUTEN: TOUTENn Position */
- #define PDMA_TOUTEN_TOUTENn_Msk (0x3ul << PDMA_TOUTEN_TOUTENn_Pos) /*!< PDMA_T::TOUTEN: TOUTENn Mask */
- #define PDMA_TOUTIEN_TOUTIENn_Pos (0) /*!< PDMA_T::TOUTIEN: TOUTIENn Position */
- #define PDMA_TOUTIEN_TOUTIENn_Msk (0x3ul << PDMA_TOUTIEN_TOUTIENn_Pos) /*!< PDMA_T::TOUTIEN: TOUTIENn Mask */
- #define PDMA_SCATBA_SCATBA_Pos (16) /*!< PDMA_T::SCATBA: SCATBA Position */
- #define PDMA_SCATBA_SCATBA_Msk (0xfffful << PDMA_SCATBA_SCATBA_Pos) /*!< PDMA_T::SCATBA: SCATBA Mask */
- #define PDMA_TOC0_1_TOC0_Pos (0) /*!< PDMA_T::TOC0_1: TOC0 Position */
- #define PDMA_TOC0_1_TOC0_Msk (0xfffful << PDMA_TOC0_1_TOC0_Pos) /*!< PDMA_T::TOC0_1: TOC0 Mask */
- #define PDMA_TOC0_1_TOC1_Pos (16) /*!< PDMA_T::TOC0_1: TOC1 Position */
- #define PDMA_TOC0_1_TOC1_Msk (0xfffful << PDMA_TOC0_1_TOC1_Pos) /*!< PDMA_T::TOC0_1: TOC1 Mask */
- #define PDMA_TOC2_3_TOC2_Pos (0) /*!< PDMA_T::TOC2_3: TOC2 Position */
- #define PDMA_TOC2_3_TOC2_Msk (0xfffful << PDMA_TOC2_3_TOC2_Pos) /*!< PDMA_T::TOC2_3: TOC2 Mask */
- #define PDMA_TOC2_3_TOC3_Pos (16) /*!< PDMA_T::TOC2_3: TOC3 Position */
- #define PDMA_TOC2_3_TOC3_Msk (0xfffful << PDMA_TOC2_3_TOC3_Pos) /*!< PDMA_T::TOC2_3: TOC3 Mask */
- #define PDMA_TOC4_5_TOC4_Pos (0) /*!< PDMA_T::TOC4_5: TOC4 Position */
- #define PDMA_TOC4_5_TOC4_Msk (0xfffful << PDMA_TOC4_5_TOC4_Pos) /*!< PDMA_T::TOC4_5: TOC4 Mask */
- #define PDMA_TOC4_5_TOC5_Pos (16) /*!< PDMA_T::TOC4_5: TOC5 Position */
- #define PDMA_TOC4_5_TOC5_Msk (0xfffful << PDMA_TOC4_5_TOC5_Pos) /*!< PDMA_T::TOC4_5: TOC5 Mask */
- #define PDMA_TOC6_7_TOC6_Pos (0) /*!< PDMA_T::TOC6_7: TOC6 Position */
- #define PDMA_TOC6_7_TOC6_Msk (0xfffful << PDMA_TOC6_7_TOC6_Pos) /*!< PDMA_T::TOC6_7: TOC6 Mask */
- #define PDMA_TOC6_7_TOC7_Pos (16) /*!< PDMA_T::TOC6_7: TOC7 Position */
- #define PDMA_TOC6_7_TOC7_Msk (0xfffful << PDMA_TOC6_7_TOC7_Pos) /*!< PDMA_T::TOC6_7: TOC7 Mask */
- #define PDMA_TOC8_9_TOC8_Pos (0) /*!< PDMA_T::TOC8_9: TOC8 Position */
- #define PDMA_TOC8_9_TOC8_Msk (0xfffful << PDMA_TOC8_9_TOC8_Pos) /*!< PDMA_T::TOC8_9: TOC8 Mask */
- #define PDMA_TOC8_9_TOC9_Pos (16) /*!< PDMA_T::TOC8_9: TOC9 Position */
- #define PDMA_TOC8_9_TOC9_Msk (0xfffful << PDMA_TOC8_9_TOC9_Pos) /*!< PDMA_T::TOC8_9: TOC9 Mask */
- #define PDMA_CHRST_CHnRST_Pos (0) /*!< PDMA_T::CHRST: CHnRST Position */
- #define PDMA_CHRST_CHnRST_Msk (0xfffful << PDMA_CHRST_CHnRST_Pos) /*!< PDMA_T::CHRST: CHnRST Mask */
- #define PDMA_REQSEL0_3_REQSRC0_Pos (0) /*!< PDMA_T::REQSEL0_3: REQSRC0 Position */
- #define PDMA_REQSEL0_3_REQSRC0_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC0_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC0 Mask */
- #define PDMA_REQSEL0_3_REQSRC1_Pos (8) /*!< PDMA_T::REQSEL0_3: REQSRC1 Position */
- #define PDMA_REQSEL0_3_REQSRC1_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC1_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC1 Mask */
- #define PDMA_REQSEL0_3_REQSRC2_Pos (16) /*!< PDMA_T::REQSEL0_3: REQSRC2 Position */
- #define PDMA_REQSEL0_3_REQSRC2_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC2_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC2 Mask */
- #define PDMA_REQSEL0_3_REQSRC3_Pos (24) /*!< PDMA_T::REQSEL0_3: REQSRC3 Position */
- #define PDMA_REQSEL0_3_REQSRC3_Msk (0x7ful << PDMA_REQSEL0_3_REQSRC3_Pos) /*!< PDMA_T::REQSEL0_3: REQSRC3 Mask */
- #define PDMA_REQSEL4_7_REQSRC4_Pos (0) /*!< PDMA_T::REQSEL4_7: REQSRC4 Position */
- #define PDMA_REQSEL4_7_REQSRC4_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC4_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC4 Mask */
- #define PDMA_REQSEL4_7_REQSRC5_Pos (8) /*!< PDMA_T::REQSEL4_7: REQSRC5 Position */
- #define PDMA_REQSEL4_7_REQSRC5_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC5_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC5 Mask */
- #define PDMA_REQSEL4_7_REQSRC6_Pos (16) /*!< PDMA_T::REQSEL4_7: REQSRC6 Position */
- #define PDMA_REQSEL4_7_REQSRC6_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC6_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC6 Mask */
- #define PDMA_REQSEL4_7_REQSRC7_Pos (24) /*!< PDMA_T::REQSEL4_7: REQSRC7 Position */
- #define PDMA_REQSEL4_7_REQSRC7_Msk (0x7ful << PDMA_REQSEL4_7_REQSRC7_Pos) /*!< PDMA_T::REQSEL4_7: REQSRC7 Mask */
- #define PDMA_REQSEL8_11_REQSRC8_Pos (0) /*!< PDMA_T::REQSEL8_11: REQSRC8 Position */
- #define PDMA_REQSEL8_11_REQSRC8_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC8_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC8 Mask */
- #define PDMA_REQSEL8_11_REQSRC9_Pos (8) /*!< PDMA_T::REQSEL8_11: REQSRC9 Position */
- #define PDMA_REQSEL8_11_REQSRC9_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC9_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC9 Mask */
- #define PDMA_REQSEL8_11_REQSRC10_Pos (16) /*!< PDMA_T::REQSEL8_11: REQSRC10 Position */
- #define PDMA_REQSEL8_11_REQSRC10_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC10_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC10 Mask */
- #define PDMA_REQSEL8_11_REQSRC11_Pos (24) /*!< PDMA_T::REQSEL8_11: REQSRC11 Position */
- #define PDMA_REQSEL8_11_REQSRC11_Msk (0x7ful << PDMA_REQSEL8_11_REQSRC11_Pos) /*!< PDMA_T::REQSEL8_11: REQSRC11 Mask */
- #define PDMA_REQSEL12_15_REQSRC12_Pos (0) /*!< PDMA_T::REQSEL12_15: REQSRC12 Position */
- #define PDMA_REQSEL12_15_REQSRC12_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC12_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC12 Mask */
- #define PDMA_REQSEL12_15_REQSRC13_Pos (8) /*!< PDMA_T::REQSEL12_15: REQSRC13 Position */
- #define PDMA_REQSEL12_15_REQSRC13_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC13_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC13 Mask */
- #define PDMA_REQSEL12_15_REQSRC14_Pos (16) /*!< PDMA_T::REQSEL12_15: REQSRC14 Position */
- #define PDMA_REQSEL12_15_REQSRC14_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC14_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC14 Mask */
- #define PDMA_REQSEL12_15_REQSRC15_Pos (24) /*!< PDMA_T::REQSEL12_15: REQSRC15 Position */
- #define PDMA_REQSEL12_15_REQSRC15_Msk (0x7ful << PDMA_REQSEL12_15_REQSRC15_Pos) /*!< PDMA_T::REQSEL12_15: REQSRC15 Mask */
- #define PDMA_STCRn_STC_Pos (0) /*!< PDMA_T::STCRn: STC Position */
- #define PDMA_STCRn_STC_Msk (0xfffful << PDMA_STCRn_STC_Pos) /*!< PDMA_T::STCRn: STC Mask */
- #define PDMA_ASOCRn_SASOL_Pos (0) /*!< PDMA_T::ASOCRn: SASOL Position */
- #define PDMA_ASOCRn_SASOL_Msk (0xfffful << PDMA_ASOCRn_SASOL_Pos) /*!< PDMA_T::ASOCRn: SASOL Mask */
- #define PDMA_ASOCRn_DASOL_Pos (16) /*!< PDMA_T::ASOCRn: DASOL Position */
- #define PDMA_ASOCRn_DASOL_Msk (0xfffful << PDMA_ASOCRn_DASOL_Pos) /*!< PDMA_T::ASOCRn: DASOL Mask */
- /**@}*/ /* PDMA_CONST */
- /**@}*/ /* end of PDMA register group */
- /**@}*/ /* end of REGISTER group */
- #define PDMA0 ((PDMA_T *) PDMA0_BA)
- #define PDMA1 ((PDMA_T *) PDMA1_BA)
- /** @addtogroup Standard_Driver Standard Driver
- @{
- */
- /** @addtogroup PDMA_Driver PDMA Driver
- @{
- */
- /** @addtogroup PDMA_EXPORTED_CONSTANTS PDMA Exported Constants
- @{
- */
- #define PDMA_CH_MAX 10UL /*!< Specify Maximum Channels of PDMA \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Operation Mode Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_OP_STOP 0x00000000UL /*!<DMA Stop Mode \hideinitializer */
- #define PDMA_OP_BASIC 0x00000001UL /*!<DMA Basic Mode \hideinitializer */
- #define PDMA_OP_SCATTER 0x00000002UL /*!<DMA Scatter-gather Mode \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Data Width Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_WIDTH_8 0x00000000UL /*!<DMA Transfer Width 8-bit \hideinitializer */
- #define PDMA_WIDTH_16 0x00001000UL /*!<DMA Transfer Width 16-bit \hideinitializer */
- #define PDMA_WIDTH_32 0x00002000UL /*!<DMA Transfer Width 32-bit \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Address Attribute Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_SAR_INC 0x00000000UL /*!<DMA SAR increment \hideinitializer */
- #define PDMA_SAR_FIX 0x00000300UL /*!<DMA SAR fix address \hideinitializer */
- #define PDMA_DAR_INC 0x00000000UL /*!<DMA DAR increment \hideinitializer */
- #define PDMA_DAR_FIX 0x00000C00UL /*!<DMA DAR fix address \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Burst Mode Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_REQ_SINGLE 0x00000004UL /*!<DMA Single Request \hideinitializer */
- #define PDMA_REQ_BURST 0x00000000UL /*!<DMA Burst Request \hideinitializer */
- #define PDMA_BURST_128 0x00000000UL /*!<DMA Burst 128 Transfers \hideinitializer */
- #define PDMA_BURST_64 0x00000010UL /*!<DMA Burst 64 Transfers \hideinitializer */
- #define PDMA_BURST_32 0x00000020UL /*!<DMA Burst 32 Transfers \hideinitializer */
- #define PDMA_BURST_16 0x00000030UL /*!<DMA Burst 16 Transfers \hideinitializer */
- #define PDMA_BURST_8 0x00000040UL /*!<DMA Burst 8 Transfers \hideinitializer */
- #define PDMA_BURST_4 0x00000050UL /*!<DMA Burst 4 Transfers \hideinitializer */
- #define PDMA_BURST_2 0x00000060UL /*!<DMA Burst 2 Transfers \hideinitializer */
- #define PDMA_BURST_1 0x00000070UL /*!<DMA Burst 1 Transfers \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Table Interrupt Disable Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_TBINTDIS_ENABLE (0x0UL<<PDMA_DSCT_CTL_TBINTDIS_Pos) /*!<DMA Table Interrupt Enabled \hideinitializer */
- #define PDMA_TBINTDIS_DISABLE (0x1UL<<PDMA_DSCT_CTL_TBINTDIS_Pos) /*!<DMA Table Interrupt Disabled \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Peripheral Transfer Mode Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_MEM 0UL /*!<DMA Connect to PDMA_MEM \hideinitializer */
- #define PDMA_UART0_TX 4UL /*!<DMA Connect to UART0_TX \hideinitializer */
- #define PDMA_UART0_RX 5UL /*!<DMA Connect to UART0_RX \hideinitializer */
- #define PDMA_UART1_TX 6UL /*!<DMA Connect to UART1_TX \hideinitializer */
- #define PDMA_UART1_RX 7UL /*!<DMA Connect to UART1_RX \hideinitializer */
- #define PDMA_UART2_TX 8UL /*!<DMA Connect to UART2_TX \hideinitializer */
- #define PDMA_UART2_RX 9UL /*!<DMA Connect to UART2_RX \hideinitializer */
- #define PDMA_UART3_TX 10UL /*!<DMA Connect to UART3_TX \hideinitializer */
- #define PDMA_UART3_RX 11UL /*!<DMA Connect to UART3_RX \hideinitializer */
- #define PDMA_UART4_TX 12UL /*!<DMA Connect to UART4_TX \hideinitializer */
- #define PDMA_UART4_RX 13UL /*!<DMA Connect to UART4_RX \hideinitializer */
- #define PDMA_UART5_TX 14UL /*!<DMA Connect to UART5_TX \hideinitializer */
- #define PDMA_UART5_RX 15UL /*!<DMA Connect to UART5_RX \hideinitializer */
- #define PDMA_UART6_TX 16UL /*!<DMA Connect to UART6_TX \hideinitializer */
- #define PDMA_UART6_RX 17UL /*!<DMA Connect to UART6_RX \hideinitializer */
- #define PDMA_UART7_TX 18UL /*!<DMA Connect to UART7_TX \hideinitializer */
- #define PDMA_UART7_RX 19UL /*!<DMA Connect to UART7_RX \hideinitializer */
- #define PDMA_QSPI0_TX 20UL /*!<DMA Connect to QSPI0_TX \hideinitializer */
- #define PDMA_QSPI0_RX 21UL /*!<DMA Connect to QSPI0_RX \hideinitializer */
- #define PDMA_SPI0_TX 22UL /*!<DMA Connect to SPI0_TX \hideinitializer */
- #define PDMA_SPI0_RX 23UL /*!<DMA Connect to SPI0_RX \hideinitializer */
- #define PDMA_SPI1_TX 24UL /*!<DMA Connect to SPI1_TX \hideinitializer */
- #define PDMA_SPI1_RX 25UL /*!<DMA Connect to SPI1_RX \hideinitializer */
- #define PDMA_UART8_TX 26UL /*!<DMA Connect to UART8_TX \hideinitializer */
- #define PDMA_UART8_RX 27UL /*!<DMA Connect to UART8_RX \hideinitializer */
- #define PDMA_UART9_TX 28UL /*!<DMA Connect to UART9_TX \hideinitializer */
- #define PDMA_UART9_RX 29UL /*!<DMA Connect to UART9_RX \hideinitializer */
- #define PDMA_I2C0_TX 38UL /*!<DMA Connect to I2C0_TX \hideinitializer */
- #define PDMA_I2C0_RX 39UL /*!<DMA Connect to I2C0_RX \hideinitializer */
- #define PDMA_I2C1_TX 40UL /*!<DMA Connect to I2C1_TX \hideinitializer */
- #define PDMA_I2C1_RX 41UL /*!<DMA Connect to I2C1_RX \hideinitializer */
- #define PDMA_I2C2_TX 42UL /*!<DMA Connect to I2C2_TX \hideinitializer */
- #define PDMA_I2C2_RX 43UL /*!<DMA Connect to I2C2_RX \hideinitializer */
- #define PDMA_I2C3_TX 44UL /*!<DMA Connect to I2C3_TX \hideinitializer */
- #define PDMA_I2C3_RX 45UL /*!<DMA Connect to I2C3_RX \hideinitializer */
- #define PDMA_TIMER0 46UL /*!<DMA Connect to TIMER0 \hideinitializer */
- #define PDMA_TIMER1 47UL /*!<DMA Connect to TIMER1 \hideinitializer */
- #define PDMA_TIMER2 48UL /*!<DMA Connect to TIMER2 \hideinitializer */
- #define PDMA_TIMER3 49UL /*!<DMA Connect to TIMER3 \hideinitializer */
- #define PDMA_TIMER4 50UL /*!<DMA Connect to TIMER4 \hideinitializer */
- #define PDMA_TIMER5 51UL /*!<DMA Connect to TIMER5 \hideinitializer */
- /*---------------------------------------------------------------------------------------------------------*/
- /* Interrupt Type Constant Definitions */
- /*---------------------------------------------------------------------------------------------------------*/
- #define PDMA_INT_TRANS_DONE 0x00000000UL /*!<Transfer Done Interrupt \hideinitializer */
- #define PDMA_INT_TEMPTY 0x00000001UL /*!<Table Empty Interrupt \hideinitializer */
- #define PDMA_INT_TIMEOUT 0x00000002UL /*!<Timeout Interrupt \hideinitializer */
- /*@}*/ /* end of group PDMA_EXPORTED_CONSTANTS */
- /** @addtogroup PDMA_EXPORTED_FUNCTIONS PDMA Exported Functions
- @{
- */
- /**
- * @brief Get PDMA Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @return None
- *
- * @details This macro gets the interrupt status.
- * \hideinitializer
- */
- #define PDMA_GET_INT_STATUS(pdma) ((uint32_t)(pdma->INTSTS))
- /**
- * @brief Get Transfer Done Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @return None
- *
- * @details Get the transfer done Interrupt status.
- * \hideinitializer
- */
- #define PDMA_GET_TD_STS(pdma) ((uint32_t)(pdma->TDSTS))
- /**
- * @brief Clear Transfer Done Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @param[in] u32Mask The channel mask
- *
- * @return None
- *
- * @details Clear the transfer done Interrupt status.
- * \hideinitializer
- */
- #define PDMA_CLR_TD_FLAG(pdma,u32Mask) ((uint32_t)(pdma->TDSTS = (u32Mask)))
- /**
- * @brief Get Target Abort Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @return None
- *
- * @details Get the target abort Interrupt status.
- * \hideinitializer
- */
- #define PDMA_GET_ABORT_STS(pdma) ((uint32_t)(pdma->ABTSTS))
- /**
- * @brief Clear Target Abort Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @param[in] u32Mask The channel mask
- *
- * @return None
- *
- * @details Clear the target abort Interrupt status.
- * \hideinitializer
- */
- #define PDMA_CLR_ABORT_FLAG(pdma,u32Mask) ((uint32_t)(pdma->ABTSTS = (u32Mask)))
- /**
- * @brief Get Alignment Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @return None
- *
- * @details Get Alignment Interrupt status.
- * \hideinitializer
- */
- #define PDMA_GET_ALIGN_STS(pdma) ((uint32_t)(PDMA->ALIGN))
- /**
- * @brief Clear Alignment Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Mask The channel mask
- *
- * @return None
- *
- * @details Clear the Alignment Interrupt status.
- * \hideinitializer
- */
- #define PDMA_CLR_ALIGN_FLAG(pdma,u32Mask) ((uint32_t)(pdma->ALIGN = (u32Mask)))
- /**
- * @brief Clear Timeout Interrupt Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Ch The selected channel
- *
- * @return None
- *
- * @details Clear the selected channel timeout interrupt status.
- * \hideinitializer
- */
- #define PDMA_CLR_TMOUT_FLAG(pdma,u32Ch) ((uint32_t)(pdma->INTSTS = (1 << ((u32Ch) + 8))))
- /**
- * @brief Check Channel Status
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Ch The selected channel
- *
- * @retval 0 Idle state
- * @retval 1 Busy state
- *
- * @details Check the selected channel is busy or not.
- * \hideinitializer
- */
- #define PDMA_IS_CH_BUSY(pdma,u32Ch) ((uint32_t)(pdma->TRGSTS & (1 << (u32Ch)))? 1 : 0)
- /**
- * @brief Set Source Address
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Ch The selected channel
- * @param[in] u32Addr The selected address
- *
- * @return None
- *
- * @details This macro set the selected channel source address.
- * \hideinitializer
- */
- #define PDMA_SET_SRC_ADDR(pdma,u32Ch, u32Addr) ((uint32_t)(pdma->DSCT[(u32Ch)].SA = (u32Addr)))
- /**
- * @brief Set Destination Address
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Ch The selected channel
- * @param[in] u32Addr The selected address
- *
- * @return None
- *
- * @details This macro set the selected channel destination address.
- * \hideinitializer
- */
- #define PDMA_SET_DST_ADDR(pdma,u32Ch, u32Addr) ((uint32_t)(pdma->DSCT[(u32Ch)].DA = (u32Addr)))
- /**
- * @brief Set Transfer Count
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Ch The selected channel
- * @param[in] u32TransCount Transfer Count
- *
- * @return None
- *
- * @details This macro set the selected channel transfer count.
- * \hideinitializer
- */
- #define PDMA_SET_TRANS_CNT(pdma,u32Ch, u32TransCount) ((uint32_t)(pdma->DSCT[(u32Ch)].CTL=(pdma->DSCT[(u32Ch)].CTL&~PDMA_DSCT_CTL_TXCNT_Msk)|(((u32TransCount)-1) << PDMA_DSCT_CTL_TXCNT_Pos)))
- /**
- * @brief Set Scatter-gather descriptor Address
- *
- * @param[in] pdma The pointer of the specified PDMA module
- * @param[in] u32Ch The selected channel
- * @param[in] u32Addr The descriptor address
- *
- * @return None
- *
- * @details This macro set the selected channel scatter-gather descriptor address.
- * \hideinitializer
- */
- #define PDMA_SET_SCATTER_DESC(pdma,u32Ch, u32Addr) ((uint32_t)(pdma->DSCT[(u32Ch)].NEXT = (u32Addr) - (pdma->SCATBA)))
- /**
- * @brief Stop the channel
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @param[in] u32Ch The selected channel
- *
- * @return None
- *
- * @details This macro stop the selected channel.
- * \hideinitializer
- */
- #define PDMA_STOP(pdma,u32Ch) ((uint32_t)(pdma->PAUSE = (1 << (u32Ch))))
- /**
- * @brief Pause the channel
- *
- * @param[in] pdma The pointer of the specified PDMA module
- *
- * @param[in] u32Ch The selected channel
- *
- * @return None
- *
- * @details This macro pause the selected channel.
- * \hideinitializer
- */
- #define PDMA_PAUSE(pdma,u32Ch) ((uint32_t)(pdma->PAUSE = (1 << (u32Ch))))
- /*---------------------------------------------------------------------------------------------------------*/
- /* Define PDMA functions prototype */
- /*---------------------------------------------------------------------------------------------------------*/
- void PDMA_Open(PDMA_T *pdma, uint32_t u32Mask);
- void PDMA_Close(PDMA_T *pdma);
- void PDMA_SetTransferCnt(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32Width, uint32_t u32TransCount);
- void PDMA_SetTransferAddr(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32SrcAddr, uint32_t u32SrcCtrl, uint32_t u32DstAddr, uint32_t u32DstCtrl);
- void PDMA_SetTransferMode(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32Peripheral, uint32_t u32ScatterEn, uint32_t u32DescAddr);
- void PDMA_SetBurstType(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32BurstType, uint32_t u32BurstSize);
- void PDMA_EnableTimeout(PDMA_T *pdma, uint32_t u32Mask);
- void PDMA_DisableTimeout(PDMA_T *pdma, uint32_t u32Mask);
- void PDMA_SetTimeOut(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32OnOff, uint32_t u32TimeOutCnt);
- void PDMA_Trigger(PDMA_T *pdma, uint32_t u32Ch);
- void PDMA_EnableInt(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32Mask);
- void PDMA_DisableInt(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32Mask);
- void PDMA_SetStride(PDMA_T *pdma, uint32_t u32Ch, uint32_t u32DestLen, uint32_t u32SrcLen, uint32_t u32TransCount);
- /*@}*/ /* end of group PDMA_EXPORTED_FUNCTIONS */
- /*@}*/ /* end of group PDMA_Driver */
- /*@}*/ /* end of group Standard_Driver */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __NU_PDMA_H__ */
|