1 /* 2 * Copyright (c) 2022 Arm Limited. All rights reserved. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef __DMA350_REGDEF_H 18 #define __DMA350_REGDEF_H 19 20 #include <stdint.h> 21 #define __IM volatile const 22 #define __OM volatile 23 #define __IOM volatile 24 /******************************************************************************/ 25 /* Type definitions for DMA350 register blocks */ 26 /******************************************************************************/ 27 typedef struct 28 { 29 __IOM uint32_t CH_CMD; /*!< Address offset: 0x000, Channel DMA Command Register */ 30 __IOM uint32_t CH_STATUS; /*!< Address offset: 0x004, Channel Status Register */ 31 __IOM uint32_t CH_INTREN; /*!< Address offset: 0x008, Channel Interrupt Enable Register */ 32 __IOM uint32_t CH_CTRL; /*!< Address offset: 0x00C, Channel Control Register */ 33 __IOM uint32_t CH_SRCADDR; /*!< Address offset: 0x010, Channel Source Address Register */ 34 __IOM uint32_t CH_SRCADDRHI; /*!< Address offset: 0x014, Channel Source Address Register High Bits [63:32] */ 35 __IOM uint32_t CH_DESADDR; /*!< Address offset: 0x018, Channel Destination Address Register */ 36 __IOM uint32_t CH_DESADDRHI; /*!< Address offset: 0x01C, Channel Destination Address Register, High Bits [63:32] */ 37 __IOM uint32_t CH_XSIZE; /*!< Address offset: 0x020, Channel X Dimension Size Register, Lower Bits [15:0] */ 38 __IOM uint32_t CH_XSIZEHI; /*!< Address offset: 0x024, Channel X Dimension Size Register, High Bits [31:16] */ 39 __IOM uint32_t CH_SRCTRANSCFG; /*!< Address offset: 0x028, Channel Source Transfer Configuration Register */ 40 __IOM uint32_t CH_DESTRANSCFG; /*!< Address offset: 0x02C, Channel Destination Transfer Configuration Register */ 41 __IOM uint32_t CH_XADDRINC; /*!< Address offset: 0x030, Channel X Dimension Address Increment Register */ 42 __IOM uint32_t CH_YADDRSTRIDE; /*!< Address offset: 0x034, Channel Y Dimension Address Stride Register */ 43 __IOM uint32_t CH_FILLVAL; /*!< Address offset: 0x038, Channel Fill Pattern Value Register */ 44 __IOM uint32_t CH_YSIZE; /*!< Address offset: 0x03C, Channel Y Dimensions Size Register */ 45 __IOM uint32_t CH_TMPLTCFG; /*!< Address offset: 0x040, Channel Template Configuration Register */ 46 __IOM uint32_t CH_SRCTMPLT; /*!< Address offset: 0x044, Channel Source Template Pattern Register */ 47 __IOM uint32_t CH_DESTMPLT; /*!< Address offset: 0x048, Channel Destination Template Pattern Register */ 48 __IOM uint32_t CH_SRCTRIGINCFG; /*!< Address offset: 0x04C, Channel Source Trigger In Configuration Register */ 49 __IOM uint32_t CH_DESTRIGINCFG; /*!< Address offset: 0x050, Channel Destination Trigger In Configuration Register */ 50 __IOM uint32_t CH_TRIGOUTCFG; /*!< Address offset: 0x054, Channel Trigger Out Configuration Register */ 51 __IOM uint32_t CH_GPOEN0; /*!< Address offset: 0x058, Channel GPO Driving Enable Register 0 */ 52 uint32_t RESERVED0[1]; /*!< Address offset: 0x5C - 0x5C, Reserved */ 53 __IOM uint32_t CH_GPOVAL0; /*!< Address offset: 0x060, Channel GPO Value Register 0 */ 54 uint32_t RESERVED1[1]; /*!< Address offset: 0x64 - 0x64, Reserved */ 55 __IOM uint32_t CH_STREAMINTCFG; /*!< Address offset: 0x068, Channel Stream Interface Configuration Register */ 56 uint32_t RESERVED2[1]; /*!< Address offset: 0x6C - 0x6C, Reserved */ 57 __IOM uint32_t CH_LINKATTR; /*!< Address offset: 0x070, Channel Link Address Memory Attributes Register */ 58 __IOM uint32_t CH_AUTOCFG; /*!< Address offset: 0x074, Channel Automatic Command Restart Configuration Register */ 59 __IOM uint32_t CH_LINKADDR; /*!< Address offset: 0x078, Channel Link Address Register */ 60 __IOM uint32_t CH_LINKADDRHI; /*!< Address offset: 0x07C, Channel Link Address Register, High Bits [63:32] */ 61 __IOM uint32_t CH_GPOREAD0; /*!< Address offset: 0x080, Channel GPO Read Value Register 0 */ 62 uint32_t RESERVED3[1]; /*!< Address offset: 0x84 - 0x84, Reserved */ 63 __IOM uint32_t CH_WRKREGPTR; /*!< Address offset: 0x088, Channel Working Register Pointer Register */ 64 __IOM uint32_t CH_WRKREGVAL; /*!< Address offset: 0x08C, Channel - Working Register Value Register */ 65 __IOM uint32_t CH_ERRINFO; /*!< Address offset: 0x090, Channel Error Information Register */ 66 uint32_t RESERVED4[13]; /*!< Address offset: 0x94 - 0xC4, Reserved */ 67 __IOM uint32_t CH_IIDR; /*!< Address offset: 0x0C8, Channel Implementation Identification Register */ 68 __IOM uint32_t CH_AIDR; /*!< Address offset: 0x0CC, Channel Architecture Identification Register */ 69 uint32_t RESERVED5[6]; /*!< Address offset: 0xD0 - 0xE4, Reserved */ 70 __IOM uint32_t CH_ISSUECAP; /*!< Address offset: 0x0E8, Used for setting issuing capability threshold. */ 71 uint32_t RESERVED6[3]; /*!< Address offset: 0xEC - 0xF4, Reserved */ 72 __IOM uint32_t CH_BUILDCFG0; /*!< Address offset: 0x0F8, Channel Build Configuration and Capability Register 0 */ 73 __IOM uint32_t CH_BUILDCFG1; /*!< Address offset: 0x0FC, Channel Build Configuration and Capability Register 1 */ 74 } DMACH_TypeDef; 75 typedef struct 76 { 77 __IOM uint32_t NSEC_CHINTRSTATUS0; /*!< Address offset: 0x000, Non-Secure Channel Interrupt Status Register 0 */ 78 uint32_t RESERVED0[1]; /*!< Address offset: 0x4 - 0x4, Reserved */ 79 __IOM uint32_t NSEC_STATUS; /*!< Address offset: 0x008, Non-Secure Status Register */ 80 __IOM uint32_t NSEC_CTRL; /*!< Address offset: 0x00C, Non-Secure Control Register */ 81 uint32_t RESERVED1[1]; /*!< Address offset: 0x10 - 0x10, Reserved */ 82 __IOM uint32_t NSEC_CHPTR; /*!< Address offset: 0x014, Non-Secure Channel Pointer */ 83 __IOM uint32_t NSEC_CHCFG; /*!< Address offset: 0x018, Non-Secure Channel Configuration Register */ 84 uint32_t RESERVED2[53]; /*!< Address offset: 0x1C - 0xEC, Reserved */ 85 __IOM uint32_t NSEC_STATUSPTR; /*!< Address offset: 0x0F0, Non-Secure Unit Status Pointer Register */ 86 __IOM uint32_t NSEC_STATUSVAL; /*!< Address offset: 0x0F4, Non-Secure Unit Status Value Register */ 87 __IOM uint32_t NSEC_SIGNALPTR; /*!< Address offset: 0x0F8, Non-Secure Unit Signal Pointer */ 88 __IOM uint32_t NSEC_SIGNALVAL; /*!< Address offset: 0x0FC, Non-Secure Unit Signal Value Register */ 89 } DMANSECCTRL_TypeDef; 90 typedef struct 91 { 92 __IOM uint32_t SEC_CHINTRSTATUS0; /*!< Address offset: 0x000, Secure Channel Interrupt Status Register 0 */ 93 uint32_t RESERVED0[1]; /*!< Address offset: 0x4 - 0x4, Reserved */ 94 __IOM uint32_t SEC_STATUS; /*!< Address offset: 0x008, Secure Status Register */ 95 __IOM uint32_t SEC_CTRL; /*!< Address offset: 0x00C, Secure Control Register */ 96 uint32_t RESERVED1[1]; /*!< Address offset: 0x10 - 0x10, Reserved */ 97 __IOM uint32_t SEC_CHPTR; /*!< Address offset: 0x014, Secure Channel Pointer */ 98 __IOM uint32_t SEC_CHCFG; /*!< Address offset: 0x018, Secure Channel Configuration Register */ 99 uint32_t RESERVED2[53]; /*!< Address offset: 0x1C - 0xEC, Reserved */ 100 __IOM uint32_t SEC_STATUSPTR; /*!< Address offset: 0x0F0, Secure Unit Status Pointer Register */ 101 __IOM uint32_t SEC_STATUSVAL; /*!< Address offset: 0x0F4, Secure Unit Status Value Register */ 102 __IOM uint32_t SEC_SIGNALPTR; /*!< Address offset: 0x0F8, Secure Unit Signal Pointer */ 103 __IOM uint32_t SEC_SIGNALVAL; /*!< Address offset: 0x0FC, Secure Unit Signal Value Register */ 104 } DMASECCTRL_TypeDef; 105 typedef struct 106 { 107 __IOM uint32_t SCFG_CHSEC0; /*!< Address offset: 0x000, Secure Configuration Channel Security Mapping Register 0 */ 108 uint32_t RESERVED0[1]; /*!< Address offset: 0x4 - 0x4, Reserved */ 109 __IOM uint32_t SCFG_TRIGINSEC0; /*!< Address offset: 0x008, Secure Configuration Trigger Input Security Mapping Register 0 */ 110 uint32_t RESERVED1[7]; /*!< Address offset: 0xC - 0x24, Reserved */ 111 __IOM uint32_t SCFG_TRIGOUTSEC0; /*!< Address offset: 0x028, Secure Configuration Trigger Output Security Mapping Register 0 */ 112 uint32_t RESERVED2[5]; /*!< Address offset: 0x2C - 0x3C, Reserved */ 113 __IOM uint32_t SCFG_CTRL; /*!< Address offset: 0x040, Secure Configuration Control */ 114 __IOM uint32_t SCFG_INTRSTATUS; /*!< Address offset: 0x044, Secure Configuration Interrupt Status */ 115 } DMASECCFG_TypeDef; 116 typedef struct 117 { 118 uint32_t RESERVED0[44]; /*!< Address offset: 0x0 - 0xAC, Reserved */ 119 __IOM uint32_t DMA_BUILDCFG0; /*!< Address offset: 0x0B0, DMA Build Configuration Register 0 */ 120 __IOM uint32_t DMA_BUILDCFG1; /*!< Address offset: 0x0B4, DMA Build Configuration Register 1 */ 121 __IOM uint32_t DMA_BUILDCFG2; /*!< Address offset: 0x0B8, DMA Build Configuration Register 2 */ 122 uint32_t RESERVED1[3]; /*!< Address offset: 0xBC - 0xC4, Reserved */ 123 __IOM uint32_t IIDR; /*!< Address offset: 0x0C8, Implementation Identification Register */ 124 __IOM uint32_t AIDR; /*!< Address offset: 0x0CC, Architecture Identification Register */ 125 __IOM uint32_t PIDR4; /*!< Address offset: 0x0D0, Peripheral ID4 Register */ 126 uint32_t RESERVED2[3]; /*!< Address offset: 0xD4 - 0xDC, Reserved */ 127 __IOM uint32_t PIDR0; /*!< Address offset: 0x0E0, Peripheral ID0 Register */ 128 __IOM uint32_t PIDR1; /*!< Address offset: 0x0E4, Peripheral ID1 Register */ 129 __IOM uint32_t PIDR2; /*!< Address offset: 0x0E8, Peripheral ID2 Register */ 130 __IOM uint32_t PIDR3; /*!< Address offset: 0x0EC, Peripheral ID 3 Register */ 131 __IOM uint32_t CIDR0; /*!< Address offset: 0x0F0, Component ID0 Register */ 132 __IOM uint32_t CIDR1; /*!< Address offset: 0x0F4, Component ID1 Register */ 133 __IOM uint32_t CIDR2; /*!< Address offset: 0x0F8, Component ID2 Register */ 134 __IOM uint32_t CIDR3; /*!< Address offset: 0x0FC, Component ID3 Register */ 135 } DMAINFO_TypeDef; 136 137 /******************************************************************************/ 138 /* Field Definitions of Registers */ 139 /******************************************************************************/ 140 /******************************************************************************/ 141 /* DMACH */ 142 /******************************************************************************/ 143 /****************** Field definitions for CH_CMD register *******************/ 144 #define DMA_CH_CMD_ENABLECMD_Pos (0U) 145 #define DMA_CH_CMD_ENABLECMD_Msk (0x1UL << DMA_CH_CMD_ENABLECMD_Pos) /*!< 0x00000001UL*/ 146 #define DMA_CH_CMD_ENABLECMD DMA_CH_CMD_ENABLECMD_Msk /*!< ENABLECMD bit Channel Enable. When set to '1', enables the channel to run its programmed task. When set to '1', it cannot be set back to zero, and this field will automatically clear to zero when a DMA process is completed. To force the DMA to stop prematurely, you must use CH_CMD.STOPCMD instead.*/ 147 #define DMA_CH_CMD_CLEARCMD_Pos (1U) 148 #define DMA_CH_CMD_CLEARCMD_Msk (0x1UL << DMA_CH_CMD_CLEARCMD_Pos) /*!< 0x00000002UL*/ 149 #define DMA_CH_CMD_CLEARCMD DMA_CH_CMD_CLEARCMD_Msk /*!< CLEARCMD bit DMA Clear command. When set to '1', it will remain high until all DMA channel registers and any internal queues and buffers are cleared, before returning to '0'. When set at the same time as ENABLECMD or while the DMA channel is already enabled, the clear will only occur after any ongoing DMA operation is either completed, stopped or disabled and the ENABLECMD bit is deasserted by the DMA.*/ 150 #define DMA_CH_CMD_DISABLECMD_Pos (2U) 151 #define DMA_CH_CMD_DISABLECMD_Msk (0x1UL << DMA_CH_CMD_DISABLECMD_Pos) /*!< 0x00000004UL*/ 152 #define DMA_CH_CMD_DISABLECMD DMA_CH_CMD_DISABLECMD_Msk /*!< DISABLECMD bit Disable DMA Operation at the end of the current DMA command operation. Once set to '1', this field will stay high and the current DMA command will be allowed to complete, but the DMA will not fetch the next linked command or will it auto-restart the DMA command even if they are set. Once the DMA has stopped, it will return to '0' and ENABLECMD is also cleared. When set at the same time as ENABLECMD or when the channel is not enabled then write to this register is ignored.*/ 153 #define DMA_CH_CMD_STOPCMD_Pos (3U) 154 #define DMA_CH_CMD_STOPCMD_Msk (0x1UL << DMA_CH_CMD_STOPCMD_Pos) /*!< 0x00000008UL*/ 155 #define DMA_CH_CMD_STOPCMD DMA_CH_CMD_STOPCMD_Msk /*!< STOPCMD bit Stop Current DMA Operation. Once set to '1', his will remain high until the DMA channel is stopped cleanly. Then this will return to '0' and ENABLECMD is also cleared. When set at the same time as ENABLECMD or when the channel is not enabled then write to this register is ignored. Note that each DMA channel can have other sources of a stop request and this field will not reflect the state of the other sources.*/ 156 #define DMA_CH_CMD_PAUSECMD_Pos (4U) 157 #define DMA_CH_CMD_PAUSECMD_Msk (0x1UL << DMA_CH_CMD_PAUSECMD_Pos) /*!< 0x00000010UL*/ 158 #define DMA_CH_CMD_PAUSECMD DMA_CH_CMD_PAUSECMD_Msk /*!< PAUSECMD bit Pause Current DMA Operation. Once set to '1' the status cannot change until the DMA operation reached the paused state indicated by the STAT_PAUSED and STAT_RESUMEWAIT bits. The bit can be set by SW by writing it to '1', the current active DMA operation will be paused as soon as possible, but the ENABLECMD bit will remain HIGH to show that the operation is still active. Cleared automatically when STAT_RESUMEWAIT is set and the RESUMECMD bit is written to '1', meaning that the SW continues the operation of the channel. Note that each DMA channel can have other sources of a pause request and this field will not reflect the state of the other sources. When set at the same time as ENABLECMD or when the channel is not enabled then write to this register is ignored.*/ 159 #define DMA_CH_CMD_RESUMECMD_Pos (5U) 160 #define DMA_CH_CMD_RESUMECMD_Msk (0x1UL << DMA_CH_CMD_RESUMECMD_Pos) /*!< 0x00000020UL*/ 161 #define DMA_CH_CMD_RESUMECMD DMA_CH_CMD_RESUMECMD_Msk /*!< RESUMECMD bit Resume Current DMA Operation. Writing this bit to '1' means that the DMAC can continue the operation of a paused channel. Can be set to '1' when the PAUSECMD or a STAT_DONE assertion with DONEPAUSEEN set HIGH results in pausing the current DMA channel operation indicated by the STAT_PAUSED and STAT_RESUMEWAIT bits. Otherwise, writes to this bit are ignored.*/ 162 #define DMA_CH_CMD_SRCSWTRIGINREQ_Pos (16U) 163 #define DMA_CH_CMD_SRCSWTRIGINREQ_Msk (0x1UL << DMA_CH_CMD_SRCSWTRIGINREQ_Pos) /*!< 0x00010000UL*/ 164 #define DMA_CH_CMD_SRCSWTRIGINREQ DMA_CH_CMD_SRCSWTRIGINREQ_Msk /*!< SRCSWTRIGINREQ bit Software Generated Source Trigger Input Request. Write to '1' to create a SW trigger request to the DMA with the specified type in the SRCSWTRIGINTYPE register. Once set to '1', this will remain high until the DMA accepted the trigger and will return this to '0'. It will also be cleared automatically if the current command is completed without expecting another trigger event. When the channel is not enabled, write to this register is ignored.*/ 165 #define DMA_CH_CMD_SRCSWTRIGINTYPE_Pos (17U) 166 #define DMA_CH_CMD_SRCSWTRIGINTYPE_Msk (0x3UL << DMA_CH_CMD_SRCSWTRIGINTYPE_Pos) /*!< 0x00060000UL*/ 167 #define DMA_CH_CMD_SRCSWTRIGINTYPE DMA_CH_CMD_SRCSWTRIGINTYPE_Msk /*!< SRCSWTRIGINTYPE[ 1:0] bits Software Generated Source Trigger Input Request Type. Selects the trigger request type for the source trigger input when the SW triggers the SRCSWTRIGINREQ bit. 168 - 00: Single request 169 - 01: Last single request 170 - 10: Block request 171 - 11: Last block request 172 This field cannot be changed while the SRCSWTRIGINREQ bit is set.*/ 173 #define DMA_CH_CMD_SRCSWTRIGINTYPE_0 (0x1UL << DMA_CH_CMD_SRCSWTRIGINTYPE_Pos) /*!< 0x00020000UL*/ 174 #define DMA_CH_CMD_SRCSWTRIGINTYPE_1 (0x2UL << DMA_CH_CMD_SRCSWTRIGINTYPE_Pos) /*!< 0x00040000UL*/ 175 #define DMA_CH_CMD_DESSWTRIGINREQ_Pos (20U) 176 #define DMA_CH_CMD_DESSWTRIGINREQ_Msk (0x1UL << DMA_CH_CMD_DESSWTRIGINREQ_Pos) /*!< 0x00100000UL*/ 177 #define DMA_CH_CMD_DESSWTRIGINREQ DMA_CH_CMD_DESSWTRIGINREQ_Msk /*!< DESSWTRIGINREQ bit Software Generated Destination Trigger Input Request. Write to '1' to create a SW trigger request to the DMA with the specified type in the DESSWTRIGINTYPE register. Once set to '1', this will remain high until the DMA is accepted the trigger and will return this to '0'. It will also be cleared automatically if the current command is completed without expecting another trigger event. When the channel is not enabled, write to this register is ignored.*/ 178 #define DMA_CH_CMD_DESSWTRIGINTYPE_Pos (21U) 179 #define DMA_CH_CMD_DESSWTRIGINTYPE_Msk (0x3UL << DMA_CH_CMD_DESSWTRIGINTYPE_Pos) /*!< 0x00600000UL*/ 180 #define DMA_CH_CMD_DESSWTRIGINTYPE DMA_CH_CMD_DESSWTRIGINTYPE_Msk /*!< DESSWTRIGINTYPE[ 1:0] bits Software Generated Destination Trigger Input Request Type. Selects the trigger request type for the destination trigger input when the SW triggers the DESSWTRIGINREQ bit. 181 - 00: Single request 182 - 01: Last single request 183 - 10: Block request 184 - 11: Last block request 185 This field cannot be changed while the DESSWTRIGINREQ bit is set.*/ 186 #define DMA_CH_CMD_DESSWTRIGINTYPE_0 (0x1UL << DMA_CH_CMD_DESSWTRIGINTYPE_Pos) /*!< 0x00200000UL*/ 187 #define DMA_CH_CMD_DESSWTRIGINTYPE_1 (0x2UL << DMA_CH_CMD_DESSWTRIGINTYPE_Pos) /*!< 0x00400000UL*/ 188 #define DMA_CH_CMD_SWTRIGOUTACK_Pos (24U) 189 #define DMA_CH_CMD_SWTRIGOUTACK_Msk (0x1UL << DMA_CH_CMD_SWTRIGOUTACK_Pos) /*!< 0x01000000UL*/ 190 #define DMA_CH_CMD_SWTRIGOUTACK DMA_CH_CMD_SWTRIGOUTACK_Msk /*!< SWTRIGOUTACK bit Software Generated Trigger Output Acknowledge. Write '1' to acknowledge a Trigger Output request from the DMA. Once set to '1', this will remain high until the DMA Trigger Output is raised (either on the trigger output signal or as an interrupt) and the acknowledge is accepted. When the channel is not enabled, write to this register is ignored.*/ 191 /***************** Field definitions for CH_STATUS register *****************/ 192 #define DMA_CH_STATUS_INTR_DONE_Pos (0U) 193 #define DMA_CH_STATUS_INTR_DONE_Msk (0x1UL << DMA_CH_STATUS_INTR_DONE_Pos) /*!< 0x00000001UL*/ 194 #define DMA_CH_STATUS_INTR_DONE DMA_CH_STATUS_INTR_DONE_Msk /*!< INTR_DONE bit Done Interrupt Flag. This interrupt will be set to HIGH if the INTREN_DONE is set and the STAT_DONE status flag gets raised. Automatically cleared when STAT_DONE is cleared.*/ 195 #define DMA_CH_STATUS_INTR_ERR_Pos (1U) 196 #define DMA_CH_STATUS_INTR_ERR_Msk (0x1UL << DMA_CH_STATUS_INTR_ERR_Pos) /*!< 0x00000002UL*/ 197 #define DMA_CH_STATUS_INTR_ERR DMA_CH_STATUS_INTR_ERR_Msk /*!< INTR_ERR bit Error Interrupt Flag. This interrupt will be set to HIGH if the INTREN_ERR is set and the STAT_ERR status flag gets raised. Automatically cleared when STAT_ERR is cleared.*/ 198 #define DMA_CH_STATUS_INTR_DISABLED_Pos (2U) 199 #define DMA_CH_STATUS_INTR_DISABLED_Msk (0x1UL << DMA_CH_STATUS_INTR_DISABLED_Pos) /*!< 0x00000004UL*/ 200 #define DMA_CH_STATUS_INTR_DISABLED DMA_CH_STATUS_INTR_DISABLED_Msk /*!< INTR_DISABLED bit Disabled Interrupt Flag. This interrupt will be set to HIGH if the INTREN_DISABLED is set and the STAT_DISABLED flag gets raised. Automatically cleared when STAT_DISABLED is cleared.*/ 201 #define DMA_CH_STATUS_INTR_STOPPED_Pos (3U) 202 #define DMA_CH_STATUS_INTR_STOPPED_Msk (0x1UL << DMA_CH_STATUS_INTR_STOPPED_Pos) /*!< 0x00000008UL*/ 203 #define DMA_CH_STATUS_INTR_STOPPED DMA_CH_STATUS_INTR_STOPPED_Msk /*!< INTR_STOPPED bit Stopped Interrupt Flag. This interrupt will be set to HIGH if the INTREN_STOPPED is set and the STAT_STOPPED flag gets raised. Automatically cleared when STAT_STOPPED is cleared.*/ 204 #define DMA_CH_STATUS_INTR_SRCTRIGINWAIT_Pos (8U) 205 #define DMA_CH_STATUS_INTR_SRCTRIGINWAIT_Msk (0x1UL << DMA_CH_STATUS_INTR_SRCTRIGINWAIT_Pos) /*!< 0x00000100UL*/ 206 #define DMA_CH_STATUS_INTR_SRCTRIGINWAIT DMA_CH_STATUS_INTR_SRCTRIGINWAIT_Msk /*!< INTR_SRCTRIGINWAIT bit Channel is waiting for Source Trigger Interrupt Flag. This interrupt will be set to HIGH if the INTREN_SRCTRIGINWAIT is set and the STAT_SRCTRIGINWAIT status flag is asserted. Automatically cleared when STAT_SRCTRIGINWAIT is cleared.*/ 207 #define DMA_CH_STATUS_INTR_DESTRIGINWAIT_Pos (9U) 208 #define DMA_CH_STATUS_INTR_DESTRIGINWAIT_Msk (0x1UL << DMA_CH_STATUS_INTR_DESTRIGINWAIT_Pos) /*!< 0x00000200UL*/ 209 #define DMA_CH_STATUS_INTR_DESTRIGINWAIT DMA_CH_STATUS_INTR_DESTRIGINWAIT_Msk /*!< INTR_DESTRIGINWAIT bit Channel is waiting for Destination Trigger Interrupt Flag. This interrupt will be set to HIGH if the INTREN_DESTRIGINWAIT is set and the STAT_DESTRIGINWAIT status flag is asserted. Automatically cleared when STAT_DESTRIGINWAIT is cleared.*/ 210 #define DMA_CH_STATUS_INTR_TRIGOUTACKWAIT_Pos (10U) 211 #define DMA_CH_STATUS_INTR_TRIGOUTACKWAIT_Msk (0x1UL << DMA_CH_STATUS_INTR_TRIGOUTACKWAIT_Pos) /*!< 0x00000400UL*/ 212 #define DMA_CH_STATUS_INTR_TRIGOUTACKWAIT DMA_CH_STATUS_INTR_TRIGOUTACKWAIT_Msk /*!< INTR_TRIGOUTACKWAIT bit Channel is waiting for output Trigger Acknowledgement Interrupt Flag. This interrupt will be set to HIGH if the INTREN_TRIGOUTACKWAIT is set and the STAT_TRIGOUTACKWAIT status flag is asserted. Automatically cleared when STAT_TRIGOUTACKWAIT is cleared.*/ 213 #define DMA_CH_STATUS_STAT_DONE_Pos (16U) 214 #define DMA_CH_STATUS_STAT_DONE_Msk (0x1UL << DMA_CH_STATUS_STAT_DONE_Pos) /*!< 0x00010000UL*/ 215 #define DMA_CH_STATUS_STAT_DONE DMA_CH_STATUS_STAT_DONE_Msk /*!< STAT_DONE bit Done Status Flag. This flag will be set to HIGH when the DMA command reaches the state defined by the DONETYPE settings. When DONEPAUSEEN is set the DMA command operation is paused when this flag is asserted. Write '1' to this bit to clear it. Automatically cleared when the ENABLECMD is set.*/ 216 #define DMA_CH_STATUS_STAT_ERR_Pos (17U) 217 #define DMA_CH_STATUS_STAT_ERR_Msk (0x1UL << DMA_CH_STATUS_STAT_ERR_Pos) /*!< 0x00020000UL*/ 218 #define DMA_CH_STATUS_STAT_ERR DMA_CH_STATUS_STAT_ERR_Msk /*!< STAT_ERR bit Error Status Flag. This flag will be set to HIGH if the DMA encounters an error during its operation. The details about the error event can be found in the ERRINFO register. Write '1' to this bit to clear it. When cleared, it also clears the ERRINFO register. Automatically cleared when the ENABLECMD is set.*/ 219 #define DMA_CH_STATUS_STAT_DISABLED_Pos (18U) 220 #define DMA_CH_STATUS_STAT_DISABLED_Msk (0x1UL << DMA_CH_STATUS_STAT_DISABLED_Pos) /*!< 0x00040000UL*/ 221 #define DMA_CH_STATUS_STAT_DISABLED DMA_CH_STATUS_STAT_DISABLED_Msk /*!< STAT_DISABLED bit Disabled Status Flag. This flag will be set to HIGH if the DMA channel is successfully disabled using the DISABLECMD command. Write '1' to this bit to clear it. Automatically cleared when the ENABLECMD is set.*/ 222 #define DMA_CH_STATUS_STAT_STOPPED_Pos (19U) 223 #define DMA_CH_STATUS_STAT_STOPPED_Msk (0x1UL << DMA_CH_STATUS_STAT_STOPPED_Pos) /*!< 0x00080000UL*/ 224 #define DMA_CH_STATUS_STAT_STOPPED DMA_CH_STATUS_STAT_STOPPED_Msk /*!< STAT_STOPPED bit Stopped Status Flag. This flag will be set to HIGH if the DMA channel successfully reached the stopped state. The stop request can come from many internal or external sources. Write '1' to this bit to clear it. Automatically cleared when the ENABLECMD is set.*/ 225 #define DMA_CH_STATUS_STAT_PAUSED_Pos (20U) 226 #define DMA_CH_STATUS_STAT_PAUSED_Msk (0x1UL << DMA_CH_STATUS_STAT_PAUSED_Pos) /*!< 0x00100000UL*/ 227 #define DMA_CH_STATUS_STAT_PAUSED DMA_CH_STATUS_STAT_PAUSED_Msk /*!< STAT_PAUSED bit Paused Status Flag. This flag will be set to HIGH if the DMA channel successfully paused the operation of the command. The pause request can come from many internal or external sources. When the request to pause is not asserted anymore the bit will be cleared automatically and the command operation can continue.*/ 228 #define DMA_CH_STATUS_STAT_RESUMEWAIT_Pos (21U) 229 #define DMA_CH_STATUS_STAT_RESUMEWAIT_Msk (0x1UL << DMA_CH_STATUS_STAT_RESUMEWAIT_Pos) /*!< 0x00200000UL*/ 230 #define DMA_CH_STATUS_STAT_RESUMEWAIT DMA_CH_STATUS_STAT_RESUMEWAIT_Msk /*!< STAT_RESUMEWAIT bit Waiting for resume from software Flag. This flag indicates that the DMA channel successfully paused the operation of the command and needs SW acknowledgment to resume the operation. Will be set to HIGH if STAT_PAUSED is asserted and the PAUSECMD bit set in the command register or when the STAT_DONE is asserted and the DONEPAUSEEN bit is set. Cleared when the RESUMECMD bit is set in the command register.*/ 231 #define DMA_CH_STATUS_STAT_SRCTRIGINWAIT_Pos (24U) 232 #define DMA_CH_STATUS_STAT_SRCTRIGINWAIT_Msk (0x1UL << DMA_CH_STATUS_STAT_SRCTRIGINWAIT_Pos) /*!< 0x01000000UL*/ 233 #define DMA_CH_STATUS_STAT_SRCTRIGINWAIT DMA_CH_STATUS_STAT_SRCTRIGINWAIT_Msk /*!< STAT_SRCTRIGINWAIT bit Channel is waiting for Source Trigger Status. This bit is set to HIGH when DMA channel starts waiting for source input trigger request. Automatically cleared when the source trigger request is received either from HW or SW source. */ 234 #define DMA_CH_STATUS_STAT_DESTRIGINWAIT_Pos (25U) 235 #define DMA_CH_STATUS_STAT_DESTRIGINWAIT_Msk (0x1UL << DMA_CH_STATUS_STAT_DESTRIGINWAIT_Pos) /*!< 0x02000000UL*/ 236 #define DMA_CH_STATUS_STAT_DESTRIGINWAIT DMA_CH_STATUS_STAT_DESTRIGINWAIT_Msk /*!< STAT_DESTRIGINWAIT bit Channel is waiting for Destination Trigger Status. This bit is set to HIGH when DMA channel starts waiting for destination input trigger request. Automatically cleared when the destination trigger request is received either from HW or SW source.*/ 237 #define DMA_CH_STATUS_STAT_TRIGOUTACKWAIT_Pos (26U) 238 #define DMA_CH_STATUS_STAT_TRIGOUTACKWAIT_Msk (0x1UL << DMA_CH_STATUS_STAT_TRIGOUTACKWAIT_Pos) /*!< 0x04000000UL*/ 239 #define DMA_CH_STATUS_STAT_TRIGOUTACKWAIT DMA_CH_STATUS_STAT_TRIGOUTACKWAIT_Msk /*!< STAT_TRIGOUTACKWAIT bit Channel is waiting for output Trigger Acknowledgement Status. This bit is set to HIGH when DMA channel starts waiting for output trigger acknowledgement. Automatically cleared when the output trigger acknowledgement is received either from HW or SW source.*/ 240 /***************** Field definitions for CH_INTREN register *****************/ 241 #define DMA_CH_INTREN_INTREN_DONE_Pos (0U) 242 #define DMA_CH_INTREN_INTREN_DONE_Msk (0x1UL << DMA_CH_INTREN_INTREN_DONE_Pos) /*!< 0x00000001UL*/ 243 #define DMA_CH_INTREN_INTREN_DONE DMA_CH_INTREN_INTREN_DONE_Msk /*!< INTREN_DONE bit Done Interrupt Enable. When set to HIGH, enables the INTR_DONE to be set and raise an interrupt when the STAT_DONE status flag is asserted. When set to LOW, it prevents INTR_DONE to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 244 #define DMA_CH_INTREN_INTREN_ERR_Pos (1U) 245 #define DMA_CH_INTREN_INTREN_ERR_Msk (0x1UL << DMA_CH_INTREN_INTREN_ERR_Pos) /*!< 0x00000002UL*/ 246 #define DMA_CH_INTREN_INTREN_ERR DMA_CH_INTREN_INTREN_ERR_Msk /*!< INTREN_ERR bit Error Interrupt Enable. When set to HIGH, enables INTR_ERROR to be set and raise an interrupt when the STAT_ERR status flag is asserted. When set to LOW, it prevents INTR_ERR to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 247 #define DMA_CH_INTREN_INTREN_DISABLED_Pos (2U) 248 #define DMA_CH_INTREN_INTREN_DISABLED_Msk (0x1UL << DMA_CH_INTREN_INTREN_DISABLED_Pos) /*!< 0x00000004UL*/ 249 #define DMA_CH_INTREN_INTREN_DISABLED DMA_CH_INTREN_INTREN_DISABLED_Msk /*!< INTREN_DISABLED bit Disabled Interrupt Enable. When set to HIGH, enables INTR_DISABLED to be set and raise an interrupt when STAT_DISABLED status flag is asserted. When set to LOW, it prevents INTR_DISABLED to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 250 #define DMA_CH_INTREN_INTREN_STOPPED_Pos (3U) 251 #define DMA_CH_INTREN_INTREN_STOPPED_Msk (0x1UL << DMA_CH_INTREN_INTREN_STOPPED_Pos) /*!< 0x00000008UL*/ 252 #define DMA_CH_INTREN_INTREN_STOPPED DMA_CH_INTREN_INTREN_STOPPED_Msk /*!< INTREN_STOPPED bit Stopped Interrupt Enable. When set to HIGH, enables INTR_STOPPED to be set and raise an interrupt when STAT_STOPPED status flag is asserted. When set to LOW, it prevents INTR_STOPPED to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 253 #define DMA_CH_INTREN_INTREN_SRCTRIGINWAIT_Pos (8U) 254 #define DMA_CH_INTREN_INTREN_SRCTRIGINWAIT_Msk (0x1UL << DMA_CH_INTREN_INTREN_SRCTRIGINWAIT_Pos) /*!< 0x00000100UL*/ 255 #define DMA_CH_INTREN_INTREN_SRCTRIGINWAIT DMA_CH_INTREN_INTREN_SRCTRIGINWAIT_Msk /*!< INTREN_SRCTRIGINWAIT bit Channel is waiting for Source Trigger Interrupt Enable. When set to HIGH, enables INTR_SRCTRIGINWAIT to be set and raise an interrupt when STAT_SRCTRIGINWAIT status flag is asserted. When set to LOW, it prevents INTR_SRCTRIGINWAIT to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 256 #define DMA_CH_INTREN_INTREN_DESTRIGINWAIT_Pos (9U) 257 #define DMA_CH_INTREN_INTREN_DESTRIGINWAIT_Msk (0x1UL << DMA_CH_INTREN_INTREN_DESTRIGINWAIT_Pos) /*!< 0x00000200UL*/ 258 #define DMA_CH_INTREN_INTREN_DESTRIGINWAIT DMA_CH_INTREN_INTREN_DESTRIGINWAIT_Msk /*!< INTREN_DESTRIGINWAIT bit Channel is waiting for destination Trigger Interrupt Enable. When set to HIGH, enables INTR_DESTRIGINWAIT to be set and raise an interrupt when STAT_DESTRIGINWAIT status flag is asserted. When set to LOW, it prevents INTR_DESTRIGINWAIT to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 259 #define DMA_CH_INTREN_INTREN_TRIGOUTACKWAIT_Pos (10U) 260 #define DMA_CH_INTREN_INTREN_TRIGOUTACKWAIT_Msk (0x1UL << DMA_CH_INTREN_INTREN_TRIGOUTACKWAIT_Pos) /*!< 0x00000400UL*/ 261 #define DMA_CH_INTREN_INTREN_TRIGOUTACKWAIT DMA_CH_INTREN_INTREN_TRIGOUTACKWAIT_Msk /*!< INTREN_TRIGOUTACKWAIT bit Channel is waiting for output Trigger Acknowledgement Interrupt Enable. When set to HIGH, enables INTR_TRIGOUTACKWAIT to be set and raise an interrupt when STAT_TRIGOUTACKWAIT status flag is asserted. When set to LOW, it prevents INTR_TRIGOUTACKWAIT to be asserted. Currently pending interrupts are not affected by clearing this bit.*/ 262 /****************** Field definitions for CH_CTRL register ******************/ 263 #define DMA_CH_CTRL_TRANSIZE_Pos (0U) 264 #define DMA_CH_CTRL_TRANSIZE_Msk (0x7UL << DMA_CH_CTRL_TRANSIZE_Pos) /*!< 0x00000007UL*/ 265 #define DMA_CH_CTRL_TRANSIZE DMA_CH_CTRL_TRANSIZE_Msk /*!< TRANSIZE[ 2:0] bits Transfer Entity Size. Size in bytes = 2^TRANSIZE. 266 - 000: Byte 267 - 001: Halfworld 268 - 010: Word 269 - 011: Doubleword 270 - 100: 128bits 271 - 101: 256bits 272 - 110: 512bits 273 - 111: 1024bits 274 Note that DATA_WIDTH limits this field. Address will be aligned to TRANSIZE by the DMAC by ignoring the lower bits.*/ 275 #define DMA_CH_CTRL_TRANSIZE_0 (0x1UL << DMA_CH_CTRL_TRANSIZE_Pos) /*!< 0x00000001UL*/ 276 #define DMA_CH_CTRL_TRANSIZE_1 (0x2UL << DMA_CH_CTRL_TRANSIZE_Pos) /*!< 0x00000002UL*/ 277 #define DMA_CH_CTRL_TRANSIZE_2 (0x4UL << DMA_CH_CTRL_TRANSIZE_Pos) /*!< 0x00000004UL*/ 278 #define DMA_CH_CTRL_CHPRIO_Pos (4U) 279 #define DMA_CH_CTRL_CHPRIO_Msk (0xFUL << DMA_CH_CTRL_CHPRIO_Pos) /*!< 0x000000F0UL*/ 280 #define DMA_CH_CTRL_CHPRIO DMA_CH_CTRL_CHPRIO_Msk /*!< CHPRIO[ 3:0] bits Channel Priority. 281 - 0: Lowest Priority 282 - 15: Highest Priority*/ 283 #define DMA_CH_CTRL_CHPRIO_0 (0x1UL << DMA_CH_CTRL_CHPRIO_Pos) /*!< 0x00000010UL*/ 284 #define DMA_CH_CTRL_CHPRIO_1 (0x2UL << DMA_CH_CTRL_CHPRIO_Pos) /*!< 0x00000020UL*/ 285 #define DMA_CH_CTRL_CHPRIO_2 (0x4UL << DMA_CH_CTRL_CHPRIO_Pos) /*!< 0x00000040UL*/ 286 #define DMA_CH_CTRL_CHPRIO_3 (0x8UL << DMA_CH_CTRL_CHPRIO_Pos) /*!< 0x00000080UL*/ 287 #define DMA_CH_CTRL_XTYPE_Pos (9U) 288 #define DMA_CH_CTRL_XTYPE_Msk (0x7UL << DMA_CH_CTRL_XTYPE_Pos) /*!< 0x00000E00UL*/ 289 #define DMA_CH_CTRL_XTYPE DMA_CH_CTRL_XTYPE_Msk /*!< XTYPE[ 2:0] bits Operation type for X direction: 290 - 000: "disable" - No data transfer will take place for this command. This mode can be used to create empty commands that wait for an event or set GPOs. 291 - 001: "continue" - Copy data in a continuous manner from source to the destination. For 1D operations it is expected that SRCXSIZE is equal to DESXSIZE, other combinations result in UNPREDICTABLE behavior. For 2D operations, this mode can be used for simple 2D to 2D copy but it also allows the reshaping of the data like 1D to 2D or 2D to 1D conversions. If the DESXSIZE is smaller than SRCXSIZE then the read data from the current source line goes to the next destination line. If SRCXSIZE is smaller than DESXSIZE then the reads start on the next line and data is written to the remainder of the current destination line. Note: For 1D to 2D the SRCYSIZE for 2D to 1D conversion the DESYSIZE needs to be set to 1 when using this mode. 292 - 010: "wrap" - Wrap source data within a destination line when the end of the source line is reached. Read starts again from the beginning of the source line and copied to the remainder of the destination line. If the DESXSIZE is smaller than SRCXSIZE then the behavior is UNPREDICTABLE. Not supported when HAS_WRAP is 0 in HW 293 - 011: "fill" - Fill the remainder of the destination line with FILLVAL when the end of the source line is reached. If the DESXSIZE is smaller than SRCXSIZE then the behavior is UNPREDICTABLE. Not supported when HAS_WRAP is 0 in HW. 294 - Others: Reserved.*/ 295 #define DMA_CH_CTRL_XTYPE_0 (0x1UL << DMA_CH_CTRL_XTYPE_Pos) /*!< 0x00000200UL*/ 296 #define DMA_CH_CTRL_XTYPE_1 (0x2UL << DMA_CH_CTRL_XTYPE_Pos) /*!< 0x00000400UL*/ 297 #define DMA_CH_CTRL_XTYPE_2 (0x4UL << DMA_CH_CTRL_XTYPE_Pos) /*!< 0x00000800UL*/ 298 #define DMA_CH_CTRL_YTYPE_Pos (12U) 299 #define DMA_CH_CTRL_YTYPE_Msk (0x7UL << DMA_CH_CTRL_YTYPE_Pos) /*!< 0x00007000UL*/ 300 #define DMA_CH_CTRL_YTYPE DMA_CH_CTRL_YTYPE_Msk /*!< YTYPE[ 2:0] bits Operation type for Y direction: 301 - 000: "disable" - Only do 1D transfers. When HAS_2D is 0, meaning 2D capability is not supported in HW, the YTYPE is always "000". 302 - 001: "continue" - Copy 2D data in a continuous manner from source area to the destination area by using the YSIZE registers. The copy stops when the source runs out of data or the destination runs out of space. Not supported when HAS_2D is 0 in HW. 303 - 010: "wrap" - Wrap the 2D source area within the destination 2D area by starting to copy data from the beginning of the first source line to the remaining space in the destination area. If the destination area is smaller than the source area then the behavior is UNPREDICTABLE. Not supported when HAS_WRAP or HAS_2D is 0 in HW. 304 - 011: Fill the remainder of the destination area with FILLVAL when the source area runs out of data. If the destination area is smaller than the source area then the behavior is UNPREDICTABLE. Not supported when HAS_WRAP or HAS_2D is 0 in HW 305 - Others: Reserved*/ 306 #define DMA_CH_CTRL_YTYPE_0 (0x1UL << DMA_CH_CTRL_YTYPE_Pos) /*!< 0x00001000UL*/ 307 #define DMA_CH_CTRL_YTYPE_1 (0x2UL << DMA_CH_CTRL_YTYPE_Pos) /*!< 0x00002000UL*/ 308 #define DMA_CH_CTRL_YTYPE_2 (0x4UL << DMA_CH_CTRL_YTYPE_Pos) /*!< 0x00004000UL*/ 309 #define DMA_CH_CTRL_REGRELOADTYPE_Pos (18U) 310 #define DMA_CH_CTRL_REGRELOADTYPE_Msk (0x7UL << DMA_CH_CTRL_REGRELOADTYPE_Pos) /*!< 0x001C0000UL*/ 311 #define DMA_CH_CTRL_REGRELOADTYPE DMA_CH_CTRL_REGRELOADTYPE_Msk /*!< REGRELOADTYPE[ 2:0] bits Automatic register reload type. Defines how the DMA command reloads initial values at the end of a DMA command before autorestarting, ending or linking to a new DMA command: 312 - 000: Reload Disabled. 313 - 001: Reload source and destination size registers only. 314 - 011: Reload source address only and all source and destination size registers. 315 - 101: Reload destination address only and all source and destination size registers. 316 - 111: Reload source and destination address and all source and destination size registers. 317 - Others: Reserved. 318 NOTE: When CLEARCMD is set, the reloaded registers will also be cleared.*/ 319 #define DMA_CH_CTRL_REGRELOADTYPE_0 (0x1UL << DMA_CH_CTRL_REGRELOADTYPE_Pos) /*!< 0x00040000UL*/ 320 #define DMA_CH_CTRL_REGRELOADTYPE_1 (0x2UL << DMA_CH_CTRL_REGRELOADTYPE_Pos) /*!< 0x00080000UL*/ 321 #define DMA_CH_CTRL_REGRELOADTYPE_2 (0x4UL << DMA_CH_CTRL_REGRELOADTYPE_Pos) /*!< 0x00100000UL*/ 322 #define DMA_CH_CTRL_DONETYPE_Pos (21U) 323 #define DMA_CH_CTRL_DONETYPE_Msk (0x7UL << DMA_CH_CTRL_DONETYPE_Pos) /*!< 0x00E00000UL*/ 324 #define DMA_CH_CTRL_DONETYPE DMA_CH_CTRL_DONETYPE_Msk /*!< DONETYPE[ 2:0] bits Done type selection. This field defines when the STAT_DONE status flag is asserted during the command operation. 325 - 000: STAT_DONE flag is not asserted for this command. 326 - 001: End of a command, before jumping to the next linked command. (default) 327 - 011: End of an autorestart cycle, before starting the next cycle. 328 - Others : Reserved.*/ 329 #define DMA_CH_CTRL_DONETYPE_0 (0x1UL << DMA_CH_CTRL_DONETYPE_Pos) /*!< 0x00200000UL*/ 330 #define DMA_CH_CTRL_DONETYPE_1 (0x2UL << DMA_CH_CTRL_DONETYPE_Pos) /*!< 0x00400000UL*/ 331 #define DMA_CH_CTRL_DONETYPE_2 (0x4UL << DMA_CH_CTRL_DONETYPE_Pos) /*!< 0x00800000UL*/ 332 #define DMA_CH_CTRL_DONEPAUSEEN_Pos (24U) 333 #define DMA_CH_CTRL_DONEPAUSEEN_Msk (0x1UL << DMA_CH_CTRL_DONEPAUSEEN_Pos) /*!< 0x01000000UL*/ 334 #define DMA_CH_CTRL_DONEPAUSEEN DMA_CH_CTRL_DONEPAUSEEN_Msk /*!< DONEPAUSEEN bit Done pause enable. When set to HIGH the assertion of the STAT_DONE flag results in an automatic pause request for the current DMA operation. When the paused state is reached the STAT_RESUMEWAIT flag is also set. When set to LOW the assertion of the STAT_DONE does not pause the progress of the command and the next operation of the channel will be started immediately after the STAT_DONE flag is set.*/ 335 #define DMA_CH_CTRL_USESRCTRIGIN_Pos (25U) 336 #define DMA_CH_CTRL_USESRCTRIGIN_Msk (0x1UL << DMA_CH_CTRL_USESRCTRIGIN_Pos) /*!< 0x02000000UL*/ 337 #define DMA_CH_CTRL_USESRCTRIGIN DMA_CH_CTRL_USESRCTRIGIN_Msk /*!< USESRCTRIGIN bit Enable Source Trigger Input use for this command. 338 - 0: disable 339 - 1: enable*/ 340 #define DMA_CH_CTRL_USEDESTRIGIN_Pos (26U) 341 #define DMA_CH_CTRL_USEDESTRIGIN_Msk (0x1UL << DMA_CH_CTRL_USEDESTRIGIN_Pos) /*!< 0x04000000UL*/ 342 #define DMA_CH_CTRL_USEDESTRIGIN DMA_CH_CTRL_USEDESTRIGIN_Msk /*!< USEDESTRIGIN bit Enable Destination Trigger Input use for this command. 343 - 0: disable 344 - 1: enable*/ 345 #define DMA_CH_CTRL_USETRIGOUT_Pos (27U) 346 #define DMA_CH_CTRL_USETRIGOUT_Msk (0x1UL << DMA_CH_CTRL_USETRIGOUT_Pos) /*!< 0x08000000UL*/ 347 #define DMA_CH_CTRL_USETRIGOUT DMA_CH_CTRL_USETRIGOUT_Msk /*!< USETRIGOUT bit Enable Trigger Output use for this command. 348 - 0: disable 349 - 1: enable*/ 350 #define DMA_CH_CTRL_USEGPO_Pos (28U) 351 #define DMA_CH_CTRL_USEGPO_Msk (0x1UL << DMA_CH_CTRL_USEGPO_Pos) /*!< 0x10000000UL*/ 352 #define DMA_CH_CTRL_USEGPO DMA_CH_CTRL_USEGPO_Msk /*!< USEGPO bit Enable GPO use for this command. 353 - 0: disable 354 - 1: enable*/ 355 #define DMA_CH_CTRL_USESTREAM_Pos (29U) 356 #define DMA_CH_CTRL_USESTREAM_Msk (0x1UL << DMA_CH_CTRL_USESTREAM_Pos) /*!< 0x20000000UL*/ 357 #define DMA_CH_CTRL_USESTREAM DMA_CH_CTRL_USESTREAM_Msk /*!< USESTREAM bit Enable Stream Interface use for this command. 358 - 0: disable 359 - 1: enable*/ 360 /**************** Field definitions for CH_SRCADDR register *****************/ 361 #define DMA_CH_SRCADDR_SRCADDR_Pos (0U) 362 #define DMA_CH_SRCADDR_SRCADDR_Msk (0xFFFFFFFFUL << DMA_CH_SRCADDR_SRCADDR_Pos) /*!< 0xFFFFFFFFUL*/ 363 #define DMA_CH_SRCADDR_SRCADDR DMA_CH_SRCADDR_SRCADDR_Msk /*!< SRCADDR[31:0] bits Source Address [31:0].*/ 364 /*************** Field definitions for CH_SRCADDRHI register ****************/ 365 #define DMA_CH_SRCADDRHI_SRCADDRHI_Pos (0U) 366 #define DMA_CH_SRCADDRHI_SRCADDRHI_Msk (0xFFFFFFFFUL << DMA_CH_SRCADDRHI_SRCADDRHI_Pos) /*!< 0xFFFFFFFFUL*/ 367 #define DMA_CH_SRCADDRHI_SRCADDRHI DMA_CH_SRCADDRHI_SRCADDRHI_Msk /*!< SRCADDRHI[31:0] bits Source Address [63:32]. Allows 64-bit addressing but the system might need less address bits defined by ADDR_WIDTH. The not implemented bits remain reserved.*/ 368 /**************** Field definitions for CH_DESADDR register *****************/ 369 #define DMA_CH_DESADDR_DESADDR_Pos (0U) 370 #define DMA_CH_DESADDR_DESADDR_Msk (0xFFFFFFFFUL << DMA_CH_DESADDR_DESADDR_Pos) /*!< 0xFFFFFFFFUL*/ 371 #define DMA_CH_DESADDR_DESADDR DMA_CH_DESADDR_DESADDR_Msk /*!< DESADDR[31:0] bits Destination Address[31:0]*/ 372 /*************** Field definitions for CH_DESADDRHI register ****************/ 373 #define DMA_CH_DESADDRHI_DESADDRHI_Pos (0U) 374 #define DMA_CH_DESADDRHI_DESADDRHI_Msk (0xFFFFFFFFUL << DMA_CH_DESADDRHI_DESADDRHI_Pos) /*!< 0xFFFFFFFFUL*/ 375 #define DMA_CH_DESADDRHI_DESADDRHI DMA_CH_DESADDRHI_DESADDRHI_Msk /*!< DESADDRHI[31:0] bits Destination Address[63:32]. Allows 64-bit addressing but the system might need less address bits defined by ADDR_WIDTH. The not implemented bits remain reserved.*/ 376 /***************** Field definitions for CH_XSIZE register ******************/ 377 #define DMA_CH_XSIZE_SRCXSIZE_Pos (0U) 378 #define DMA_CH_XSIZE_SRCXSIZE_Msk (0xFFFFUL << DMA_CH_XSIZE_SRCXSIZE_Pos) /*!< 0x0000FFFFUL*/ 379 #define DMA_CH_XSIZE_SRCXSIZE DMA_CH_XSIZE_SRCXSIZE_Msk /*!< SRCXSIZE[15:0] bits Source Number of Transfers in the X Dimension lower bits [15:0]. This register along with SRCXSIZEHI defines the source data block size of the DMA operation for any 1D operation, and defines the X dimension of the 2D source block for 2D operation.*/ 380 #define DMA_CH_XSIZE_DESXSIZE_Pos (16U) 381 #define DMA_CH_XSIZE_DESXSIZE_Msk (0xFFFFUL << DMA_CH_XSIZE_DESXSIZE_Pos) /*!< 0xFFFF0000UL*/ 382 #define DMA_CH_XSIZE_DESXSIZE DMA_CH_XSIZE_DESXSIZE_Msk /*!< DESXSIZE[15:0] bits Destination Number of Transfers in the X Dimension lower bits [15:0]. This register along with DESXSIZEHI defines the destination data block size of the DMA operation for or any 1D operation, and defines the X dimension of the 2D destination block for a 2D operation. HAS_WRAP or HAS_STREAM configuration needs to be set to allow writes to this register, otherwise it is read-only and writing to SRCXSIZE will also update the value of this register.*/ 383 /**************** Field definitions for CH_XSIZEHI register *****************/ 384 #define DMA_CH_XSIZEHI_SRCXSIZEHI_Pos (0U) 385 #define DMA_CH_XSIZEHI_SRCXSIZEHI_Msk (0xFFFFUL << DMA_CH_XSIZEHI_SRCXSIZEHI_Pos) /*!< 0x0000FFFFUL*/ 386 #define DMA_CH_XSIZEHI_SRCXSIZEHI DMA_CH_XSIZEHI_SRCXSIZEHI_Msk /*!< SRCXSIZEHI[15:0] bits Source Number of Transfers in the X Dimension high bits [31:16]. This register along with SRCXSIZE defines the source data block size of the DMA operation for any 1D operation, and defines the X dimension of the 2D source block for 2D operation.*/ 387 #define DMA_CH_XSIZEHI_DESXSIZEHI_Pos (16U) 388 #define DMA_CH_XSIZEHI_DESXSIZEHI_Msk (0xFFFFUL << DMA_CH_XSIZEHI_DESXSIZEHI_Pos) /*!< 0xFFFF0000UL*/ 389 #define DMA_CH_XSIZEHI_DESXSIZEHI DMA_CH_XSIZEHI_DESXSIZEHI_Msk /*!< DESXSIZEHI[15:0] bits Destination Number of Transfers in the X Dimension high bits [31:16]. This register along with DESXSIZE defines the destination data block size of the DMA operation for or any 1D operation, and defines the X dimension of the 2D destination block for a 2D operation. HAS_WRAP or HAS_STREAM configuration needs to be set to allow writes to this register, otherwise it is read-only and writing to SRCXSIZEHI will also update the value of this register.*/ 390 /************** Field definitions for CH_SRCTRANSCFG register ***************/ 391 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Pos (0U) 392 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Msk (0xFUL << DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Pos) /*!< 0x0000000FUL*/ 393 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Msk /*!< SRCMEMATTRLO[ 3:0] bits Source Transfer Memory Attribute field [3:0]. 394 When SRCMEMATTRHI is Device type (0000) then this field means: 395 - 0000: Device-nGnRnE 396 - 0100: Device-nGnRE 397 - 1000: Device-nGRE 398 - 1100: Device-GRE 399 - Others: Invalid resulting in UNPREDICTABLE behavior 400 When SRCMEMATTRHI is Normal memory type (other than 0000) then this field means: 401 - 0000: Reserved 402 - 0001: Normal memory, Inner Write allocate, Inner Write-through transient 403 - 0010: Normal memory, Inner Read allocate, Inner Write-through transient 404 - 0011: Normal memory, Inner Read/Write allocate, Inner Write-through transient 405 - 0100: Normal memory, Inner non-cacheable 406 - 0101: Normal memory, Inner Write allocate, Inner Write-back transient 407 - 0110: Normal memory, Inner Read allocate, Inner Write-back transient 408 - 0111: Normal memory, Inner Read/Write allocate, Inner Write-back transient 409 - 1000: Normal memory, Inner Write-through non-transient 410 - 1001: Normal memory, Inner Write allocate, Inner Write-through non-transient 411 - 1010: Normal memory, Inner Read allocate, Inner Write-through non-transient 412 - 1011: Normal memory, Inner Read/Write allocate, Inner Write-through non-transient 413 - 1100: Normal memory, Inner Write-back non-transient 414 - 1101: Normal memory, Inner Write allocate, Inner Write-back non-transient 415 - 1110: Normal memory, Inner Read allocate, Inner Write-back non-transient 416 - 1111: Normal memory, Inner Read/Write allocate, Inner Write-back non-transient*/ 417 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_0 (0x1UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Pos) /*!< 0x00000001UL*/ 418 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_1 (0x2UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Pos) /*!< 0x00000002UL*/ 419 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_2 (0x4UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Pos) /*!< 0x00000004UL*/ 420 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_3 (0x8UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRLO_Pos) /*!< 0x00000008UL*/ 421 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Pos (4U) 422 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Msk (0xFUL << DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Pos) /*!< 0x000000F0UL*/ 423 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Msk /*!< SRCMEMATTRHI[ 3:0] bits Source Transfer Memory Attribute field [7:4]. 424 - 0000: Device memory 425 - 0001: Normal memory, Outer Write allocate, Outer Write-through transient 426 - 0010: Normal memory, Outer Read allocate, Outer Write-through transient 427 - 0011: Normal memory, Outer Read/Write allocate, Outer Write-through transient 428 - 0100: Normal memory, Outer non-cacheable 429 - 0101: Normal memory, Outer Write allocate, Outer Write-back transient 430 - 0110: Normal memory, Outer Read allocate, Outer Write-back transient 431 - 0111: Normal memory, Outer Read/Write allocate, Outer Write-back transient 432 - 1000: Normal memory, Outer Write-through non-transient 433 - 1001: Normal memory, Outer Write allocate, Outer Write-through non-transient 434 - 1010: Normal memory, Outer Read allocate, Outer Write-through non-transient 435 - 1011: Normal memory, Outer Read/Write allocate, Outer Write-through non-transient 436 - 1100: Normal memory, Outer Write-back non-transient 437 - 1101: Normal memory, Outer Write allocate, Outer Write-back non-transient 438 - 1110: Normal memory, Outer Read allocate, Outer Write-back non-transient 439 - 1111: Normal memory, Outer Read/Write allocate, Outer Write-back non-transient*/ 440 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_0 (0x1UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Pos) /*!< 0x00000010UL*/ 441 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_1 (0x2UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Pos) /*!< 0x00000020UL*/ 442 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_2 (0x4UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Pos) /*!< 0x00000040UL*/ 443 #define DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_3 (0x8UL << DMA_CH_SRCTRANSCFG_SRCMEMATTRHI_Pos) /*!< 0x00000080UL*/ 444 #define DMA_CH_SRCTRANSCFG_SRCSHAREATTR_Pos (8U) 445 #define DMA_CH_SRCTRANSCFG_SRCSHAREATTR_Msk (0x3UL << DMA_CH_SRCTRANSCFG_SRCSHAREATTR_Pos) /*!< 0x00000300UL*/ 446 #define DMA_CH_SRCTRANSCFG_SRCSHAREATTR DMA_CH_SRCTRANSCFG_SRCSHAREATTR_Msk /*!< SRCSHAREATTR[ 1:0] bits Source Transfer Shareability Attribute. 447 - 00: Non-shareable 448 - 01: Reserved 449 - 10: Outer shareable 450 - 11: Inner shareable */ 451 #define DMA_CH_SRCTRANSCFG_SRCSHAREATTR_0 (0x1UL << DMA_CH_SRCTRANSCFG_SRCSHAREATTR_Pos) /*!< 0x00000100UL*/ 452 #define DMA_CH_SRCTRANSCFG_SRCSHAREATTR_1 (0x2UL << DMA_CH_SRCTRANSCFG_SRCSHAREATTR_Pos) /*!< 0x00000200UL*/ 453 #define DMA_CH_SRCTRANSCFG_SRCNONSECATTR_Pos (10U) 454 #define DMA_CH_SRCTRANSCFG_SRCNONSECATTR_Msk (0x1UL << DMA_CH_SRCTRANSCFG_SRCNONSECATTR_Pos) /*!< 0x00000400UL*/ 455 #define DMA_CH_SRCTRANSCFG_SRCNONSECATTR DMA_CH_SRCTRANSCFG_SRCNONSECATTR_Msk /*!< SRCNONSECATTR bit Source Transfer Non-secure Attribute. 456 - 0: Secure 457 - 1: Non-secure 458 When a channel is Non-secure this bit is tied to 1. */ 459 #define DMA_CH_SRCTRANSCFG_SRCPRIVATTR_Pos (11U) 460 #define DMA_CH_SRCTRANSCFG_SRCPRIVATTR_Msk (0x1UL << DMA_CH_SRCTRANSCFG_SRCPRIVATTR_Pos) /*!< 0x00000800UL*/ 461 #define DMA_CH_SRCTRANSCFG_SRCPRIVATTR DMA_CH_SRCTRANSCFG_SRCPRIVATTR_Msk /*!< SRCPRIVATTR bit Source Transfer Privilege Attribute. 462 - 0: Unprivileged 463 - 1: Privileged 464 When a channel is unprivileged this bit is tied to 0.*/ 465 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Pos (16U) 466 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Msk (0xFUL << DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Pos) /*!< 0x000F0000UL*/ 467 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Msk /*!< SRCMAXBURSTLEN[ 3:0] bits Source Max Burst Length. Hint for the DMA on what is the maximum allowed burst size it can use for read transfers. The maximum number of beats sent by the DMA for a read burst is equal to SRCMAXBURSTLEN + 1. Default value is 16 beats, which allows the DMA to set all burst sizes. Note: Limited by the DATA_BUFF_SIZE so larger settings may not always result in larger bursts.*/ 468 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_0 (0x1UL << DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Pos) /*!< 0x00010000UL*/ 469 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_1 (0x2UL << DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Pos) /*!< 0x00020000UL*/ 470 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_2 (0x4UL << DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Pos) /*!< 0x00040000UL*/ 471 #define DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_3 (0x8UL << DMA_CH_SRCTRANSCFG_SRCMAXBURSTLEN_Pos) /*!< 0x00080000UL*/ 472 /************** Field definitions for CH_DESTRANSCFG register ***************/ 473 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO_Pos (0U) 474 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO_Msk (0xFUL << DMA_CH_DESTRANSCFG_DESMEMATTRLO_Pos) /*!< 0x0000000FUL*/ 475 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO DMA_CH_DESTRANSCFG_DESMEMATTRLO_Msk /*!< DESMEMATTRLO[ 3:0] bits Destination Transfer Memory Attribute field [3:0]. 476 When DESMEMATTRHI is Device type (0000) then this field means: 477 - 0000: Device-nGnRnE 478 - 0100: Device-nGnRE 479 - 1000: Device-nGRE 480 - 1100: Device-GRE 481 - Others: Invalid resulting in UNPREDICTABLE behavior 482 When DESMEMATTRHI is Normal Memory type (other than 0000) then this field means: 483 - 0000: Reserved 484 - 0001: Normal memory, Inner Write allocate, Inner Write-through transient 485 - 0010: Normal memory, Inner Read allocate, Inner Write-through transient 486 - 0011: Normal memory, Inner Read/Write allocate, Inner Write-through transient 487 - 0100: Normal memory, Inner non-cacheable 488 - 0101: Normal memory, Inner Write allocate, Inner Write-back transient 489 - 0110: Normal memory, Inner Read allocate, Inner Write-back transient 490 - 0111: Normal memory, Inner Read/Write allocate, Inner Write-back transient 491 - 1000: Normal memory, Inner Write-through non-transient 492 - 1001: Normal memory, Inner Write allocate, Inner Write-through non-transient 493 - 1010: Normal memory, Inner Read allocate, Inner Write-through non-transient 494 - 1011: Normal memory, Inner Read/Write allocate, Inner Write-through non-transient 495 - 1100: Normal memory, Inner Write-back non-transient 496 - 1101: Normal memory, Inner Write allocate, Inner Write-back non-transient 497 - 1110: Normal memory, Inner Read allocate, Inner Write-back non-transient 498 - 1111: Normal memory, Inner Read/Write allocate, Inner Write-back non-transient*/ 499 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO_0 (0x1UL << DMA_CH_DESTRANSCFG_DESMEMATTRLO_Pos) /*!< 0x00000001UL*/ 500 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO_1 (0x2UL << DMA_CH_DESTRANSCFG_DESMEMATTRLO_Pos) /*!< 0x00000002UL*/ 501 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO_2 (0x4UL << DMA_CH_DESTRANSCFG_DESMEMATTRLO_Pos) /*!< 0x00000004UL*/ 502 #define DMA_CH_DESTRANSCFG_DESMEMATTRLO_3 (0x8UL << DMA_CH_DESTRANSCFG_DESMEMATTRLO_Pos) /*!< 0x00000008UL*/ 503 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI_Pos (4U) 504 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI_Msk (0xFUL << DMA_CH_DESTRANSCFG_DESMEMATTRHI_Pos) /*!< 0x000000F0UL*/ 505 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI DMA_CH_DESTRANSCFG_DESMEMATTRHI_Msk /*!< DESMEMATTRHI[ 3:0] bits Destination Transfer Memory Attribute field [7:4]. 506 - 0000: Device memory 507 - 0001: Normal memory, Outer Write allocate, Outer Write-through transient 508 - 0010: Normal memory, Outer Read allocate, Outer Write-through transient 509 - 0011: Normal memory, Outer Read/Write allocate, Outer Write-through transient 510 - 0100: Normal memory, Outer non-cacheable 511 - 0101: Normal memory, Outer Write allocate, Outer Write-back transient 512 - 0110: Normal memory, Outer Read allocate, Outer Write-back transient 513 - 0111: Normal memory, Outer Read/Write allocate, Outer Write-back transient 514 - 1000: Normal memory, Outer Write-through non-transient 515 - 1001: Normal memory, Outer Write allocate, Outer Write-through non-transient 516 - 1010: Normal memory, Outer Read allocate, Outer Write-through non-transient 517 - 1011: Normal memory, Outer Read/Write allocate, Outer Write-through non-transient 518 - 1100: Normal memory, Outer Write-back non-transient 519 - 1101: Normal memory, Outer Write allocate, Outer Write-back non-transient 520 - 1110: Normal memory, Outer Read allocate, Outer Write-back non-transient 521 - 1111: Normal memory, Outer Read/Write allocate, Outer Write-back non-transient*/ 522 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI_0 (0x1UL << DMA_CH_DESTRANSCFG_DESMEMATTRHI_Pos) /*!< 0x00000010UL*/ 523 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI_1 (0x2UL << DMA_CH_DESTRANSCFG_DESMEMATTRHI_Pos) /*!< 0x00000020UL*/ 524 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI_2 (0x4UL << DMA_CH_DESTRANSCFG_DESMEMATTRHI_Pos) /*!< 0x00000040UL*/ 525 #define DMA_CH_DESTRANSCFG_DESMEMATTRHI_3 (0x8UL << DMA_CH_DESTRANSCFG_DESMEMATTRHI_Pos) /*!< 0x00000080UL*/ 526 #define DMA_CH_DESTRANSCFG_DESSHAREATTR_Pos (8U) 527 #define DMA_CH_DESTRANSCFG_DESSHAREATTR_Msk (0x3UL << DMA_CH_DESTRANSCFG_DESSHAREATTR_Pos) /*!< 0x00000300UL*/ 528 #define DMA_CH_DESTRANSCFG_DESSHAREATTR DMA_CH_DESTRANSCFG_DESSHAREATTR_Msk /*!< DESSHAREATTR[ 1:0] bits Destination Transfer Shareability Attribute. 529 - 00: Non-shareable 530 - 01: Reserved 531 - 10: Outer shareable 532 - 11: Inner shareable*/ 533 #define DMA_CH_DESTRANSCFG_DESSHAREATTR_0 (0x1UL << DMA_CH_DESTRANSCFG_DESSHAREATTR_Pos) /*!< 0x00000100UL*/ 534 #define DMA_CH_DESTRANSCFG_DESSHAREATTR_1 (0x2UL << DMA_CH_DESTRANSCFG_DESSHAREATTR_Pos) /*!< 0x00000200UL*/ 535 #define DMA_CH_DESTRANSCFG_DESNONSECATTR_Pos (10U) 536 #define DMA_CH_DESTRANSCFG_DESNONSECATTR_Msk (0x1UL << DMA_CH_DESTRANSCFG_DESNONSECATTR_Pos) /*!< 0x00000400UL*/ 537 #define DMA_CH_DESTRANSCFG_DESNONSECATTR DMA_CH_DESTRANSCFG_DESNONSECATTR_Msk /*!< DESNONSECATTR bit Destination Transfer Non-secure Attribute. 538 - 0: Secure 539 - 1: Non-secure 540 When a channel is Non-secure this bit is tied to 1. */ 541 #define DMA_CH_DESTRANSCFG_DESPRIVATTR_Pos (11U) 542 #define DMA_CH_DESTRANSCFG_DESPRIVATTR_Msk (0x1UL << DMA_CH_DESTRANSCFG_DESPRIVATTR_Pos) /*!< 0x00000800UL*/ 543 #define DMA_CH_DESTRANSCFG_DESPRIVATTR DMA_CH_DESTRANSCFG_DESPRIVATTR_Msk /*!< DESPRIVATTR bit Destination Transfer Privilege Attribute. 544 - 0: Unprivileged 545 - 1: Privileged 546 When a channel is unprivileged this bit is tied to 0.*/ 547 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Pos (16U) 548 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Msk (0xFUL << DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Pos) /*!< 0x000F0000UL*/ 549 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Msk /*!< DESMAXBURSTLEN[ 3:0] bits Destination Max Burst Length. Hint for the DMA on what is the maximum allowed burst size it can use for write transfers. The maximum number of beats sent by the DMA for a write burst is equal to DESMAXBURSTLEN + 1. Default value is 16 beats, which allows the DMA to set all burst sizes. Note: Limited by the DATA_BUFF_SIZE so larger settings may not always result in larger bursts.*/ 550 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_0 (0x1UL << DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Pos) /*!< 0x00010000UL*/ 551 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_1 (0x2UL << DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Pos) /*!< 0x00020000UL*/ 552 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_2 (0x4UL << DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Pos) /*!< 0x00040000UL*/ 553 #define DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_3 (0x8UL << DMA_CH_DESTRANSCFG_DESMAXBURSTLEN_Pos) /*!< 0x00080000UL*/ 554 /**************** Field definitions for CH_XADDRINC register ****************/ 555 #define DMA_CH_XADDRINC_SRCXADDRINC_Pos (0U) 556 #define DMA_CH_XADDRINC_SRCXADDRINC_Msk (0xFFFFUL << DMA_CH_XADDRINC_SRCXADDRINC_Pos) /*!< 0x0000FFFFUL*/ 557 #define DMA_CH_XADDRINC_SRCXADDRINC DMA_CH_XADDRINC_SRCXADDRINC_Msk /*!< SRCXADDRINC[15:0] bits Source X dimension Address Increment. This value is used as the increment between each TRANSIZE transfer. When a single bit is used then only 0 and 1 can be set. For wider increment registers, two's complement used with a range between -32768 to 32767 when the counter is 16-bits wide. The width of the register is indicated by the INC_WIDTH parameter. SRCADDR_next = SRCADDR + 2^TRANSIZE * SRCXADDRINC*/ 558 #define DMA_CH_XADDRINC_DESXADDRINC_Pos (16U) 559 #define DMA_CH_XADDRINC_DESXADDRINC_Msk (0xFFFFUL << DMA_CH_XADDRINC_DESXADDRINC_Pos) /*!< 0xFFFF0000UL*/ 560 #define DMA_CH_XADDRINC_DESXADDRINC DMA_CH_XADDRINC_DESXADDRINC_Msk /*!< DESXADDRINC[15:0] bits Destination X dimension Address Increment. This value is used as the increment between each TRANSIZE transfer. When a single bit is used then only 0 and 1 can be set. For wider increment registers, two's complement used with a range between -32768 to 32767 when the counter is 16-bits wide. The width of the register is indicated by the INC_WIDTH parameter. DESADDR_next = DESADDR + 2^TRANSIZE * DESXADDRINC*/ 561 /************** Field definitions for CH_YADDRSTRIDE register ***************/ 562 #define DMA_CH_YADDRSTRIDE_SRCYADDRSTRIDE_Pos (0U) 563 #define DMA_CH_YADDRSTRIDE_SRCYADDRSTRIDE_Msk (0xFFFFUL << DMA_CH_YADDRSTRIDE_SRCYADDRSTRIDE_Pos) /*!< 0x0000FFFFUL*/ 564 #define DMA_CH_YADDRSTRIDE_SRCYADDRSTRIDE DMA_CH_YADDRSTRIDE_SRCYADDRSTRIDE_Msk /*!< SRCYADDRSTRIDE[15:0] bits Source Address Stride between lines. Calculated in TRANSIZE aligned steps. This value is used to increment the SRCADDR after completing the transfer of a source line. SRCADDR_next_line_base = SRCADDR_line_base + 2^TRANSIZE * SRCYADDRSTRIDE. Two's complement used with a range between -32768 to 32767. When set to 0 the SRCADDR is not incremented after completing one line. Not present when HAS_2D is 0.*/ 565 #define DMA_CH_YADDRSTRIDE_DESYADDRSTRIDE_Pos (16U) 566 #define DMA_CH_YADDRSTRIDE_DESYADDRSTRIDE_Msk (0xFFFFUL << DMA_CH_YADDRSTRIDE_DESYADDRSTRIDE_Pos) /*!< 0xFFFF0000UL*/ 567 #define DMA_CH_YADDRSTRIDE_DESYADDRSTRIDE DMA_CH_YADDRSTRIDE_DESYADDRSTRIDE_Msk /*!< DESYADDRSTRIDE[15:0] bits Destination Address Stride between lines. Calculated in TRANSIZE aligned steps. This value is used to increment the DESADDR after completing the transfer of a destination line. DESADDR_next_line_base = DESADDR_line_base + 2^TRANSIZE * DESYADDRSTRIDE. Two's complement used with a range between -32768 to 32767. When set to 0 the DESADDR is not incremented after completing one line. Not present when HAS_2D is 0.*/ 568 /**************** Field definitions for CH_FILLVAL register *****************/ 569 #define DMA_CH_FILLVAL_FILLVAL_Pos (0U) 570 #define DMA_CH_FILLVAL_FILLVAL_Msk (0xFFFFFFFFUL << DMA_CH_FILLVAL_FILLVAL_Pos) /*!< 0xFFFFFFFFUL*/ 571 #define DMA_CH_FILLVAL_FILLVAL DMA_CH_FILLVAL_FILLVAL_Msk /*!< FILLVAL[31:0] bits Fill pattern value. When XTYPE or YTYPE is set to fill mode, then this register value is used on the write data bus when the command starts to fill the memory area. The TRANSIZE defines the width of the FILLVAL used for the command. For byte transfers the FILLVAL[7:0] is used, other bits are ignored. For halfword transfers the FILLVAL[15:0] is used, other bits are ignored. For 64-bit and wider transfers the FILLVAL[31:0] pattern is repeated on the full width of the data bus. Not present when HAS_WRAP is 0.*/ 572 /***************** Field definitions for CH_YSIZE register ******************/ 573 #define DMA_CH_YSIZE_SRCYSIZE_Pos (0U) 574 #define DMA_CH_YSIZE_SRCYSIZE_Msk (0xFFFFUL << DMA_CH_YSIZE_SRCYSIZE_Pos) /*!< 0x0000FFFFUL*/ 575 #define DMA_CH_YSIZE_SRCYSIZE DMA_CH_YSIZE_SRCYSIZE_Msk /*!< SRCYSIZE[15:0] bits Source Y dimension or number of lines. Not present when HAS_2D is 0.*/ 576 #define DMA_CH_YSIZE_DESYSIZE_Pos (16U) 577 #define DMA_CH_YSIZE_DESYSIZE_Msk (0xFFFFUL << DMA_CH_YSIZE_DESYSIZE_Pos) /*!< 0xFFFF0000UL*/ 578 #define DMA_CH_YSIZE_DESYSIZE DMA_CH_YSIZE_DESYSIZE_Msk /*!< DESYSIZE[15:0] bits Destination Y dimension or number of lines. Not present when HAS_2D is 0. HAS_WRAP or HAS_STREAM configuration needs to be set to allow writes to this register, otherwise it is read-only.*/ 579 /**************** Field definitions for CH_TMPLTCFG register ****************/ 580 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos (8U) 581 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Msk (0x1FUL << DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos) /*!< 0x00001F00UL*/ 582 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Msk /*!< SRCTMPLTSIZE[ 4:0] bits Source Template Size in number of transfers plus one. 583 - 0: Source template is disabled. 584 - 1 to 31: Bits SRCTMPLT[SRCTMPLTSIZE:0] is used as the source template. Not present when HAS_TMPLT is 0.*/ 585 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_0 (0x1UL << DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos) /*!< 0x00000100UL*/ 586 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_1 (0x2UL << DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos) /*!< 0x00000200UL*/ 587 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_2 (0x4UL << DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos) /*!< 0x00000400UL*/ 588 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_3 (0x8UL << DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos) /*!< 0x00000800UL*/ 589 #define DMA_CH_TMPLTCFG_SRCTMPLTSIZE_4 (0x10UL << DMA_CH_TMPLTCFG_SRCTMPLTSIZE_Pos) /*!< 0x00001000UL*/ 590 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos (16U) 591 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_Msk (0x1FUL << DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos) /*!< 0x001F0000UL*/ 592 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE DMA_CH_TMPLTCFG_DESTMPLTSIZE_Msk /*!< DESTMPLTSIZE[ 4:0] bits Destination Template Size in number of transfers plus one. 593 - 0: Destination template is disabled. 594 - 1 to 31: DESTMPLT[DESTMPLTSIZE:0] is used as the destination template. Not present when HAS_TMPLT is 0.*/ 595 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_0 (0x1UL << DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos) /*!< 0x00010000UL*/ 596 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_1 (0x2UL << DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos) /*!< 0x00020000UL*/ 597 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_2 (0x4UL << DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos) /*!< 0x00040000UL*/ 598 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_3 (0x8UL << DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos) /*!< 0x00080000UL*/ 599 #define DMA_CH_TMPLTCFG_DESTMPLTSIZE_4 (0x10UL << DMA_CH_TMPLTCFG_DESTMPLTSIZE_Pos) /*!< 0x00100000UL*/ 600 /**************** Field definitions for CH_SRCTMPLT register ****************/ 601 #define DMA_CH_SRCTMPLT_SRCTMPLTLSB_Pos (0U) 602 #define DMA_CH_SRCTMPLT_SRCTMPLTLSB_Msk (0x1UL << DMA_CH_SRCTMPLT_SRCTMPLTLSB_Pos) /*!< 0x00000001UL*/ 603 #define DMA_CH_SRCTMPLT_SRCTMPLTLSB DMA_CH_SRCTMPLT_SRCTMPLTLSB_Msk /*!< SRCTMPLTLSB bit Source Packing Template Least Significant Bit. This bit of the template is read only and always set to 1 as template patterns can only start from the base address of the transfer. Not present when HAS_TMPLT is 0.*/ 604 #define DMA_CH_SRCTMPLT_SRCTMPLT_Pos (1U) 605 #define DMA_CH_SRCTMPLT_SRCTMPLT_Msk (0x7FFFFFFFUL << DMA_CH_SRCTMPLT_SRCTMPLT_Pos) /*!< 0xFFFFFFFEUL*/ 606 #define DMA_CH_SRCTMPLT_SRCTMPLT DMA_CH_SRCTMPLT_SRCTMPLT_Msk /*!< SRCTMPLT[30:0] bits Source Packing Template. Bit[0] is read only and always set to 1 as template patterns can only start from the base address of the transfer. Not present when HAS_TMPLT is 0.*/ 607 /**************** Field definitions for CH_DESTMPLT register ****************/ 608 #define DMA_CH_DESTMPLT_DESTMPLTLSB_Pos (0U) 609 #define DMA_CH_DESTMPLT_DESTMPLTLSB_Msk (0x1UL << DMA_CH_DESTMPLT_DESTMPLTLSB_Pos) /*!< 0x00000001UL*/ 610 #define DMA_CH_DESTMPLT_DESTMPLTLSB DMA_CH_DESTMPLT_DESTMPLTLSB_Msk /*!< DESTMPLTLSB bit Destination Packing Template Least Significant Bit. This bit of the template is read only and always set to 1 as template patterns can only start from the base address of the transfer. Not present when HAS_TMPLT is 0.*/ 611 #define DMA_CH_DESTMPLT_DESTMPLT_Pos (1U) 612 #define DMA_CH_DESTMPLT_DESTMPLT_Msk (0x7FFFFFFFUL << DMA_CH_DESTMPLT_DESTMPLT_Pos) /*!< 0xFFFFFFFEUL*/ 613 #define DMA_CH_DESTMPLT_DESTMPLT DMA_CH_DESTMPLT_DESTMPLT_Msk /*!< DESTMPLT[30:0] bits Destination Packing Template. Bit[0] is read only and always set to 1 as template patterns can only start from the base address of the transfer. Not present when HAS_TMPLT is 0.*/ 614 /************** Field definitions for CH_SRCTRIGINCFG register **************/ 615 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos (0U) 616 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Msk (0xFFUL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x000000FFUL*/ 617 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Msk /*!< SRCTRIGINSEL[ 7:0] bits Source Trigger Input Select*/ 618 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_0 (0x1UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000001UL*/ 619 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_1 (0x2UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000002UL*/ 620 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_2 (0x4UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000004UL*/ 621 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_3 (0x8UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000008UL*/ 622 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_4 (0x10UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000010UL*/ 623 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_5 (0x20UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000020UL*/ 624 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_6 (0x40UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000040UL*/ 625 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_7 (0x80UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINSEL_Pos) /*!< 0x00000080UL*/ 626 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_Pos (8U) 627 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_Msk (0x3UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_Pos) /*!< 0x00000300UL*/ 628 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_Msk /*!< SRCTRIGINTYPE[ 1:0] bits Source Trigger Input Type: 629 - 00: Software only Trigger Request. SRCTRIGINSEL is ignored. 630 - 01: Reserved 631 - 10: HW Trigger Request. Only allowed when HAS_TRIGIN is enabled. SRCTRIGINSEL selects between external trigger inputs if HAS_TRIGSEL is enabled. 632 - 11: Internal Trigger Request. Only allowed when HAS_TRIGSEL is enabled and the DMAC has multiple channels, otherwise treated as HW Trigger Request. SRCTRIGINSEL selects between DMA channels. 633 Note: SW triggers are also available when HW or Internal types are selected, but is is not recommended and caution must be taken when the these modes are combined.*/ 634 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_0 (0x1UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_Pos) /*!< 0x00000100UL*/ 635 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_1 (0x2UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINTYPE_Pos) /*!< 0x00000200UL*/ 636 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_Pos (10U) 637 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_Msk (0x3UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_Pos) /*!< 0x00000C00UL*/ 638 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_Msk /*!< SRCTRIGINMODE[ 1:0] bits Source Trigger Input Mode: 639 - 00: Command 640 - 01: Reserved 641 - 10: DMA driven Flow control. Only allowed when HAS_TRIGIN is enabled. 642 - 11: Peripheral driven Flow control. Only allowed when HAS_TRIGIN is enabled. 643 Note: This field is ignored for Internal triggers as they only support Command triggers.*/ 644 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_0 (0x1UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_Pos) /*!< 0x00000400UL*/ 645 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_1 (0x2UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINMODE_Pos) /*!< 0x00000800UL*/ 646 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos (16U) 647 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Msk (0xFFUL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00FF0000UL*/ 648 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Msk /*!< SRCTRIGINBLKSIZE[ 7:0] bits Source Trigger Input Default Transfer Size. Defined transfer size per trigger + 1.*/ 649 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_0 (0x1UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00010000UL*/ 650 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_1 (0x2UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00020000UL*/ 651 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_2 (0x4UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00040000UL*/ 652 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_3 (0x8UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00080000UL*/ 653 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_4 (0x10UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00100000UL*/ 654 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_5 (0x20UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00200000UL*/ 655 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_6 (0x40UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00400000UL*/ 656 #define DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_7 (0x80UL << DMA_CH_SRCTRIGINCFG_SRCTRIGINBLKSIZE_Pos) /*!< 0x00800000UL*/ 657 /************** Field definitions for CH_DESTRIGINCFG register **************/ 658 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos (0U) 659 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Msk (0xFFUL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x000000FFUL*/ 660 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Msk /*!< DESTRIGINSEL[ 7:0] bits Destination Trigger Input Select*/ 661 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_0 (0x1UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000001UL*/ 662 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_1 (0x2UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000002UL*/ 663 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_2 (0x4UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000004UL*/ 664 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_3 (0x8UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000008UL*/ 665 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_4 (0x10UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000010UL*/ 666 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_5 (0x20UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000020UL*/ 667 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_6 (0x40UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000040UL*/ 668 #define DMA_CH_DESTRIGINCFG_DESTRIGINSEL_7 (0x80UL << DMA_CH_DESTRIGINCFG_DESTRIGINSEL_Pos) /*!< 0x00000080UL*/ 669 #define DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_Pos (8U) 670 #define DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_Msk (0x3UL << DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_Pos) /*!< 0x00000300UL*/ 671 #define DMA_CH_DESTRIGINCFG_DESTRIGINTYPE DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_Msk /*!< DESTRIGINTYPE[ 1:0] bits Destination Trigger Input Type: 672 - 00: Software only Trigger Request. DESTRIGINSEL is ignored. 673 - 01: Reserved 674 - 10: HW Trigger Request. Only allowed when HAS_TRIGIN is enabled. DESTRIGINSEL selects between external trigger inputs if HAS_TRIGSEL is enabled. 675 - 11: Internal Trigger Request. Only allowed when HAS_TRIGSEL is enabled and the DMAC has multiple channels, otherwise treated as HW Trigger Request. DESTRIGINSEL selects between DMA channels. 676 Note: SW triggers are also available when HW or Internal types are selected, but is is not recommended and caution must be taken when the these modes are combined.*/ 677 #define DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_0 (0x1UL << DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_Pos) /*!< 0x00000100UL*/ 678 #define DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_1 (0x2UL << DMA_CH_DESTRIGINCFG_DESTRIGINTYPE_Pos) /*!< 0x00000200UL*/ 679 #define DMA_CH_DESTRIGINCFG_DESTRIGINMODE_Pos (10U) 680 #define DMA_CH_DESTRIGINCFG_DESTRIGINMODE_Msk (0x3UL << DMA_CH_DESTRIGINCFG_DESTRIGINMODE_Pos) /*!< 0x00000C00UL*/ 681 #define DMA_CH_DESTRIGINCFG_DESTRIGINMODE DMA_CH_DESTRIGINCFG_DESTRIGINMODE_Msk /*!< DESTRIGINMODE[ 1:0] bits Destination Trigger Input Mode: 682 - 00: Command 683 - 01: Reserved 684 - 10: DMA driven Flow control. Only allowed when HAS_TRIGIN is enabled. 685 - 11: Peripheral driven Flow control. Only allowed when HAS_TRIGIN is enabled. 686 Note: This field is ignored for Internal triggers as they only support Command triggers.*/ 687 #define DMA_CH_DESTRIGINCFG_DESTRIGINMODE_0 (0x1UL << DMA_CH_DESTRIGINCFG_DESTRIGINMODE_Pos) /*!< 0x00000400UL*/ 688 #define DMA_CH_DESTRIGINCFG_DESTRIGINMODE_1 (0x2UL << DMA_CH_DESTRIGINCFG_DESTRIGINMODE_Pos) /*!< 0x00000800UL*/ 689 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos (16U) 690 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Msk (0xFFUL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00FF0000UL*/ 691 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Msk /*!< DESTRIGINBLKSIZE[ 7:0] bits Destination Trigger Input Default Transfer Size. Defined transfer size per trigger + 1.*/ 692 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_0 (0x1UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00010000UL*/ 693 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_1 (0x2UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00020000UL*/ 694 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_2 (0x4UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00040000UL*/ 695 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_3 (0x8UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00080000UL*/ 696 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_4 (0x10UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00100000UL*/ 697 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_5 (0x20UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00200000UL*/ 698 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_6 (0x40UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00400000UL*/ 699 #define DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_7 (0x80UL << DMA_CH_DESTRIGINCFG_DESTRIGINBLKSIZE_Pos) /*!< 0x00800000UL*/ 700 /*************** Field definitions for CH_TRIGOUTCFG register ***************/ 701 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos (0U) 702 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Msk (0x3FUL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x0000003FUL*/ 703 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Msk /*!< TRIGOUTSEL[ 5:0] bits Trigger Output Select*/ 704 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_0 (0x1UL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x00000001UL*/ 705 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_1 (0x2UL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x00000002UL*/ 706 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_2 (0x4UL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x00000004UL*/ 707 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_3 (0x8UL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x00000008UL*/ 708 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_4 (0x10UL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x00000010UL*/ 709 #define DMA_CH_TRIGOUTCFG_TRIGOUTSEL_5 (0x20UL << DMA_CH_TRIGOUTCFG_TRIGOUTSEL_Pos) /*!< 0x00000020UL*/ 710 #define DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_Pos (8U) 711 #define DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_Msk (0x3UL << DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_Pos) /*!< 0x00000300UL*/ 712 #define DMA_CH_TRIGOUTCFG_TRIGOUTTYPE DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_Msk /*!< TRIGOUTTYPE[ 1:0] bits Trigger Output Type 713 - 00: Software only Trigger Acknowledgement. 714 - 01: Reserved 715 - 10: HW Trigger Acknowledgement. Only allowed when HAS_TRIGOUT is enabled. 716 - 11: Internal Trigger Acknowledgement. Only allowed when HAS_TRIGSEL is enabled and the DMAC has multiple channels, otherwise treated as HW Trigger Acknowledgement.*/ 717 #define DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_0 (0x1UL << DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_Pos) /*!< 0x00000100UL*/ 718 #define DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_1 (0x2UL << DMA_CH_TRIGOUTCFG_TRIGOUTTYPE_Pos) /*!< 0x00000200UL*/ 719 /***************** Field definitions for CH_GPOEN0 register *****************/ 720 #define DMA_CH_GPOEN0_GPOEN0_Pos (0U) 721 #define DMA_CH_GPOEN0_GPOEN0_Msk (0xFFFFFFFFUL << DMA_CH_GPOEN0_GPOEN0_Pos) /*!< 0xFFFFFFFFUL*/ 722 #define DMA_CH_GPOEN0_GPOEN0 DMA_CH_GPOEN0_GPOEN0_Msk /*!< GPOEN0[31:0] bits Channel General Purpose Output (GPO) bit 0 to 31 enable mask. If bit n is '1', then GPO[n] is selected for driving by GPOVAL0[n]. If bit 'n' is '0', then GPO[n] keeps its previous value. Only [GPO_WIDTH-1:0] are implemented. All unimplemented bits are RAZWI.*/ 723 /**************** Field definitions for CH_GPOVAL0 register *****************/ 724 #define DMA_CH_GPOVAL0_GPOVAL0_Pos (0U) 725 #define DMA_CH_GPOVAL0_GPOVAL0_Msk (0xFFFFFFFFUL << DMA_CH_GPOVAL0_GPOVAL0_Pos) /*!< 0xFFFFFFFFUL*/ 726 #define DMA_CH_GPOVAL0_GPOVAL0 DMA_CH_GPOVAL0_GPOVAL0_Msk /*!< GPOVAL0[31:0] bits General Purpose Output Value GPO[31:0]. Write to set output value. The actual value on the GPO port will become active when the command is enabled. Read returns the register value which might be different from the actual GPO port status. Only [GPO_WIDTH-1:0] are implemented. All unimplemented bits are RAZWI.*/ 727 /************** Field definitions for CH_STREAMINTCFG register **************/ 728 #define DMA_CH_STREAMINTCFG_STREAMTYPE_Pos (9U) 729 #define DMA_CH_STREAMINTCFG_STREAMTYPE_Msk (0x3UL << DMA_CH_STREAMINTCFG_STREAMTYPE_Pos) /*!< 0x00000600UL*/ 730 #define DMA_CH_STREAMINTCFG_STREAMTYPE DMA_CH_STREAMINTCFG_STREAMTYPE_Msk /*!< STREAMTYPE[ 1:0] bits Stream Interface operation Type 731 - 00: Stream in and out used. 732 - 01: Stream out only 733 - 10: Stream in only 734 - 11: Reserved*/ 735 #define DMA_CH_STREAMINTCFG_STREAMTYPE_0 (0x1UL << DMA_CH_STREAMINTCFG_STREAMTYPE_Pos) /*!< 0x00000200UL*/ 736 #define DMA_CH_STREAMINTCFG_STREAMTYPE_1 (0x2UL << DMA_CH_STREAMINTCFG_STREAMTYPE_Pos) /*!< 0x00000400UL*/ 737 /**************** Field definitions for CH_LINKATTR register ****************/ 738 #define DMA_CH_LINKATTR_LINKMEMATTRLO_Pos (0U) 739 #define DMA_CH_LINKATTR_LINKMEMATTRLO_Msk (0xFUL << DMA_CH_LINKATTR_LINKMEMATTRLO_Pos) /*!< 0x0000000FUL*/ 740 #define DMA_CH_LINKATTR_LINKMEMATTRLO DMA_CH_LINKATTR_LINKMEMATTRLO_Msk /*!< LINKMEMATTRLO[ 3:0] bits Link Address Read Transfer Memory Attribute field [3:0]. 741 When LINKMEMATTRHI is Device type (0000) then this field means: 742 - 0000: Device-nGnRnE 743 - 0100: Device-nGnRE 744 - 1000: Device-nGRE 745 - 1100: Device-GRE 746 - Others: Invalid resulting in UNPREDICTABLE behavior 747 When LINKMEMATTRHI is Normal memory type (other than 0000) then this field means: 748 - 0000: Reserved 749 - 0001: Normal memory, Inner Write allocate, Inner Write-through transient 750 - 0010: Normal memory, Inner Read allocate, Inner Write-through transient 751 - 0011: Normal memory, Inner Read/Write allocate, Inner Write-through transient 752 - 0100: Normal memory, Inner non-cacheable 753 - 0101: Normal memory, Inner Write allocate, Inner Write-back transient 754 - 0110: Normal memory, Inner Read allocate, Inner Write-back transient 755 - 0111: Normal memory, Inner Read/Write allocate, Inner Write-back transient 756 - 1000: Normal memory, Inner Write-through non-transient 757 - 1001: Normal memory, Inner Write allocate, Inner Write-through non-transient 758 - 1010: Normal memory, Inner Read allocate, Inner Write-through non-transient 759 - 1011: Normal memory, Inner Read/Write allocate, Inner Write-through non-transient 760 - 1100: Normal memory, Inner Write-back non-transient 761 - 1101: Normal memory, Inner Write allocate, Inner Write-back non-transient 762 - 1110: Normal memory, Inner Read allocate, Inner Write-back non-transient 763 - 1111: Normal memory, Inner Read/Write allocate, Inner Write-back non-transient*/ 764 #define DMA_CH_LINKATTR_LINKMEMATTRLO_0 (0x1UL << DMA_CH_LINKATTR_LINKMEMATTRLO_Pos) /*!< 0x00000001UL*/ 765 #define DMA_CH_LINKATTR_LINKMEMATTRLO_1 (0x2UL << DMA_CH_LINKATTR_LINKMEMATTRLO_Pos) /*!< 0x00000002UL*/ 766 #define DMA_CH_LINKATTR_LINKMEMATTRLO_2 (0x4UL << DMA_CH_LINKATTR_LINKMEMATTRLO_Pos) /*!< 0x00000004UL*/ 767 #define DMA_CH_LINKATTR_LINKMEMATTRLO_3 (0x8UL << DMA_CH_LINKATTR_LINKMEMATTRLO_Pos) /*!< 0x00000008UL*/ 768 #define DMA_CH_LINKATTR_LINKMEMATTRHI_Pos (4U) 769 #define DMA_CH_LINKATTR_LINKMEMATTRHI_Msk (0xFUL << DMA_CH_LINKATTR_LINKMEMATTRHI_Pos) /*!< 0x000000F0UL*/ 770 #define DMA_CH_LINKATTR_LINKMEMATTRHI DMA_CH_LINKATTR_LINKMEMATTRHI_Msk /*!< LINKMEMATTRHI[ 3:0] bits Link Address Read Transfer Memory Attribute field [7:4]. 771 - 0000: Device memory 772 - 0001: Normal memory, Outer Write allocate, Outer Write-through transient 773 - 0010: Normal memory, Outer Read allocate, Outer Write-through transient 774 - 0011: Normal memory, Outer Read/Write allocate, Outer Write-through transient 775 - 0100: Normal memory, Outer non-cacheable 776 - 0101: Normal memory, Outer Write allocate, Outer Write-back transient 777 - 0110: Normal memory, Outer Read allocate, Outer Write-back transient 778 - 0111: Normal memory, Outer Read/Write allocate, Outer Write-back transient 779 - 1000: Normal memory, Outer Write-through non-transient 780 - 1001: Normal memory, Outer Write allocate, Outer Write-through non-transient 781 - 1010: Normal memory, Outer Read allocate, Outer Write-through non-transient 782 - 1011: Normal memory, Outer Read/Write allocate, Outer Write-through non-transient 783 - 1100: Normal memory, Outer Write-back non-transient 784 - 1101: Normal memory, Outer Write allocate, Outer Write-back non-transient 785 - 1110: Normal memory, Outer Read allocate, Outer Write-back non-transient 786 - 1111: Normal memory, Outer Read/Write allocate, Outer Write-back non-transient*/ 787 #define DMA_CH_LINKATTR_LINKMEMATTRHI_0 (0x1UL << DMA_CH_LINKATTR_LINKMEMATTRHI_Pos) /*!< 0x00000010UL*/ 788 #define DMA_CH_LINKATTR_LINKMEMATTRHI_1 (0x2UL << DMA_CH_LINKATTR_LINKMEMATTRHI_Pos) /*!< 0x00000020UL*/ 789 #define DMA_CH_LINKATTR_LINKMEMATTRHI_2 (0x4UL << DMA_CH_LINKATTR_LINKMEMATTRHI_Pos) /*!< 0x00000040UL*/ 790 #define DMA_CH_LINKATTR_LINKMEMATTRHI_3 (0x8UL << DMA_CH_LINKATTR_LINKMEMATTRHI_Pos) /*!< 0x00000080UL*/ 791 #define DMA_CH_LINKATTR_LINKSHAREATTR_Pos (8U) 792 #define DMA_CH_LINKATTR_LINKSHAREATTR_Msk (0x3UL << DMA_CH_LINKATTR_LINKSHAREATTR_Pos) /*!< 0x00000300UL*/ 793 #define DMA_CH_LINKATTR_LINKSHAREATTR DMA_CH_LINKATTR_LINKSHAREATTR_Msk /*!< LINKSHAREATTR[ 1:0] bits Link Address Transfer Shareability Attribute. 794 - 00: Non-shareable 795 - 01: Reserved 796 - 10: Outer shareable 797 - 11: Inner shareable */ 798 #define DMA_CH_LINKATTR_LINKSHAREATTR_0 (0x1UL << DMA_CH_LINKATTR_LINKSHAREATTR_Pos) /*!< 0x00000100UL*/ 799 #define DMA_CH_LINKATTR_LINKSHAREATTR_1 (0x2UL << DMA_CH_LINKATTR_LINKSHAREATTR_Pos) /*!< 0x00000200UL*/ 800 /**************** Field definitions for CH_AUTOCFG register *****************/ 801 #define DMA_CH_AUTOCFG_CMDRESTARTCNT_Pos (0U) 802 #define DMA_CH_AUTOCFG_CMDRESTARTCNT_Msk (0xFFFFUL << DMA_CH_AUTOCFG_CMDRESTARTCNT_Pos) /*!< 0x0000FFFFUL*/ 803 #define DMA_CH_AUTOCFG_CMDRESTARTCNT DMA_CH_AUTOCFG_CMDRESTARTCNT_Msk /*!< CMDRESTARTCNT[15:0] bits Automatic Command Restart Counter. Defines the number of times automatic restarting will occur at end of DMA command. Auto restarting will occur after the command is completed, including output triggering if enabled and autoreloading the registers, but it will only perfrom a link to the next command when CMDRESTARTCNT == 0. When CMDRESTARTCNT and CMDRESTARTINF are both set to '0', autorestart is disabled.*/ 804 #define DMA_CH_AUTOCFG_CMDRESTARTINFEN_Pos (16U) 805 #define DMA_CH_AUTOCFG_CMDRESTARTINFEN_Msk (0x1UL << DMA_CH_AUTOCFG_CMDRESTARTINFEN_Pos) /*!< 0x00010000UL*/ 806 #define DMA_CH_AUTOCFG_CMDRESTARTINFEN DMA_CH_AUTOCFG_CMDRESTARTINFEN_Msk /*!< CMDRESTARTINFEN bit Enable Infinite Automatic Command Restart. When set, CMDRESTARTCNT is ignored and the command is always restarted after it is completed, including output triggering if enabled and autoreloading the registers but it will not perform a link to the next command. This means that the infinite loop of automatic restarts can only be broken by DISABLECMD or STOPCMD. When CMDRESTARTINFEN is set to '0', then the autorestarting of a command depends on CMDRESTARTCNT and when that counter is set to 0 the autorestarting is finished. In this case the next linked command is read or the command is complete.*/ 807 /**************** Field definitions for CH_LINKADDR register ****************/ 808 #define DMA_CH_LINKADDR_LINKADDREN_Pos (0U) 809 #define DMA_CH_LINKADDR_LINKADDREN_Msk (0x1UL << DMA_CH_LINKADDR_LINKADDREN_Pos) /*!< 0x00000001UL*/ 810 #define DMA_CH_LINKADDR_LINKADDREN DMA_CH_LINKADDR_LINKADDREN_Msk /*!< LINKADDREN bit Enable Link Address. When set to '1', the DMAC fetches the next command defined by LINKADDR. When set to '0' the DMAC will return to idle at the end of the current command. 811 NOTE: the linked command fetched by the DMAC needs to clear this field to mark the end of the command chain. Otherwise it may result in an infinite loop of the same command. 812 */ 813 #define DMA_CH_LINKADDR_LINKADDR_Pos (2U) 814 #define DMA_CH_LINKADDR_LINKADDR_Msk (0x3FFFFFFFUL << DMA_CH_LINKADDR_LINKADDR_Pos) /*!< 0xFFFFFFFCUL*/ 815 #define DMA_CH_LINKADDR_LINKADDR DMA_CH_LINKADDR_LINKADDR_Msk /*!< LINKADDR[29:0] bits Link Address Pointer [31:2]. The DMAC fetches the next command from this address if LINKADDREN is set. 816 NOTE: Commands are fetched with the security and privilege attribute of the channel and cannot be adjusted for the command link reads. 817 */ 818 /*************** Field definitions for CH_LINKADDRHI register ***************/ 819 #define DMA_CH_LINKADDRHI_LINKADDRHI_Pos (0U) 820 #define DMA_CH_LINKADDRHI_LINKADDRHI_Msk (0xFFFFFFFFUL << DMA_CH_LINKADDRHI_LINKADDRHI_Pos) /*!< 0xFFFFFFFFUL*/ 821 #define DMA_CH_LINKADDRHI_LINKADDRHI DMA_CH_LINKADDRHI_LINKADDRHI_Msk /*!< LINKADDRHI[31:0] bits Link Address Pointer [63:32]. Allows 64-bit addressing but the system might need less address bits. Limited by ADDR_WIDTH and the not implemented bits remain reserved.*/ 822 /**************** Field definitions for CH_GPOREAD0 register ****************/ 823 #define DMA_CH_GPOREAD0_GPOREAD0_Pos (0U) 824 #define DMA_CH_GPOREAD0_GPOREAD0_Msk (0xFFFFFFFFUL << DMA_CH_GPOREAD0_GPOREAD0_Pos) /*!< 0xFFFFFFFFUL*/ 825 #define DMA_CH_GPOREAD0_GPOREAD0 DMA_CH_GPOREAD0_GPOREAD0_Msk /*!< GPOREAD0[31:0] bits General Purpose Output Read Value for GPO[31:0]. Read returns the actual value of the GPO ports. Only [GPO_WIDTH-1:0] are implemented. All unimplemented bits are set to 0.*/ 826 /*************** Field definitions for CH_WRKREGPTR register ****************/ 827 #define DMA_CH_WRKREGPTR_WRKREGPTR_Pos (0U) 828 #define DMA_CH_WRKREGPTR_WRKREGPTR_Msk (0xFUL << DMA_CH_WRKREGPTR_WRKREGPTR_Pos) /*!< 0x0000000FUL*/ 829 #define DMA_CH_WRKREGPTR_WRKREGPTR DMA_CH_WRKREGPTR_WRKREGPTR_Msk /*!< WRKREGPTR[ 3:0] bits Internal Working Register Pointer. These pointer refers to the following: 830 - 0: Reserved 831 - 1: SRCADDR_INITIAL 832 - 2: SRCADDRHI_INITIAL 833 - 3: DESADDR_INITIAL 834 - 4: DESADDRHI_INITIAL 835 - 5: SRCXSIZEHI_INITIAL, SRCXSIZE_INITIAL 836 - 6: DESXSIZEHI_INITIAL, DESXSIZE_INITIAL 837 - 7: SRCADDR_LINEINITIAL 838 - 8: SRCADDRHI_LINEINITIAL 839 - 9: DESADDR_LINEINITIAL 840 - 10: DESADDRHI_LINEINITIAL 841 - 11: SRCYSIZE_INITIAL (HAS_2D only) 842 - 12: DESYSIZE_INITIAL (HAS_2D only) 843 - Others: Reserved. 844 NOTE: When the selected register is not supported by the DMA then it is read as 0 in the CH_WRKREGVAL register. For 1D modes the INITIAL and LINEINITIAL registers contain the same values.*/ 845 #define DMA_CH_WRKREGPTR_WRKREGPTR_0 (0x1UL << DMA_CH_WRKREGPTR_WRKREGPTR_Pos) /*!< 0x00000001UL*/ 846 #define DMA_CH_WRKREGPTR_WRKREGPTR_1 (0x2UL << DMA_CH_WRKREGPTR_WRKREGPTR_Pos) /*!< 0x00000002UL*/ 847 #define DMA_CH_WRKREGPTR_WRKREGPTR_2 (0x4UL << DMA_CH_WRKREGPTR_WRKREGPTR_Pos) /*!< 0x00000004UL*/ 848 #define DMA_CH_WRKREGPTR_WRKREGPTR_3 (0x8UL << DMA_CH_WRKREGPTR_WRKREGPTR_Pos) /*!< 0x00000008UL*/ 849 /*************** Field definitions for CH_WRKREGVAL register ****************/ 850 #define DMA_CH_WRKREGVAL_WRKREGVAL_Pos (0U) 851 #define DMA_CH_WRKREGVAL_WRKREGVAL_Msk (0xFFFFFFFFUL << DMA_CH_WRKREGVAL_WRKREGVAL_Pos) /*!< 0xFFFFFFFFUL*/ 852 #define DMA_CH_WRKREGVAL_WRKREGVAL DMA_CH_WRKREGVAL_WRKREGVAL_Msk /*!< WRKREGVAL[31:0] bits Internal Working Register Values. WRKREGPTR points to the register that is visible here. The values are only guaranteed to be stable for the current command when STAT_PAUSED is asserted, otherwise they depend on the current status of the channel which makes them UNPREDICTABLE.*/ 853 /**************** Field definitions for CH_ERRINFO register *****************/ 854 #define DMA_CH_ERRINFO_BUSERR_Pos (0U) 855 #define DMA_CH_ERRINFO_BUSERR_Msk (0x1UL << DMA_CH_ERRINFO_BUSERR_Pos) /*!< 0x00000001UL*/ 856 #define DMA_CH_ERRINFO_BUSERR DMA_CH_ERRINFO_BUSERR_Msk /*!< BUSERR bit Bus Error Flag. Set when the DMA encounters a bus error during data or command read transfers.*/ 857 #define DMA_CH_ERRINFO_CFGERR_Pos (1U) 858 #define DMA_CH_ERRINFO_CFGERR_Msk (0x1UL << DMA_CH_ERRINFO_CFGERR_Pos) /*!< 0x00000002UL*/ 859 #define DMA_CH_ERRINFO_CFGERR DMA_CH_ERRINFO_CFGERR_Msk /*!< CFGERR bit Configuration Error Flag. Set when the DMA command is enabled or a linked command is read but it is configured in a mode that is not supported by the implementation.*/ 860 #define DMA_CH_ERRINFO_SRCTRIGINSELERR_Pos (2U) 861 #define DMA_CH_ERRINFO_SRCTRIGINSELERR_Msk (0x1UL << DMA_CH_ERRINFO_SRCTRIGINSELERR_Pos) /*!< 0x00000004UL*/ 862 #define DMA_CH_ERRINFO_SRCTRIGINSELERR DMA_CH_ERRINFO_SRCTRIGINSELERR_Msk /*!< SRCTRIGINSELERR bit Source Trigger Input Selection Error Flag. Set when the command selects a source trigger input that is not allowed for this channel.*/ 863 #define DMA_CH_ERRINFO_DESTRIGINSELERR_Pos (3U) 864 #define DMA_CH_ERRINFO_DESTRIGINSELERR_Msk (0x1UL << DMA_CH_ERRINFO_DESTRIGINSELERR_Pos) /*!< 0x00000008UL*/ 865 #define DMA_CH_ERRINFO_DESTRIGINSELERR DMA_CH_ERRINFO_DESTRIGINSELERR_Msk /*!< DESTRIGINSELERR bit Destination Trigger Input Selection Error Flag. Set when the command selects a destination trigger input that is not allowed for this channel.*/ 866 #define DMA_CH_ERRINFO_TRIGOUTSELERR_Pos (4U) 867 #define DMA_CH_ERRINFO_TRIGOUTSELERR_Msk (0x1UL << DMA_CH_ERRINFO_TRIGOUTSELERR_Pos) /*!< 0x00000010UL*/ 868 #define DMA_CH_ERRINFO_TRIGOUTSELERR DMA_CH_ERRINFO_TRIGOUTSELERR_Msk /*!< TRIGOUTSELERR bit Trigger Output Selection Error Flag. Set when the command selects a trigger output that is not allowed for this channel.*/ 869 #define DMA_CH_ERRINFO_STREAMERR_Pos (7U) 870 #define DMA_CH_ERRINFO_STREAMERR_Msk (0x1UL << DMA_CH_ERRINFO_STREAMERR_Pos) /*!< 0x00000080UL*/ 871 #define DMA_CH_ERRINFO_STREAMERR DMA_CH_ERRINFO_STREAMERR_Msk /*!< STREAMERR bit Stream Interface Error Flag. Set when the stream interface encountered an error.*/ 872 #define DMA_CH_ERRINFO_ERRINFO_Pos (16U) 873 #define DMA_CH_ERRINFO_ERRINFO_Msk (0xFFFFUL << DMA_CH_ERRINFO_ERRINFO_Pos) /*!< 0xFFFF0000UL*/ 874 #define DMA_CH_ERRINFO_ERRINFO DMA_CH_ERRINFO_ERRINFO_Msk /*!< ERRINFO[15:0] bits Error information Register. Additional information for the error that is encountered by the DMA. The meaning of the bits are detailed in the Error Handling section.*/ 875 /****************** Field definitions for CH_IIDR register ******************/ 876 #define DMA_CH_IIDR_IMPLEMENTER_Pos (0U) 877 #define DMA_CH_IIDR_IMPLEMENTER_Msk (0xFFFUL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000FFFUL*/ 878 #define DMA_CH_IIDR_IMPLEMENTER DMA_CH_IIDR_IMPLEMENTER_Msk /*!< IMPLEMENTER[11:0] bits Contains the JEP106 code of the company that implemented the IP: 879 - [11:8]: JEP106 continuation code of implementer. 880 - [7]: Always 0. 881 - [6:0]: JEP106 identity code of implementer. 882 For Arm this field reads as 0x43B.*/ 883 #define DMA_CH_IIDR_IMPLEMENTER_0 (0x1UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000001UL*/ 884 #define DMA_CH_IIDR_IMPLEMENTER_1 (0x2UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000002UL*/ 885 #define DMA_CH_IIDR_IMPLEMENTER_2 (0x4UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000004UL*/ 886 #define DMA_CH_IIDR_IMPLEMENTER_3 (0x8UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000008UL*/ 887 #define DMA_CH_IIDR_IMPLEMENTER_4 (0x10UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000010UL*/ 888 #define DMA_CH_IIDR_IMPLEMENTER_5 (0x20UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000020UL*/ 889 #define DMA_CH_IIDR_IMPLEMENTER_6 (0x40UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000040UL*/ 890 #define DMA_CH_IIDR_IMPLEMENTER_7 (0x80UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000080UL*/ 891 #define DMA_CH_IIDR_IMPLEMENTER_8 (0x100UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000100UL*/ 892 #define DMA_CH_IIDR_IMPLEMENTER_9 (0x200UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000200UL*/ 893 #define DMA_CH_IIDR_IMPLEMENTER_10 (0x400UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000400UL*/ 894 #define DMA_CH_IIDR_IMPLEMENTER_11 (0x800UL << DMA_CH_IIDR_IMPLEMENTER_Pos) /*!< 0x00000800UL*/ 895 #define DMA_CH_IIDR_REVISION_Pos (12U) 896 #define DMA_CH_IIDR_REVISION_Msk (0xFUL << DMA_CH_IIDR_REVISION_Pos) /*!< 0x0000F000UL*/ 897 #define DMA_CH_IIDR_REVISION DMA_CH_IIDR_REVISION_Msk /*!< REVISION[ 3:0] bits Indicates the minor revision of the product rxpy identifier*/ 898 #define DMA_CH_IIDR_REVISION_0 (0x1UL << DMA_CH_IIDR_REVISION_Pos) /*!< 0x00001000UL*/ 899 #define DMA_CH_IIDR_REVISION_1 (0x2UL << DMA_CH_IIDR_REVISION_Pos) /*!< 0x00002000UL*/ 900 #define DMA_CH_IIDR_REVISION_2 (0x4UL << DMA_CH_IIDR_REVISION_Pos) /*!< 0x00004000UL*/ 901 #define DMA_CH_IIDR_REVISION_3 (0x8UL << DMA_CH_IIDR_REVISION_Pos) /*!< 0x00008000UL*/ 902 #define DMA_CH_IIDR_VARIANT_Pos (16U) 903 #define DMA_CH_IIDR_VARIANT_Msk (0xFUL << DMA_CH_IIDR_VARIANT_Pos) /*!< 0x000F0000UL*/ 904 #define DMA_CH_IIDR_VARIANT DMA_CH_IIDR_VARIANT_Msk /*!< VARIANT[ 3:0] bits Indicates the major revision, or variant, of the product rxpy identifier*/ 905 #define DMA_CH_IIDR_VARIANT_0 (0x1UL << DMA_CH_IIDR_VARIANT_Pos) /*!< 0x00010000UL*/ 906 #define DMA_CH_IIDR_VARIANT_1 (0x2UL << DMA_CH_IIDR_VARIANT_Pos) /*!< 0x00020000UL*/ 907 #define DMA_CH_IIDR_VARIANT_2 (0x4UL << DMA_CH_IIDR_VARIANT_Pos) /*!< 0x00040000UL*/ 908 #define DMA_CH_IIDR_VARIANT_3 (0x8UL << DMA_CH_IIDR_VARIANT_Pos) /*!< 0x00080000UL*/ 909 #define DMA_CH_IIDR_PRODUCTID_Pos (20U) 910 #define DMA_CH_IIDR_PRODUCTID_Msk (0xFFFUL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0xFFF00000UL*/ 911 #define DMA_CH_IIDR_PRODUCTID DMA_CH_IIDR_PRODUCTID_Msk /*!< PRODUCTID[11:0] bits Indicates the product ID*/ 912 #define DMA_CH_IIDR_PRODUCTID_0 (0x1UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x00100000UL*/ 913 #define DMA_CH_IIDR_PRODUCTID_1 (0x2UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x00200000UL*/ 914 #define DMA_CH_IIDR_PRODUCTID_2 (0x4UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x00400000UL*/ 915 #define DMA_CH_IIDR_PRODUCTID_3 (0x8UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x00800000UL*/ 916 #define DMA_CH_IIDR_PRODUCTID_4 (0x10UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x01000000UL*/ 917 #define DMA_CH_IIDR_PRODUCTID_5 (0x20UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x02000000UL*/ 918 #define DMA_CH_IIDR_PRODUCTID_6 (0x40UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x04000000UL*/ 919 #define DMA_CH_IIDR_PRODUCTID_7 (0x80UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x08000000UL*/ 920 #define DMA_CH_IIDR_PRODUCTID_8 (0x100UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x10000000UL*/ 921 #define DMA_CH_IIDR_PRODUCTID_9 (0x200UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x20000000UL*/ 922 #define DMA_CH_IIDR_PRODUCTID_10 (0x400UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x40000000UL*/ 923 #define DMA_CH_IIDR_PRODUCTID_11 (0x800UL << DMA_CH_IIDR_PRODUCTID_Pos) /*!< 0x80000000UL*/ 924 /****************** Field definitions for CH_AIDR register ******************/ 925 #define DMA_CH_AIDR_ARCH_MINOR_REV_Pos (0U) 926 #define DMA_CH_AIDR_ARCH_MINOR_REV_Msk (0xFUL << DMA_CH_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x0000000FUL*/ 927 #define DMA_CH_AIDR_ARCH_MINOR_REV DMA_CH_AIDR_ARCH_MINOR_REV_Msk /*!< ARCH_MINOR_REV[ 3:0] bits Architecture Minor Revision.*/ 928 #define DMA_CH_AIDR_ARCH_MINOR_REV_0 (0x1UL << DMA_CH_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000001UL*/ 929 #define DMA_CH_AIDR_ARCH_MINOR_REV_1 (0x2UL << DMA_CH_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000002UL*/ 930 #define DMA_CH_AIDR_ARCH_MINOR_REV_2 (0x4UL << DMA_CH_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000004UL*/ 931 #define DMA_CH_AIDR_ARCH_MINOR_REV_3 (0x8UL << DMA_CH_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000008UL*/ 932 #define DMA_CH_AIDR_ARCH_MAJOR_REV_Pos (4U) 933 #define DMA_CH_AIDR_ARCH_MAJOR_REV_Msk (0xFUL << DMA_CH_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x000000F0UL*/ 934 #define DMA_CH_AIDR_ARCH_MAJOR_REV DMA_CH_AIDR_ARCH_MAJOR_REV_Msk /*!< ARCH_MAJOR_REV[ 3:0] bits Architecture Major Revision.*/ 935 #define DMA_CH_AIDR_ARCH_MAJOR_REV_0 (0x1UL << DMA_CH_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000010UL*/ 936 #define DMA_CH_AIDR_ARCH_MAJOR_REV_1 (0x2UL << DMA_CH_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000020UL*/ 937 #define DMA_CH_AIDR_ARCH_MAJOR_REV_2 (0x4UL << DMA_CH_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000040UL*/ 938 #define DMA_CH_AIDR_ARCH_MAJOR_REV_3 (0x8UL << DMA_CH_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000080UL*/ 939 /**************** Field definitions for CH_ISSUECAP register ****************/ 940 #define DMA_CH_ISSUECAP_ISSUECAP_Pos (0U) 941 #define DMA_CH_ISSUECAP_ISSUECAP_Msk (0x7UL << DMA_CH_ISSUECAP_ISSUECAP_Pos) /*!< 0x00000007UL*/ 942 #define DMA_CH_ISSUECAP_ISSUECAP DMA_CH_ISSUECAP_ISSUECAP_Msk /*!< ISSUECAP[ 2:0] bits ISSUECAP can be used by software to place a constraint on allowed issuing capability in both read and write direction.*/ 943 #define DMA_CH_ISSUECAP_ISSUECAP_0 (0x1UL << DMA_CH_ISSUECAP_ISSUECAP_Pos) /*!< 0x00000001UL*/ 944 #define DMA_CH_ISSUECAP_ISSUECAP_1 (0x2UL << DMA_CH_ISSUECAP_ISSUECAP_Pos) /*!< 0x00000002UL*/ 945 #define DMA_CH_ISSUECAP_ISSUECAP_2 (0x4UL << DMA_CH_ISSUECAP_ISSUECAP_Pos) /*!< 0x00000004UL*/ 946 /*************** Field definitions for CH_BUILDCFG0 register ****************/ 947 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos (0U) 948 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Msk (0xFFUL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x000000FFUL*/ 949 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Msk /*!< DATA_BUFF_SIZE[ 7:0] bits Data Buffer Size in entries - 1. Total Size = ((DATA_BUFF_SIZE + 1) * DATA_WIDTH /8) bytes.*/ 950 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_0 (0x1UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000001UL*/ 951 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_1 (0x2UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000002UL*/ 952 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_2 (0x4UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000004UL*/ 953 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_3 (0x8UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000008UL*/ 954 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_4 (0x10UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000010UL*/ 955 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_5 (0x20UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000020UL*/ 956 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_6 (0x40UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000040UL*/ 957 #define DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_7 (0x80UL << DMA_CH_BUILDCFG0_DATA_BUFF_SIZE_Pos) /*!< 0x00000080UL*/ 958 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos (8U) 959 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Msk (0xFFUL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x0000FF00UL*/ 960 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Msk /*!< CMD_BUFF_SIZE[ 7:0] bits Command Buffer Size in command words - 1. Total Size = (CMD_BUFF_SIZE + 1) * 4 bytes.*/ 961 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_0 (0x1UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00000100UL*/ 962 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_1 (0x2UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00000200UL*/ 963 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_2 (0x4UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00000400UL*/ 964 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_3 (0x8UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00000800UL*/ 965 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_4 (0x10UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00001000UL*/ 966 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_5 (0x20UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00002000UL*/ 967 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_6 (0x40UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00004000UL*/ 968 #define DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_7 (0x80UL << DMA_CH_BUILDCFG0_CMD_BUFF_SIZE_Pos) /*!< 0x00008000UL*/ 969 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos (16U) 970 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_Msk (0x3FUL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x003F0000UL*/ 971 #define DMA_CH_BUILDCFG0_ADDR_WIDTH DMA_CH_BUILDCFG0_ADDR_WIDTH_Msk /*!< ADDR_WIDTH[ 5:0] bits Address Width in bits = ADDR_WIDTH + 1*/ 972 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_0 (0x1UL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00010000UL*/ 973 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_1 (0x2UL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00020000UL*/ 974 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_2 (0x4UL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00040000UL*/ 975 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_3 (0x8UL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00080000UL*/ 976 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_4 (0x10UL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00100000UL*/ 977 #define DMA_CH_BUILDCFG0_ADDR_WIDTH_5 (0x20UL << DMA_CH_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00200000UL*/ 978 #define DMA_CH_BUILDCFG0_DATA_WIDTH_Pos (22U) 979 #define DMA_CH_BUILDCFG0_DATA_WIDTH_Msk (0x7UL << DMA_CH_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x01C00000UL*/ 980 #define DMA_CH_BUILDCFG0_DATA_WIDTH DMA_CH_BUILDCFG0_DATA_WIDTH_Msk /*!< DATA_WIDTH[ 2:0] bits Data Width. 981 - 000: 8-bit 982 - 001: 16-bit 983 - 010: 32-bit 984 - 011: 64-bit 985 - 100: 128-bit 986 - 101: 256-bit 987 - 110: 512-bit 988 - 111: 1024-bit*/ 989 #define DMA_CH_BUILDCFG0_DATA_WIDTH_0 (0x1UL << DMA_CH_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x00400000UL*/ 990 #define DMA_CH_BUILDCFG0_DATA_WIDTH_1 (0x2UL << DMA_CH_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x00800000UL*/ 991 #define DMA_CH_BUILDCFG0_DATA_WIDTH_2 (0x4UL << DMA_CH_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x01000000UL*/ 992 #define DMA_CH_BUILDCFG0_INC_WIDTH_Pos (26U) 993 #define DMA_CH_BUILDCFG0_INC_WIDTH_Msk (0xFUL << DMA_CH_BUILDCFG0_INC_WIDTH_Pos) /*!< 0x3C000000UL*/ 994 #define DMA_CH_BUILDCFG0_INC_WIDTH DMA_CH_BUILDCFG0_INC_WIDTH_Msk /*!< INC_WIDTH[ 3:0] bits Width of the increment register = INC_WIDTH + 1. 995 When set to 0, then only 0 and 1 can be set as an increment. When larger values are used, then negative increments can be set using 2's complement: 996 INC_WIDTH = 0: 0..1 997 INC_WIDTH = 1: -2..1 998 INC_WIDTH = 2: -4..3 999 INC_WIDTH = 3: -8..7 1000 … 1001 INC_WIDTH = 15: -32768..32767*/ 1002 #define DMA_CH_BUILDCFG0_INC_WIDTH_0 (0x1UL << DMA_CH_BUILDCFG0_INC_WIDTH_Pos) /*!< 0x04000000UL*/ 1003 #define DMA_CH_BUILDCFG0_INC_WIDTH_1 (0x2UL << DMA_CH_BUILDCFG0_INC_WIDTH_Pos) /*!< 0x08000000UL*/ 1004 #define DMA_CH_BUILDCFG0_INC_WIDTH_2 (0x4UL << DMA_CH_BUILDCFG0_INC_WIDTH_Pos) /*!< 0x10000000UL*/ 1005 #define DMA_CH_BUILDCFG0_INC_WIDTH_3 (0x8UL << DMA_CH_BUILDCFG0_INC_WIDTH_Pos) /*!< 0x20000000UL*/ 1006 /*************** Field definitions for CH_BUILDCFG1 register ****************/ 1007 #define DMA_CH_BUILDCFG1_HAS_XSIZEHI_Pos (0U) 1008 #define DMA_CH_BUILDCFG1_HAS_XSIZEHI_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_XSIZEHI_Pos) /*!< 0x00000001UL*/ 1009 #define DMA_CH_BUILDCFG1_HAS_XSIZEHI DMA_CH_BUILDCFG1_HAS_XSIZEHI_Msk /*!< HAS_XSIZEHI bit Has 32-bit XSIZE counters.*/ 1010 #define DMA_CH_BUILDCFG1_HAS_WRAP_Pos (1U) 1011 #define DMA_CH_BUILDCFG1_HAS_WRAP_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_WRAP_Pos) /*!< 0x00000002UL*/ 1012 #define DMA_CH_BUILDCFG1_HAS_WRAP DMA_CH_BUILDCFG1_HAS_WRAP_Msk /*!< HAS_WRAP bit Has wrap capability.*/ 1013 #define DMA_CH_BUILDCFG1_HAS_2D_Pos (2U) 1014 #define DMA_CH_BUILDCFG1_HAS_2D_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_2D_Pos) /*!< 0x00000004UL*/ 1015 #define DMA_CH_BUILDCFG1_HAS_2D DMA_CH_BUILDCFG1_HAS_2D_Msk /*!< HAS_2D bit Has 2D capability.*/ 1016 #define DMA_CH_BUILDCFG1_HAS_TMPLT_Pos (3U) 1017 #define DMA_CH_BUILDCFG1_HAS_TMPLT_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_TMPLT_Pos) /*!< 0x00000008UL*/ 1018 #define DMA_CH_BUILDCFG1_HAS_TMPLT DMA_CH_BUILDCFG1_HAS_TMPLT_Msk /*!< HAS_TMPLT bit Has template based pack and unpack capability.*/ 1019 #define DMA_CH_BUILDCFG1_HAS_TRIG_Pos (4U) 1020 #define DMA_CH_BUILDCFG1_HAS_TRIG_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_TRIG_Pos) /*!< 0x00000010UL*/ 1021 #define DMA_CH_BUILDCFG1_HAS_TRIG DMA_CH_BUILDCFG1_HAS_TRIG_Msk /*!< HAS_TRIG bit Has trigger capability.*/ 1022 #define DMA_CH_BUILDCFG1_HAS_TRIGIN_Pos (5U) 1023 #define DMA_CH_BUILDCFG1_HAS_TRIGIN_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_TRIGIN_Pos) /*!< 0x00000020UL*/ 1024 #define DMA_CH_BUILDCFG1_HAS_TRIGIN DMA_CH_BUILDCFG1_HAS_TRIGIN_Msk /*!< HAS_TRIGIN bit Has hardware trigger input ports.*/ 1025 #define DMA_CH_BUILDCFG1_HAS_TRIGOUT_Pos (6U) 1026 #define DMA_CH_BUILDCFG1_HAS_TRIGOUT_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_TRIGOUT_Pos) /*!< 0x00000040UL*/ 1027 #define DMA_CH_BUILDCFG1_HAS_TRIGOUT DMA_CH_BUILDCFG1_HAS_TRIGOUT_Msk /*!< HAS_TRIGOUT bit Has hardware trigger output port.*/ 1028 #define DMA_CH_BUILDCFG1_HAS_TRIGSEL_Pos (7U) 1029 #define DMA_CH_BUILDCFG1_HAS_TRIGSEL_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_TRIGSEL_Pos) /*!< 0x00000080UL*/ 1030 #define DMA_CH_BUILDCFG1_HAS_TRIGSEL DMA_CH_BUILDCFG1_HAS_TRIGSEL_Msk /*!< HAS_TRIGSEL bit Has selectable triggers.*/ 1031 #define DMA_CH_BUILDCFG1_HAS_CMDLINK_Pos (8U) 1032 #define DMA_CH_BUILDCFG1_HAS_CMDLINK_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_CMDLINK_Pos) /*!< 0x00000100UL*/ 1033 #define DMA_CH_BUILDCFG1_HAS_CMDLINK DMA_CH_BUILDCFG1_HAS_CMDLINK_Msk /*!< HAS_CMDLINK bit Has command link list capability.*/ 1034 #define DMA_CH_BUILDCFG1_HAS_AUTO_Pos (9U) 1035 #define DMA_CH_BUILDCFG1_HAS_AUTO_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_AUTO_Pos) /*!< 0x00000200UL*/ 1036 #define DMA_CH_BUILDCFG1_HAS_AUTO DMA_CH_BUILDCFG1_HAS_AUTO_Msk /*!< HAS_AUTO bit Has automatic reload and restart capability.*/ 1037 #define DMA_CH_BUILDCFG1_HAS_WRKREG_Pos (10U) 1038 #define DMA_CH_BUILDCFG1_HAS_WRKREG_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_WRKREG_Pos) /*!< 0x00000400UL*/ 1039 #define DMA_CH_BUILDCFG1_HAS_WRKREG DMA_CH_BUILDCFG1_HAS_WRKREG_Msk /*!< HAS_WRKREG bit Has internal register view capability.*/ 1040 #define DMA_CH_BUILDCFG1_HAS_STREAM_Pos (11U) 1041 #define DMA_CH_BUILDCFG1_HAS_STREAM_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_STREAM_Pos) /*!< 0x00000800UL*/ 1042 #define DMA_CH_BUILDCFG1_HAS_STREAM DMA_CH_BUILDCFG1_HAS_STREAM_Msk /*!< HAS_STREAM bit Has stream interface support.*/ 1043 #define DMA_CH_BUILDCFG1_HAS_STREAMSEL_Pos (12U) 1044 #define DMA_CH_BUILDCFG1_HAS_STREAMSEL_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_STREAMSEL_Pos) /*!< 0x00001000UL*/ 1045 #define DMA_CH_BUILDCFG1_HAS_STREAMSEL DMA_CH_BUILDCFG1_HAS_STREAMSEL_Msk /*!< HAS_STREAMSEL bit Has selectable stream interfaces.*/ 1046 #define DMA_CH_BUILDCFG1_HAS_GPOSEL_Pos (18U) 1047 #define DMA_CH_BUILDCFG1_HAS_GPOSEL_Msk (0x1UL << DMA_CH_BUILDCFG1_HAS_GPOSEL_Pos) /*!< 0x00040000UL*/ 1048 #define DMA_CH_BUILDCFG1_HAS_GPOSEL DMA_CH_BUILDCFG1_HAS_GPOSEL_Msk /*!< HAS_GPOSEL bit Has shared GPO ports between channels.*/ 1049 #define DMA_CH_BUILDCFG1_GPO_WIDTH_Pos (19U) 1050 #define DMA_CH_BUILDCFG1_GPO_WIDTH_Msk (0x7FUL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x03F80000UL*/ 1051 #define DMA_CH_BUILDCFG1_GPO_WIDTH DMA_CH_BUILDCFG1_GPO_WIDTH_Msk /*!< GPO_WIDTH[ 6:0] bits General Purpose Output Width. 0 to 64.*/ 1052 #define DMA_CH_BUILDCFG1_GPO_WIDTH_0 (0x1UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x00080000UL*/ 1053 #define DMA_CH_BUILDCFG1_GPO_WIDTH_1 (0x2UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x00100000UL*/ 1054 #define DMA_CH_BUILDCFG1_GPO_WIDTH_2 (0x4UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x00200000UL*/ 1055 #define DMA_CH_BUILDCFG1_GPO_WIDTH_3 (0x8UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x00400000UL*/ 1056 #define DMA_CH_BUILDCFG1_GPO_WIDTH_4 (0x10UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x00800000UL*/ 1057 #define DMA_CH_BUILDCFG1_GPO_WIDTH_5 (0x20UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x01000000UL*/ 1058 #define DMA_CH_BUILDCFG1_GPO_WIDTH_6 (0x40UL << DMA_CH_BUILDCFG1_GPO_WIDTH_Pos) /*!< 0x02000000UL*/ 1059 /******************************************************************************/ 1060 /* DMANSECCTRL */ 1061 /******************************************************************************/ 1062 /************ Field definitions for NSEC_CHINTRSTATUS0 register *************/ 1063 #define DMA_NSEC_CHINTRSTATUS0_CHINTRSTATUS0_Pos (0U) 1064 #define DMA_NSEC_CHINTRSTATUS0_CHINTRSTATUS0_Msk (0xFFFFFFFFUL << DMA_NSEC_CHINTRSTATUS0_CHINTRSTATUS0_Pos)/*!< 0xFFFFFFFFUL*/ 1065 #define DMA_NSEC_CHINTRSTATUS0_CHINTRSTATUS0 DMA_NSEC_CHINTRSTATUS0_CHINTRSTATUS0_Msk /*!< CHINTRSTATUS0[31:0] bits Collated Non-Secure Channel Interrupt flags for channel 0 to channel 31. Limited by NUM_CHANNELS, all unimplemented bits are reserved.*/ 1066 /**************** Field definitions for NSEC_STATUS register ****************/ 1067 #define DMA_NSEC_STATUS_INTR_ANYCHINTR_Pos (0U) 1068 #define DMA_NSEC_STATUS_INTR_ANYCHINTR_Msk (0x1UL << DMA_NSEC_STATUS_INTR_ANYCHINTR_Pos) /*!< 0x00000001UL*/ 1069 #define DMA_NSEC_STATUS_INTR_ANYCHINTR DMA_NSEC_STATUS_INTR_ANYCHINTR_Msk /*!< INTR_ANYCHINTR bit Combined Non-Secure Channel Interrupt Flag. Set to '1' when any Non-secure channel has an interrupt request in CHINTRSTATUS0 and NSECCTRL.INTREN_ANYCHINTR = 1. Cleared automatically when the source of the channel interrupt is cleared.*/ 1070 #define DMA_NSEC_STATUS_INTR_ALLCHIDLE_Pos (1U) 1071 #define DMA_NSEC_STATUS_INTR_ALLCHIDLE_Msk (0x1UL << DMA_NSEC_STATUS_INTR_ALLCHIDLE_Pos) /*!< 0x00000002UL*/ 1072 #define DMA_NSEC_STATUS_INTR_ALLCHIDLE DMA_NSEC_STATUS_INTR_ALLCHIDLE_Msk /*!< INTR_ALLCHIDLE bit All Non-Secure Channel Idle Interrupt Status. Set to '1' when NSECCTRL.STAT_ALLCHIDLE is asserted and NSECCTRL.INTREN_ALLCHIDLE = 1. Cleared automatically when STAT_ALLCHIDLE is cleared.*/ 1073 #define DMA_NSEC_STATUS_INTR_ALLCHSTOPPED_Pos (2U) 1074 #define DMA_NSEC_STATUS_INTR_ALLCHSTOPPED_Msk (0x1UL << DMA_NSEC_STATUS_INTR_ALLCHSTOPPED_Pos) /*!< 0x00000004UL*/ 1075 #define DMA_NSEC_STATUS_INTR_ALLCHSTOPPED DMA_NSEC_STATUS_INTR_ALLCHSTOPPED_Msk /*!< INTR_ALLCHSTOPPED bit All Non-Secure Channel Stopped Interrupt Status. Set to '1' when NSECCTRL.STAT_ALLCHSTOPPED is asserted and NSECCTRL.INTREN_ALLCHSTOPPED = 1. Cleared automatically when STAT_ALLCHSTOPPED is cleared.*/ 1076 #define DMA_NSEC_STATUS_INTR_ALLCHPAUSED_Pos (3U) 1077 #define DMA_NSEC_STATUS_INTR_ALLCHPAUSED_Msk (0x1UL << DMA_NSEC_STATUS_INTR_ALLCHPAUSED_Pos) /*!< 0x00000008UL*/ 1078 #define DMA_NSEC_STATUS_INTR_ALLCHPAUSED DMA_NSEC_STATUS_INTR_ALLCHPAUSED_Msk /*!< INTR_ALLCHPAUSED bit All Non-Secure Channel Paused Interrupt Status. Set to '1' when NSECCTRL.STAT_ALLCHPAUSED is asserted and NSECCTRL.INTREN_ALLCHPAUSED = 1. Cleared automatically when STAT_ALLCHPAUSED is cleared.*/ 1079 #define DMA_NSEC_STATUS_STAT_ALLCHIDLE_Pos (17U) 1080 #define DMA_NSEC_STATUS_STAT_ALLCHIDLE_Msk (0x1UL << DMA_NSEC_STATUS_STAT_ALLCHIDLE_Pos) /*!< 0x00020000UL*/ 1081 #define DMA_NSEC_STATUS_STAT_ALLCHIDLE DMA_NSEC_STATUS_STAT_ALLCHIDLE_Msk /*!< STAT_ALLCHIDLE bit All Non-Secure Channel Idle Status. Set to '1' whenever all Non-secure DMA channel is in idle state after at least one channel was running. Cleared by writing '1' to this bit.*/ 1082 #define DMA_NSEC_STATUS_STAT_ALLCHSTOPPED_Pos (18U) 1083 #define DMA_NSEC_STATUS_STAT_ALLCHSTOPPED_Msk (0x1UL << DMA_NSEC_STATUS_STAT_ALLCHSTOPPED_Pos) /*!< 0x00040000UL*/ 1084 #define DMA_NSEC_STATUS_STAT_ALLCHSTOPPED DMA_NSEC_STATUS_STAT_ALLCHSTOPPED_Msk /*!< STAT_ALLCHSTOPPED bit All Non-Secure Channel Stopped Status. Set to '1' whenever all Non-secure DMA channels are in stopped or inactive state and the ALLCHSTOP request is active. Not set when channels reach the stopped state for other reasons. All Non-secure channels are forced to an immediate stopped state until ALLCHSTOP request is asserted even if they were enabled after the request. Cleared by writing '1' to this bit. The ALLCHSTOP request is also cleared when this bit is cleared.*/ 1085 #define DMA_NSEC_STATUS_STAT_ALLCHPAUSED_Pos (19U) 1086 #define DMA_NSEC_STATUS_STAT_ALLCHPAUSED_Msk (0x1UL << DMA_NSEC_STATUS_STAT_ALLCHPAUSED_Pos) /*!< 0x00080000UL*/ 1087 #define DMA_NSEC_STATUS_STAT_ALLCHPAUSED DMA_NSEC_STATUS_STAT_ALLCHPAUSED_Msk /*!< STAT_ALLCHPAUSED bit All Non-Secure Channel Paused Status. Set to '1' whenever all Non-secure DMA channel is in paused or inactive state and the ALLCHPAUSE request is active. Not set when channels reach the paused state for other reasons. All Non-secure channels are forced to an immediate pause until ALLCHPAUSE request is asserted even if they were enabled after the request. Cleared by writing '1' to this bit which results in all Non-secure channels to resume their operation. The ALLCHPAUSE request is also cleared when this bit is cleared.*/ 1088 /***************** Field definitions for NSEC_CTRL register *****************/ 1089 #define DMA_NSEC_CTRL_INTREN_ANYCHINTR_Pos (0U) 1090 #define DMA_NSEC_CTRL_INTREN_ANYCHINTR_Msk (0x1UL << DMA_NSEC_CTRL_INTREN_ANYCHINTR_Pos) /*!< 0x00000001UL*/ 1091 #define DMA_NSEC_CTRL_INTREN_ANYCHINTR DMA_NSEC_CTRL_INTREN_ANYCHINTR_Msk /*!< INTREN_ANYCHINTR bit Combined Non-Secure Channel Interrupt Enable*/ 1092 #define DMA_NSEC_CTRL_INTREN_ALLCHIDLE_Pos (1U) 1093 #define DMA_NSEC_CTRL_INTREN_ALLCHIDLE_Msk (0x1UL << DMA_NSEC_CTRL_INTREN_ALLCHIDLE_Pos) /*!< 0x00000002UL*/ 1094 #define DMA_NSEC_CTRL_INTREN_ALLCHIDLE DMA_NSEC_CTRL_INTREN_ALLCHIDLE_Msk /*!< INTREN_ALLCHIDLE bit All Non-Secure Channel Idle Interrupt Enable*/ 1095 #define DMA_NSEC_CTRL_INTREN_ALLCHSTOPPED_Pos (2U) 1096 #define DMA_NSEC_CTRL_INTREN_ALLCHSTOPPED_Msk (0x1UL << DMA_NSEC_CTRL_INTREN_ALLCHSTOPPED_Pos) /*!< 0x00000004UL*/ 1097 #define DMA_NSEC_CTRL_INTREN_ALLCHSTOPPED DMA_NSEC_CTRL_INTREN_ALLCHSTOPPED_Msk /*!< INTREN_ALLCHSTOPPED bit All Non-Secure Channels Stopped Interrupt Enable*/ 1098 #define DMA_NSEC_CTRL_INTREN_ALLCHPAUSED_Pos (3U) 1099 #define DMA_NSEC_CTRL_INTREN_ALLCHPAUSED_Msk (0x1UL << DMA_NSEC_CTRL_INTREN_ALLCHPAUSED_Pos) /*!< 0x00000008UL*/ 1100 #define DMA_NSEC_CTRL_INTREN_ALLCHPAUSED DMA_NSEC_CTRL_INTREN_ALLCHPAUSED_Msk /*!< INTREN_ALLCHPAUSED bit All Non-Secure Channel Paused Interrupt Enable*/ 1101 #define DMA_NSEC_CTRL_ALLCHSTOP_Pos (8U) 1102 #define DMA_NSEC_CTRL_ALLCHSTOP_Msk (0x1UL << DMA_NSEC_CTRL_ALLCHSTOP_Pos) /*!< 0x00000100UL*/ 1103 #define DMA_NSEC_CTRL_ALLCHSTOP DMA_NSEC_CTRL_ALLCHSTOP_Msk /*!< ALLCHSTOP bit Non-Secure All Channel Stop Request. When set to '1', all Non-secure channels get a stop request. Stays asserted until the STAT_ALLCHSTOPPED status flag is set. Cleared automatically when the STAT_ALLCHSTOPPED status flag is cleared.*/ 1104 #define DMA_NSEC_CTRL_ALLCHPAUSE_Pos (9U) 1105 #define DMA_NSEC_CTRL_ALLCHPAUSE_Msk (0x1UL << DMA_NSEC_CTRL_ALLCHPAUSE_Pos) /*!< 0x00000200UL*/ 1106 #define DMA_NSEC_CTRL_ALLCHPAUSE DMA_NSEC_CTRL_ALLCHPAUSE_Msk /*!< ALLCHPAUSE bit Non-Secure All Channel Pause Request. When set to '1', all Non-secure channels get a pause request. Stays asserted until the channels are paused and the STAT_ALLCHPAUSED status flag is set. Cleared automatically when the STAT_ALLCHPAUSED status flag is cleared.*/ 1107 #define DMA_NSEC_CTRL_DBGHALTNSRO_Pos (27U) 1108 #define DMA_NSEC_CTRL_DBGHALTNSRO_Msk (0x1UL << DMA_NSEC_CTRL_DBGHALTNSRO_Pos) /*!< 0x08000000UL*/ 1109 #define DMA_NSEC_CTRL_DBGHALTNSRO DMA_NSEC_CTRL_DBGHALTNSRO_Msk /*!< DBGHALTNSRO bit Debug Halt Enable Non-Secure Read Only. When set to '1', the NSEC_CTRL.DBGHALTEN register becomes read-only. When set to '0', NSEC_CTRL.DBGHALTEN has read-write access. This register is read-only for the non-secure SW.*/ 1110 #define DMA_NSEC_CTRL_DBGHALTEN_Pos (28U) 1111 #define DMA_NSEC_CTRL_DBGHALTEN_Msk (0x1UL << DMA_NSEC_CTRL_DBGHALTEN_Pos) /*!< 0x10000000UL*/ 1112 #define DMA_NSEC_CTRL_DBGHALTEN DMA_NSEC_CTRL_DBGHALTEN_Msk /*!< DBGHALTEN bit Debug Halt Enabled. When set to '0', the DMA ignores the halt request from an external debugger. Clearing this bit while halt is ongoing results in continuing the operation. When set to '1', the debugger request to halt the DMA is allowed. This field is common for non-secure and secure side of the DMA, but access to this register is limited by the DBGHALTNSRO register field.*/ 1113 #define DMA_NSEC_CTRL_IDLERETEN_Pos (29U) 1114 #define DMA_NSEC_CTRL_IDLERETEN_Msk (0x1UL << DMA_NSEC_CTRL_IDLERETEN_Pos) /*!< 0x20000000UL*/ 1115 #define DMA_NSEC_CTRL_IDLERETEN DMA_NSEC_CTRL_IDLERETEN_Msk /*!< IDLERETEN bit Idle Channel Retention Enable. Allows retention for non-secure channels that are enabled and waiting for an event in IDLE state. 1116 - 0: disabled 1117 - 1: enabled*/ 1118 #define DMA_NSEC_CTRL_DISMINPWR_Pos (30U) 1119 #define DMA_NSEC_CTRL_DISMINPWR_Msk (0x3UL << DMA_NSEC_CTRL_DISMINPWR_Pos) /*!< 0xC0000000UL*/ 1120 #define DMA_NSEC_CTRL_DISMINPWR DMA_NSEC_CTRL_DISMINPWR_Msk /*!< DISMINPWR[ 1:0] bits Minimum Power state of the DMAC when at least one non-secure channel is present. 1121 - 00: OFF 1122 - 01: Retention 1123 - 10: ON 1124 - Others: Reserved*/ 1125 #define DMA_NSEC_CTRL_DISMINPWR_0 (0x1UL << DMA_NSEC_CTRL_DISMINPWR_Pos) /*!< 0x40000000UL*/ 1126 #define DMA_NSEC_CTRL_DISMINPWR_1 (0x2UL << DMA_NSEC_CTRL_DISMINPWR_Pos) /*!< 0x80000000UL*/ 1127 /**************** Field definitions for NSEC_CHPTR register *****************/ 1128 #define DMA_NSEC_CHPTR_CHPTR_Pos (0U) 1129 #define DMA_NSEC_CHPTR_CHPTR_Msk (0x3FUL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x0000003FUL*/ 1130 #define DMA_NSEC_CHPTR_CHPTR DMA_NSEC_CHPTR_CHPTR_Msk /*!< CHPTR[ 5:0] bits Non-Secure Channel Pointer. Selects which channel settings can be adjusted by the following registers.*/ 1131 #define DMA_NSEC_CHPTR_CHPTR_0 (0x1UL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x00000001UL*/ 1132 #define DMA_NSEC_CHPTR_CHPTR_1 (0x2UL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x00000002UL*/ 1133 #define DMA_NSEC_CHPTR_CHPTR_2 (0x4UL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x00000004UL*/ 1134 #define DMA_NSEC_CHPTR_CHPTR_3 (0x8UL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x00000008UL*/ 1135 #define DMA_NSEC_CHPTR_CHPTR_4 (0x10UL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x00000010UL*/ 1136 #define DMA_NSEC_CHPTR_CHPTR_5 (0x20UL << DMA_NSEC_CHPTR_CHPTR_Pos) /*!< 0x00000020UL*/ 1137 /**************** Field definitions for NSEC_CHCFG register *****************/ 1138 #define DMA_NSEC_CHCFG_CHID_Pos (0U) 1139 #define DMA_NSEC_CHCFG_CHID_Msk (0xFFFFUL << DMA_NSEC_CHCFG_CHID_Pos) /*!< 0x0000FFFFUL*/ 1140 #define DMA_NSEC_CHCFG_CHID DMA_NSEC_CHCFG_CHID_Msk /*!< CHID[15:0] bits Non-Secure Channel ID value. NSECCHPTR selects the channel ID value to be read or written via this register. CHID_WIDTH limits this field, unused bits are RAZWI.*/ 1141 #define DMA_NSEC_CHCFG_CHIDVLD_Pos (16U) 1142 #define DMA_NSEC_CHCFG_CHIDVLD_Msk (0x1UL << DMA_NSEC_CHCFG_CHIDVLD_Pos) /*!< 0x00010000UL*/ 1143 #define DMA_NSEC_CHCFG_CHIDVLD DMA_NSEC_CHCFG_CHIDVLD_Msk /*!< CHIDVLD bit Non-Secure Channel ID valid. NSECCHPTR selects the channel. Set to '1' to drive the channel ID value in CHID for all the transfers by the selected channel.*/ 1144 #define DMA_NSEC_CHCFG_CHPRIV_Pos (17U) 1145 #define DMA_NSEC_CHCFG_CHPRIV_Msk (0x1UL << DMA_NSEC_CHCFG_CHPRIV_Pos) /*!< 0x00020000UL*/ 1146 #define DMA_NSEC_CHCFG_CHPRIV DMA_NSEC_CHCFG_CHPRIV_Msk /*!< CHPRIV bit Non-Secure Channel Privilege Enable. NSECCHPTR selects the channel. When set to '1' it allows the channel to send transfers marked as Privileged only. The configuration registers of the selected channel are also given privileged only access rights. When set to '0' the channel is only allowed to send unprivileged transfers and the channel registers can be accessed by both privileged and unprivileged register accesses.*/ 1147 /************** Field definitions for NSEC_STATUSPTR register ***************/ 1148 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Pos (0U) 1149 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Msk (0xFUL << DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Pos) /*!< 0x0000000FUL*/ 1150 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Msk /*!< NSECSTATUSPTR[ 3:0] bits Non-Secure DMA Unit status pointer used to select which status value to view using STATUSVALUE register. Pointer values are: 1151 - 0: Channel Enabled Status for channel numbers [31 : 0]. 1152 - 1: Reserved 1153 - 2: Channel Stopped Status for channel numbers [31 : 0]. 1154 - 3: Reserved 1155 - 4: Channel Paused Status for channel numbers [31 : 0]. 1156 - Others: Reserved.*/ 1157 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR_0 (0x1UL << DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Pos) /*!< 0x00000001UL*/ 1158 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR_1 (0x2UL << DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Pos) /*!< 0x00000002UL*/ 1159 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR_2 (0x4UL << DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Pos) /*!< 0x00000004UL*/ 1160 #define DMA_NSEC_STATUSPTR_NSECSTATUSPTR_3 (0x8UL << DMA_NSEC_STATUSPTR_NSECSTATUSPTR_Pos) /*!< 0x00000008UL*/ 1161 /************** Field definitions for NSEC_STATUSVAL register ***************/ 1162 #define DMA_NSEC_STATUSVAL_NSECSTATUSVAL_Pos (0U) 1163 #define DMA_NSEC_STATUSVAL_NSECSTATUSVAL_Msk (0xFFFFFFFFUL << DMA_NSEC_STATUSVAL_NSECSTATUSVAL_Pos) /*!< 0xFFFFFFFFUL*/ 1164 #define DMA_NSEC_STATUSVAL_NSECSTATUSVAL DMA_NSEC_STATUSVAL_NSECSTATUSVAL_Msk /*!< NSECSTATUSVAL[31:0] bits Non-Secure DMA Unit status value. Can be used for reading internal status values of the DMA Unit for debug purposes. Values shown here are dependent on STATUSPTR. Note that inputs are masked by security mapping before being presented here. This means that only status values mapped to Non-secure world are visible as non-Zero values. 1165 All unimplemented bits are RAZWI. */ 1166 /************** Field definitions for NSEC_SIGNALPTR register ***************/ 1167 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Pos (0U) 1168 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Msk (0xFUL << DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Pos) /*!< 0x0000000FUL*/ 1169 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Msk /*!< NSECSIGNALPTR[ 3:0] bits Non-Secure DMA Unit signal pointer used to select which inputs or outputs to view using SIGNALVAL register. Pointer values, x, are: 1170 - 0 to 7: Trigger Input Requests [31+32*x : 32*x] 1171 - 8 to 9: Trigger output Acknowledges [31+32*(x-8) : 32*(x-8)] 1172 - 10 to 11: GPO output value [31+32*(x-10) : 32*(x-10)], only present when HAS_GPOSEL is set 1173 - Others: Reserved*/ 1174 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_0 (0x1UL << DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Pos) /*!< 0x00000001UL*/ 1175 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_1 (0x2UL << DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Pos) /*!< 0x00000002UL*/ 1176 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_2 (0x4UL << DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Pos) /*!< 0x00000004UL*/ 1177 #define DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_3 (0x8UL << DMA_NSEC_SIGNALPTR_NSECSIGNALPTR_Pos) /*!< 0x00000008UL*/ 1178 /************** Field definitions for NSEC_SIGNALVAL register ***************/ 1179 #define DMA_NSEC_SIGNALVAL_NSECSIGNALVAL_Pos (0U) 1180 #define DMA_NSEC_SIGNALVAL_NSECSIGNALVAL_Msk (0xFFFFFFFFUL << DMA_NSEC_SIGNALVAL_NSECSIGNALVAL_Pos) /*!< 0xFFFFFFFFUL*/ 1181 #define DMA_NSEC_SIGNALVAL_NSECSIGNALVAL DMA_NSEC_SIGNALVAL_NSECSIGNALVAL_Msk /*!< NSECSIGNALVAL[31:0] bits Non-Secure DMA Unit signal status. Can be used for reading signal values of triggers and GPOs for debug. Values shown here are dependent on SIGNALPTR. Note that inputs are masked by security mapping before being presented here. This means that only signals mapped to Non-secure world are visible as non-zero values. Writing to this register has the following effect: 1182 - Writing '1' to a Non-secure Trigger Input Request that are not selected by any DMA channel will cause a deny response for it. This can attempt to clear an unwanted trigger input. 1183 - Writing '1' to any Trigger Output Acknowledges status, GPO status and all Trigger Input Request already selected by any DMA channel is ignored. 1184 All unimplemented bits are RAZWI. */ 1185 /******************************************************************************/ 1186 /* DMASECCTRL */ 1187 /******************************************************************************/ 1188 /************* Field definitions for SEC_CHINTRSTATUS0 register *************/ 1189 #define DMA_SEC_CHINTRSTATUS0_CHINTRSTATUS0_Pos (0U) 1190 #define DMA_SEC_CHINTRSTATUS0_CHINTRSTATUS0_Msk (0xFFFFFFFFUL << DMA_SEC_CHINTRSTATUS0_CHINTRSTATUS0_Pos) /*!< 0xFFFFFFFFUL*/ 1191 #define DMA_SEC_CHINTRSTATUS0_CHINTRSTATUS0 DMA_SEC_CHINTRSTATUS0_CHINTRSTATUS0_Msk /*!< CHINTRSTATUS0[31:0] bits Collated Secure Channel Interrupt flags for channel 0 to Channel 31. Limited by NUM_CHANNELS, all unimplemented bits are reserved.*/ 1192 /**************** Field definitions for SEC_STATUS register *****************/ 1193 #define DMA_SEC_STATUS_INTR_ANYCHINTR_Pos (0U) 1194 #define DMA_SEC_STATUS_INTR_ANYCHINTR_Msk (0x1UL << DMA_SEC_STATUS_INTR_ANYCHINTR_Pos) /*!< 0x00000001UL*/ 1195 #define DMA_SEC_STATUS_INTR_ANYCHINTR DMA_SEC_STATUS_INTR_ANYCHINTR_Msk /*!< INTR_ANYCHINTR bit Combined Secure Channel Interrupt Flag. Set to '1' when any Secure channel has an interrupt request in CHINTRSTATUS0 and SECCTRL.INTREN_ANYCHINTR = 1. Cleared automatically when the source of the channel interrupt is cleared.*/ 1196 #define DMA_SEC_STATUS_INTR_ALLCHIDLE_Pos (1U) 1197 #define DMA_SEC_STATUS_INTR_ALLCHIDLE_Msk (0x1UL << DMA_SEC_STATUS_INTR_ALLCHIDLE_Pos) /*!< 0x00000002UL*/ 1198 #define DMA_SEC_STATUS_INTR_ALLCHIDLE DMA_SEC_STATUS_INTR_ALLCHIDLE_Msk /*!< INTR_ALLCHIDLE bit All Secure Channel Idle Interrupt Status. Set to '1' when SECCTRL.STAT_ALLCHIDLE is asserted and SECCTRL.INTREN_ALLCHIDLE = 1. Cleared automatically when STAT_ALLCHIDLE is cleared.*/ 1199 #define DMA_SEC_STATUS_INTR_ALLCHSTOPPED_Pos (2U) 1200 #define DMA_SEC_STATUS_INTR_ALLCHSTOPPED_Msk (0x1UL << DMA_SEC_STATUS_INTR_ALLCHSTOPPED_Pos) /*!< 0x00000004UL*/ 1201 #define DMA_SEC_STATUS_INTR_ALLCHSTOPPED DMA_SEC_STATUS_INTR_ALLCHSTOPPED_Msk /*!< INTR_ALLCHSTOPPED bit All Secure Channel Stopped Interrupt Status. Set to '1' when SECCTRL.STAT_ALLCHSTOPPED is asserted and SECCTRL.INTREN_ALLCHSTOPPED = 1. Cleared automatically when STAT_ALLCHSTOPPED is cleared.*/ 1202 #define DMA_SEC_STATUS_INTR_ALLCHPAUSED_Pos (3U) 1203 #define DMA_SEC_STATUS_INTR_ALLCHPAUSED_Msk (0x1UL << DMA_SEC_STATUS_INTR_ALLCHPAUSED_Pos) /*!< 0x00000008UL*/ 1204 #define DMA_SEC_STATUS_INTR_ALLCHPAUSED DMA_SEC_STATUS_INTR_ALLCHPAUSED_Msk /*!< INTR_ALLCHPAUSED bit All Secure Channel Paused Interrupt Status. Set to '1' when SECCTRL.STAT_ALLCHPAUSED is asserted and SECCTRL.INTREN_ALLCHPAUSED = 1. Cleared automatically when STAT_ALLCHPAUSED is cleared.*/ 1205 #define DMA_SEC_STATUS_STAT_ALLCHIDLE_Pos (17U) 1206 #define DMA_SEC_STATUS_STAT_ALLCHIDLE_Msk (0x1UL << DMA_SEC_STATUS_STAT_ALLCHIDLE_Pos) /*!< 0x00020000UL*/ 1207 #define DMA_SEC_STATUS_STAT_ALLCHIDLE DMA_SEC_STATUS_STAT_ALLCHIDLE_Msk /*!< STAT_ALLCHIDLE bit All Secure Channel Idle Status. Set to '1' whenever all Secure DMA channel is in idle state after at least one channel was running. Cleared by writing '1' to this bit.*/ 1208 #define DMA_SEC_STATUS_STAT_ALLCHSTOPPED_Pos (18U) 1209 #define DMA_SEC_STATUS_STAT_ALLCHSTOPPED_Msk (0x1UL << DMA_SEC_STATUS_STAT_ALLCHSTOPPED_Pos) /*!< 0x00040000UL*/ 1210 #define DMA_SEC_STATUS_STAT_ALLCHSTOPPED DMA_SEC_STATUS_STAT_ALLCHSTOPPED_Msk /*!< STAT_ALLCHSTOPPED bit All Secure Channel Stopped Status. Set to '1' whenever all Secure DMA channels are in stopped or inactive state and the ALLCHSTOP request is active. Not set when channels reach the stopped state for other reasons. All Secure channels are forced to an immediate stopped state until ALLCHSTOP request is asserted even if they were enabled after the request. Cleared by writing '1' to this bit. The ALLCHSTOP request is also cleared when this bit is cleared.*/ 1211 #define DMA_SEC_STATUS_STAT_ALLCHPAUSED_Pos (19U) 1212 #define DMA_SEC_STATUS_STAT_ALLCHPAUSED_Msk (0x1UL << DMA_SEC_STATUS_STAT_ALLCHPAUSED_Pos) /*!< 0x00080000UL*/ 1213 #define DMA_SEC_STATUS_STAT_ALLCHPAUSED DMA_SEC_STATUS_STAT_ALLCHPAUSED_Msk /*!< STAT_ALLCHPAUSED bit All Secure Channel Paused Status. Set to '1' whenever all Secure DMA channel is in paused or inactive state and the ALLCHPAUSE request is active. Not set when channels reach the paused state for other reasons. All Secure channels are forced to an immediate pause until ALLCHPAUSE request is asserted even if they were enabled after the request. Cleared by writing '1' to this bit which results in all secure channels to resume their operation. The ALLCHPAUSE request is also cleared when this bit is cleared.*/ 1214 /***************** Field definitions for SEC_CTRL register ******************/ 1215 #define DMA_SEC_CTRL_INTREN_ANYCHINTR_Pos (0U) 1216 #define DMA_SEC_CTRL_INTREN_ANYCHINTR_Msk (0x1UL << DMA_SEC_CTRL_INTREN_ANYCHINTR_Pos) /*!< 0x00000001UL*/ 1217 #define DMA_SEC_CTRL_INTREN_ANYCHINTR DMA_SEC_CTRL_INTREN_ANYCHINTR_Msk /*!< INTREN_ANYCHINTR bit Combined Secure Channel Interrupt Enable*/ 1218 #define DMA_SEC_CTRL_INTREN_ALLCHIDLE_Pos (1U) 1219 #define DMA_SEC_CTRL_INTREN_ALLCHIDLE_Msk (0x1UL << DMA_SEC_CTRL_INTREN_ALLCHIDLE_Pos) /*!< 0x00000002UL*/ 1220 #define DMA_SEC_CTRL_INTREN_ALLCHIDLE DMA_SEC_CTRL_INTREN_ALLCHIDLE_Msk /*!< INTREN_ALLCHIDLE bit All Secure Channel Idle Interrupt Enable*/ 1221 #define DMA_SEC_CTRL_INTREN_ALLCHSTOPPED_Pos (2U) 1222 #define DMA_SEC_CTRL_INTREN_ALLCHSTOPPED_Msk (0x1UL << DMA_SEC_CTRL_INTREN_ALLCHSTOPPED_Pos) /*!< 0x00000004UL*/ 1223 #define DMA_SEC_CTRL_INTREN_ALLCHSTOPPED DMA_SEC_CTRL_INTREN_ALLCHSTOPPED_Msk /*!< INTREN_ALLCHSTOPPED bit All Secure Channels Stopped Interrupt Enable*/ 1224 #define DMA_SEC_CTRL_INTREN_ALLCHPAUSED_Pos (3U) 1225 #define DMA_SEC_CTRL_INTREN_ALLCHPAUSED_Msk (0x1UL << DMA_SEC_CTRL_INTREN_ALLCHPAUSED_Pos) /*!< 0x00000008UL*/ 1226 #define DMA_SEC_CTRL_INTREN_ALLCHPAUSED DMA_SEC_CTRL_INTREN_ALLCHPAUSED_Msk /*!< INTREN_ALLCHPAUSED bit All Secure Channel Paused Interrupt Enable*/ 1227 #define DMA_SEC_CTRL_ALLCHSTOP_Pos (8U) 1228 #define DMA_SEC_CTRL_ALLCHSTOP_Msk (0x1UL << DMA_SEC_CTRL_ALLCHSTOP_Pos) /*!< 0x00000100UL*/ 1229 #define DMA_SEC_CTRL_ALLCHSTOP DMA_SEC_CTRL_ALLCHSTOP_Msk /*!< ALLCHSTOP bit Secure All Channel Stop Request. When set to '1', all Secure channels get a stop request. Stays asserted until the STAT_ALLCHSTOPPED status flag is set. Cleared automatically when the STAT_ALLCHSTOPPED status flag is cleared.*/ 1230 #define DMA_SEC_CTRL_ALLCHPAUSE_Pos (9U) 1231 #define DMA_SEC_CTRL_ALLCHPAUSE_Msk (0x1UL << DMA_SEC_CTRL_ALLCHPAUSE_Pos) /*!< 0x00000200UL*/ 1232 #define DMA_SEC_CTRL_ALLCHPAUSE DMA_SEC_CTRL_ALLCHPAUSE_Msk /*!< ALLCHPAUSE bit Secure All Channel Pause Request. When set to '1', all Secure channels get a pause request. Stays asserted until the channels are paused and the STAT_ALLCHPAUSED status flag is set. Cleared automatically when the STAT_ALLCHPAUSED status flag is cleared.*/ 1233 #define DMA_SEC_CTRL_DBGHALTNSRO_Pos (27U) 1234 #define DMA_SEC_CTRL_DBGHALTNSRO_Msk (0x1UL << DMA_SEC_CTRL_DBGHALTNSRO_Pos) /*!< 0x08000000UL*/ 1235 #define DMA_SEC_CTRL_DBGHALTNSRO DMA_SEC_CTRL_DBGHALTNSRO_Msk /*!< DBGHALTNSRO bit Debug Halt Enable Non-Secure Read Only. When set to '1', the NSEC_CTRL.DBGHALTEN register becomes read-only. When set to '0', NSEC_CTRL.DBGHALTEN has read-write access. This register allows the secure SW to limit the non-secure SW adjusting the common DBGHALTEN register bit.*/ 1236 #define DMA_SEC_CTRL_DBGHALTEN_Pos (28U) 1237 #define DMA_SEC_CTRL_DBGHALTEN_Msk (0x1UL << DMA_SEC_CTRL_DBGHALTEN_Pos) /*!< 0x10000000UL*/ 1238 #define DMA_SEC_CTRL_DBGHALTEN DMA_SEC_CTRL_DBGHALTEN_Msk /*!< DBGHALTEN bit Debug Halt Enabled. When set to '0', the DMA ignores the halt request from an external debugger. Clearing this bit while halt is ongoing results in continuing the operation. When set to '1', the debugger request to halt the DMA is allowed for all channels. This field is common for non-secure and secure side of the DMA, but control can be limited by the SEC_CTRL.DBGHALTNSRO register field.*/ 1239 #define DMA_SEC_CTRL_IDLERETEN_Pos (29U) 1240 #define DMA_SEC_CTRL_IDLERETEN_Msk (0x1UL << DMA_SEC_CTRL_IDLERETEN_Pos) /*!< 0x20000000UL*/ 1241 #define DMA_SEC_CTRL_IDLERETEN DMA_SEC_CTRL_IDLERETEN_Msk /*!< IDLERETEN bit Idle Channel Retention Enable. Allows retention for Secure channels that are enabled and waiting for an event in IDLE state. 1242 - 0: disabled 1243 - 1: enabled*/ 1244 #define DMA_SEC_CTRL_DISMINPWR_Pos (30U) 1245 #define DMA_SEC_CTRL_DISMINPWR_Msk (0x3UL << DMA_SEC_CTRL_DISMINPWR_Pos) /*!< 0xC0000000UL*/ 1246 #define DMA_SEC_CTRL_DISMINPWR DMA_SEC_CTRL_DISMINPWR_Msk /*!< DISMINPWR[ 1:0] bits Minimum Power state of the DMAC when at least one secure channel is present. 1247 - 00: OFF 1248 - 01: Retention 1249 - 10: ON 1250 - Others: Reserved*/ 1251 #define DMA_SEC_CTRL_DISMINPWR_0 (0x1UL << DMA_SEC_CTRL_DISMINPWR_Pos) /*!< 0x40000000UL*/ 1252 #define DMA_SEC_CTRL_DISMINPWR_1 (0x2UL << DMA_SEC_CTRL_DISMINPWR_Pos) /*!< 0x80000000UL*/ 1253 /***************** Field definitions for SEC_CHPTR register *****************/ 1254 #define DMA_SEC_CHPTR_CHPTR_Pos (0U) 1255 #define DMA_SEC_CHPTR_CHPTR_Msk (0x3FUL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x0000003FUL*/ 1256 #define DMA_SEC_CHPTR_CHPTR DMA_SEC_CHPTR_CHPTR_Msk /*!< CHPTR[ 5:0] bits Secure Channel Pointer. Selects which channel settings can be adjusted by the following registers.*/ 1257 #define DMA_SEC_CHPTR_CHPTR_0 (0x1UL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x00000001UL*/ 1258 #define DMA_SEC_CHPTR_CHPTR_1 (0x2UL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x00000002UL*/ 1259 #define DMA_SEC_CHPTR_CHPTR_2 (0x4UL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x00000004UL*/ 1260 #define DMA_SEC_CHPTR_CHPTR_3 (0x8UL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x00000008UL*/ 1261 #define DMA_SEC_CHPTR_CHPTR_4 (0x10UL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x00000010UL*/ 1262 #define DMA_SEC_CHPTR_CHPTR_5 (0x20UL << DMA_SEC_CHPTR_CHPTR_Pos) /*!< 0x00000020UL*/ 1263 /***************** Field definitions for SEC_CHCFG register *****************/ 1264 #define DMA_SEC_CHCFG_CHID_Pos (0U) 1265 #define DMA_SEC_CHCFG_CHID_Msk (0xFFFFUL << DMA_SEC_CHCFG_CHID_Pos) /*!< 0x0000FFFFUL*/ 1266 #define DMA_SEC_CHCFG_CHID DMA_SEC_CHCFG_CHID_Msk /*!< CHID[15:0] bits Secure Channel ID value. SECCHPTR selects the channel ID value to be read or written via this register. CHID_WIDTH limits this field, unused bits are RAZWI.*/ 1267 #define DMA_SEC_CHCFG_CHIDVLD_Pos (16U) 1268 #define DMA_SEC_CHCFG_CHIDVLD_Msk (0x1UL << DMA_SEC_CHCFG_CHIDVLD_Pos) /*!< 0x00010000UL*/ 1269 #define DMA_SEC_CHCFG_CHIDVLD DMA_SEC_CHCFG_CHIDVLD_Msk /*!< CHIDVLD bit Secure Channel ID valid. SECCHPTR selects the channel. Set to '1' to drive the channel ID value in CHID for all the transfers by the selected channel.*/ 1270 #define DMA_SEC_CHCFG_CHPRIV_Pos (17U) 1271 #define DMA_SEC_CHCFG_CHPRIV_Msk (0x1UL << DMA_SEC_CHCFG_CHPRIV_Pos) /*!< 0x00020000UL*/ 1272 #define DMA_SEC_CHCFG_CHPRIV DMA_SEC_CHCFG_CHPRIV_Msk /*!< CHPRIV bit Secure Channel Privilege Enable. SECCHPTR selects the channel. When set to '1' it allows the channel to send transfers marked as Privileged only. The configuration registers of the selected channel are also given privileged only access rights. When set to '0' the channel is only allowed to send unprivileged transfers and the channel registers can be accessed by both privileged and unprivileged register accesses.*/ 1273 /*************** Field definitions for SEC_STATUSPTR register ***************/ 1274 #define DMA_SEC_STATUSPTR_SECSTATUSPTR_Pos (0U) 1275 #define DMA_SEC_STATUSPTR_SECSTATUSPTR_Msk (0xFUL << DMA_SEC_STATUSPTR_SECSTATUSPTR_Pos) /*!< 0x0000000FUL*/ 1276 #define DMA_SEC_STATUSPTR_SECSTATUSPTR DMA_SEC_STATUSPTR_SECSTATUSPTR_Msk /*!< SECSTATUSPTR[ 3:0] bits Secure DMA Unit status pointer used to select which status value to view using STATUSVALUE register. Pointer values are: 1277 - 0: Channel Enabled Status for channel numbers [31 : 0]. 1278 - 1: Reserved 1279 - 2: Channel Stopped Status for channel numbers [31 : 0]. 1280 - 3: Reserved 1281 - 4: Channel Paused Status for channel numbers [31 : 0]. 1282 - Others: Reserved.*/ 1283 #define DMA_SEC_STATUSPTR_SECSTATUSPTR_0 (0x1UL << DMA_SEC_STATUSPTR_SECSTATUSPTR_Pos) /*!< 0x00000001UL*/ 1284 #define DMA_SEC_STATUSPTR_SECSTATUSPTR_1 (0x2UL << DMA_SEC_STATUSPTR_SECSTATUSPTR_Pos) /*!< 0x00000002UL*/ 1285 #define DMA_SEC_STATUSPTR_SECSTATUSPTR_2 (0x4UL << DMA_SEC_STATUSPTR_SECSTATUSPTR_Pos) /*!< 0x00000004UL*/ 1286 #define DMA_SEC_STATUSPTR_SECSTATUSPTR_3 (0x8UL << DMA_SEC_STATUSPTR_SECSTATUSPTR_Pos) /*!< 0x00000008UL*/ 1287 /*************** Field definitions for SEC_STATUSVAL register ***************/ 1288 #define DMA_SEC_STATUSVAL_SECSTATUSVAL_Pos (0U) 1289 #define DMA_SEC_STATUSVAL_SECSTATUSVAL_Msk (0xFFFFFFFFUL << DMA_SEC_STATUSVAL_SECSTATUSVAL_Pos) /*!< 0xFFFFFFFFUL*/ 1290 #define DMA_SEC_STATUSVAL_SECSTATUSVAL DMA_SEC_STATUSVAL_SECSTATUSVAL_Msk /*!< SECSTATUSVAL[31:0] bits Secure DMA Unit status value. Can be used for reading internal status values of the DMA Unit for debug purposes. Values shown here are dependent on STATUSPTR. Note that inputs are masked by security mapping before being presented here. This means that only status values mapped to Secure world are visible as non-Zero values. 1291 All unimplemented bits are RAZWI. */ 1292 /*************** Field definitions for SEC_SIGNALPTR register ***************/ 1293 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR_Pos (0U) 1294 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR_Msk (0xFUL << DMA_SEC_SIGNALPTR_SECSIGNALPTR_Pos) /*!< 0x0000000FUL*/ 1295 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR DMA_SEC_SIGNALPTR_SECSIGNALPTR_Msk /*!< SECSIGNALPTR[ 3:0] bits Secure DMA Unit signal pointer used to select which inputs to view using SIGNALVAL register. Pointer values, x, are: 1296 - 0 to 7: Trigger Input Requests [31+32*x : 32*x] 1297 - 8 to 9: Trigger output Acknowledges [31+32*(x-8) : 32*(x-8)] 1298 - 10 to 11: GPO output value [31+32*(x-10) : 32*(x-10)], only present when HAS_GPOSEL is set. 1299 - Others: Reserved*/ 1300 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR_0 (0x1UL << DMA_SEC_SIGNALPTR_SECSIGNALPTR_Pos) /*!< 0x00000001UL*/ 1301 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR_1 (0x2UL << DMA_SEC_SIGNALPTR_SECSIGNALPTR_Pos) /*!< 0x00000002UL*/ 1302 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR_2 (0x4UL << DMA_SEC_SIGNALPTR_SECSIGNALPTR_Pos) /*!< 0x00000004UL*/ 1303 #define DMA_SEC_SIGNALPTR_SECSIGNALPTR_3 (0x8UL << DMA_SEC_SIGNALPTR_SECSIGNALPTR_Pos) /*!< 0x00000008UL*/ 1304 /*************** Field definitions for SEC_SIGNALVAL register ***************/ 1305 #define DMA_SEC_SIGNALVAL_SECSIGNALVAL_Pos (0U) 1306 #define DMA_SEC_SIGNALVAL_SECSIGNALVAL_Msk (0xFFFFFFFFUL << DMA_SEC_SIGNALVAL_SECSIGNALVAL_Pos) /*!< 0xFFFFFFFFUL*/ 1307 #define DMA_SEC_SIGNALVAL_SECSIGNALVAL DMA_SEC_SIGNALVAL_SECSIGNALVAL_Msk /*!< SECSIGNALVAL[31:0] bits Secure DMA Unit signal status. Can be used for reading signal values of triggers and GPOs for debug. Values shown here are dependent on SIGNALPTR. Note that inputs are masked by security mapping before being presented here. This means that only signal values mapped to Secure world are visible as non-zero values. Writing to this register has the following effect: 1308 - Writing '1' to a Trigger Input Request that are not selected by any DMA channel will cause a deny response for it. This can attempt to clear an unwanted trigger input. 1309 - Writing '1' to any Trigger Output Acknowledges status, GPO value and all Trigger Input Request selected by any DMA channel is ignored. 1310 All unimplemented bits are RAZWI. */ 1311 /******************************************************************************/ 1312 /* DMASECCFG */ 1313 /******************************************************************************/ 1314 /**************** Field definitions for SCFG_CHSEC0 register ****************/ 1315 #define DMA_SCFG_CHSEC0_SCFGCHSEC0_Pos (0U) 1316 #define DMA_SCFG_CHSEC0_SCFGCHSEC0_Msk (0xFFFFFFFFUL << DMA_SCFG_CHSEC0_SCFGCHSEC0_Pos) /*!< 0xFFFFFFFFUL*/ 1317 #define DMA_SCFG_CHSEC0_SCFGCHSEC0 DMA_SCFG_CHSEC0_SCFGCHSEC0_Msk /*!< SCFGCHSEC0[31:0] bits Secure Configuration Channel Security Mapping for Channel 0 to 31. When [i] set to '1', CH<i> is Non-secure world, else Secure world. The NUM_CHANNELS parameter limits this field, unused bits are RAZWI. Value for bit[i] can only be changed if the selected channel is not enabled, so reading back the register content is needed to check the success of the change.*/ 1318 /************** Field definitions for SCFG_TRIGINSEC0 register **************/ 1319 #define DMA_SCFG_TRIGINSEC0_SCFGTRIGINSEC0_Pos (0U) 1320 #define DMA_SCFG_TRIGINSEC0_SCFGTRIGINSEC0_Msk (0xFFFFFFFFUL << DMA_SCFG_TRIGINSEC0_SCFGTRIGINSEC0_Pos) /*!< 0xFFFFFFFFUL*/ 1321 #define DMA_SCFG_TRIGINSEC0_SCFGTRIGINSEC0 DMA_SCFG_TRIGINSEC0_SCFGTRIGINSEC0_Msk /*!< SCFGTRIGINSEC0[31:0] bits Secure Configuration Tigger Input Security Mapping. When [i] set to '1', Trigger Input <i> is Non-secure world, else Secure world. The NUM_TRIGGER_IN parameter limits this field, unused bits are RAZWI. Value for bit[i] can only be changed if the trigger input port is not in use, so reading back the register content is needed to check the success of the change.*/ 1322 /************* Field definitions for SCFG_TRIGOUTSEC0 register **************/ 1323 #define DMA_SCFG_TRIGOUTSEC0_SCFGTRIGOUTSEC0_Pos (0U) 1324 #define DMA_SCFG_TRIGOUTSEC0_SCFGTRIGOUTSEC0_Msk (0xFFFFFFFFUL << DMA_SCFG_TRIGOUTSEC0_SCFGTRIGOUTSEC0_Pos)/*!< 0xFFFFFFFFUL*/ 1325 #define DMA_SCFG_TRIGOUTSEC0_SCFGTRIGOUTSEC0 DMA_SCFG_TRIGOUTSEC0_SCFGTRIGOUTSEC0_Msk /*!< SCFGTRIGOUTSEC0[31:0] bits Secure Configuration Tigger Output Security Mapping. When [i] set to '1', Trigger Output <i> is Non-secure world, else Secure world. The NUM_TRIGGER_OUT parameter limits this field, unused bits are RAZWI. Value for bit[i] can only be changed if the trigger output port is not in use, so reading back the register content is needed to check the success of the change.*/ 1326 /***************** Field definitions for SCFG_CTRL register *****************/ 1327 #define DMA_SCFG_CTRL_INTREN_SECACCVIO_Pos (0U) 1328 #define DMA_SCFG_CTRL_INTREN_SECACCVIO_Msk (0x1UL << DMA_SCFG_CTRL_INTREN_SECACCVIO_Pos) /*!< 0x00000001UL*/ 1329 #define DMA_SCFG_CTRL_INTREN_SECACCVIO DMA_SCFG_CTRL_INTREN_SECACCVIO_Msk /*!< INTREN_SECACCVIO bit Secure Access Violation Interrupt Enable. 1330 - 0: no interrupt 1331 - 1: interrupt raised for security violation.*/ 1332 #define DMA_SCFG_CTRL_RSPTYPE_SECACCVIO_Pos (1U) 1333 #define DMA_SCFG_CTRL_RSPTYPE_SECACCVIO_Msk (0x1UL << DMA_SCFG_CTRL_RSPTYPE_SECACCVIO_Pos) /*!< 0x00000002UL*/ 1334 #define DMA_SCFG_CTRL_RSPTYPE_SECACCVIO DMA_SCFG_CTRL_RSPTYPE_SECACCVIO_Msk /*!< RSPTYPE_SECACCVIO bit Secure Access Violation response type configuration. 1335 - 0: RAZWI 1336 - 1: bus error.*/ 1337 #define DMA_SCFG_CTRL_SEC_CFG_LCK_Pos (31U) 1338 #define DMA_SCFG_CTRL_SEC_CFG_LCK_Msk (0x1UL << DMA_SCFG_CTRL_SEC_CFG_LCK_Pos) /*!< 0x80000000UL*/ 1339 #define DMA_SCFG_CTRL_SEC_CFG_LCK DMA_SCFG_CTRL_SEC_CFG_LCK_Msk /*!< SEC_CFG_LCK bit Security Configuration Lock. When set to '1', only SCFG.STAT_SECACCVIO can be cleared, all other register fields in the this block become read-only. Once set to '1', this field can only be set back to '0' by reset.*/ 1340 /************** Field definitions for SCFG_INTRSTATUS register **************/ 1341 #define DMA_SCFG_INTRSTATUS_INTR_SECACCVIO_Pos (0U) 1342 #define DMA_SCFG_INTRSTATUS_INTR_SECACCVIO_Msk (0x1UL << DMA_SCFG_INTRSTATUS_INTR_SECACCVIO_Pos) /*!< 0x00000001UL*/ 1343 #define DMA_SCFG_INTRSTATUS_INTR_SECACCVIO DMA_SCFG_INTRSTATUS_INTR_SECACCVIO_Msk /*!< INTR_SECACCVIO bit Secure Access Violation Interrupt Status. Set to '1' when SCFG.STAT_SECACCVIO is asserted and SCFG.INTREN_SECACCVIO = 1. Cleared automatically when STAT_SECACCVIO is cleared.*/ 1344 #define DMA_SCFG_INTRSTATUS_STAT_SECACCVIO_Pos (16U) 1345 #define DMA_SCFG_INTRSTATUS_STAT_SECACCVIO_Msk (0x1UL << DMA_SCFG_INTRSTATUS_STAT_SECACCVIO_Pos) /*!< 0x00010000UL*/ 1346 #define DMA_SCFG_INTRSTATUS_STAT_SECACCVIO DMA_SCFG_INTRSTATUS_STAT_SECACCVIO_Msk /*!< STAT_SECACCVIO bit Secure Access Violation Status. Set to '1' when a security violation occurred. Write '1' to clear.*/ 1347 /******************************************************************************/ 1348 /* DMAINFO */ 1349 /******************************************************************************/ 1350 /*************** Field definitions for DMA_BUILDCFG0 register ***************/ 1351 #define DMA_DMA_BUILDCFG0_FRAMETYPE_Pos (0U) 1352 #define DMA_DMA_BUILDCFG0_FRAMETYPE_Msk (0x7UL << DMA_DMA_BUILDCFG0_FRAMETYPE_Pos) /*!< 0x00000007UL*/ 1353 #define DMA_DMA_BUILDCFG0_FRAMETYPE DMA_DMA_BUILDCFG0_FRAMETYPE_Msk /*!< FRAMETYPE[ 2:0] bits Register Frame Type. 1354 - 000: Combined Frame, 1355 - 001: Security Configuration Frame, 1356 - 010: Secure Control Frame, or if TrustZone not implemented, Control Frame. 1357 - 011: Non-Secure Control Frame, 1358 - 100: DMA Channel Frame. 1359 Note that each frame replicates the Information fields.*/ 1360 #define DMA_DMA_BUILDCFG0_FRAMETYPE_0 (0x1UL << DMA_DMA_BUILDCFG0_FRAMETYPE_Pos) /*!< 0x00000001UL*/ 1361 #define DMA_DMA_BUILDCFG0_FRAMETYPE_1 (0x2UL << DMA_DMA_BUILDCFG0_FRAMETYPE_Pos) /*!< 0x00000002UL*/ 1362 #define DMA_DMA_BUILDCFG0_FRAMETYPE_2 (0x4UL << DMA_DMA_BUILDCFG0_FRAMETYPE_Pos) /*!< 0x00000004UL*/ 1363 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos (4U) 1364 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_Msk (0x3FUL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x000003F0UL*/ 1365 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS DMA_DMA_BUILDCFG0_NUM_CHANNELS_Msk /*!< NUM_CHANNELS[ 5:0] bits Number of Channels + 1 supported by the DMAC*/ 1366 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_0 (0x1UL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x00000010UL*/ 1367 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_1 (0x2UL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x00000020UL*/ 1368 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_2 (0x4UL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x00000040UL*/ 1369 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_3 (0x8UL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x00000080UL*/ 1370 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_4 (0x10UL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x00000100UL*/ 1371 #define DMA_DMA_BUILDCFG0_NUM_CHANNELS_5 (0x20UL << DMA_DMA_BUILDCFG0_NUM_CHANNELS_Pos) /*!< 0x00000200UL*/ 1372 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos (10U) 1373 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_Msk (0x3FUL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x0000FC00UL*/ 1374 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH DMA_DMA_BUILDCFG0_ADDR_WIDTH_Msk /*!< ADDR_WIDTH[ 5:0] bits Address Width in bits = ADDR_WIDTH + 1*/ 1375 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_0 (0x1UL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00000400UL*/ 1376 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_1 (0x2UL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00000800UL*/ 1377 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_2 (0x4UL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00001000UL*/ 1378 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_3 (0x8UL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00002000UL*/ 1379 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_4 (0x10UL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00004000UL*/ 1380 #define DMA_DMA_BUILDCFG0_ADDR_WIDTH_5 (0x20UL << DMA_DMA_BUILDCFG0_ADDR_WIDTH_Pos) /*!< 0x00008000UL*/ 1381 #define DMA_DMA_BUILDCFG0_DATA_WIDTH_Pos (16U) 1382 #define DMA_DMA_BUILDCFG0_DATA_WIDTH_Msk (0x7UL << DMA_DMA_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x00070000UL*/ 1383 #define DMA_DMA_BUILDCFG0_DATA_WIDTH DMA_DMA_BUILDCFG0_DATA_WIDTH_Msk /*!< DATA_WIDTH[ 2:0] bits Data Width. 1384 - 000: 8-bit 1385 - 001: 16-bit 1386 - 010: 32-bit 1387 - 011: 64-bit 1388 - 100: 128-bit 1389 - 101: 256-bit 1390 - 110: 512-bit 1391 - 111: 1024-bit*/ 1392 #define DMA_DMA_BUILDCFG0_DATA_WIDTH_0 (0x1UL << DMA_DMA_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x00010000UL*/ 1393 #define DMA_DMA_BUILDCFG0_DATA_WIDTH_1 (0x2UL << DMA_DMA_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x00020000UL*/ 1394 #define DMA_DMA_BUILDCFG0_DATA_WIDTH_2 (0x4UL << DMA_DMA_BUILDCFG0_DATA_WIDTH_Pos) /*!< 0x00040000UL*/ 1395 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos (20U) 1396 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_Msk (0x1FUL << DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos) /*!< 0x01F00000UL*/ 1397 #define DMA_DMA_BUILDCFG0_CHID_WIDTH DMA_DMA_BUILDCFG0_CHID_WIDTH_Msk /*!< CHID_WIDTH[ 4:0] bits Channel ID Width. '0' means CHID is not present.*/ 1398 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_0 (0x1UL << DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos) /*!< 0x00100000UL*/ 1399 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_1 (0x2UL << DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos) /*!< 0x00200000UL*/ 1400 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_2 (0x4UL << DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos) /*!< 0x00400000UL*/ 1401 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_3 (0x8UL << DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos) /*!< 0x00800000UL*/ 1402 #define DMA_DMA_BUILDCFG0_CHID_WIDTH_4 (0x10UL << DMA_DMA_BUILDCFG0_CHID_WIDTH_Pos) /*!< 0x01000000UL*/ 1403 /*************** Field definitions for DMA_BUILDCFG1 register ***************/ 1404 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos (0U) 1405 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Msk (0x1FFUL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x000001FFUL*/ 1406 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Msk /*!< NUM_TRIGGER_IN[ 8:0] bits Number of Triggers Inputs. '0' means that no input triggers are present.*/ 1407 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_0 (0x1UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000001UL*/ 1408 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_1 (0x2UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000002UL*/ 1409 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_2 (0x4UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000004UL*/ 1410 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_3 (0x8UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000008UL*/ 1411 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_4 (0x10UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000010UL*/ 1412 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_5 (0x20UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000020UL*/ 1413 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_6 (0x40UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000040UL*/ 1414 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_7 (0x80UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000080UL*/ 1415 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_8 (0x100UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_IN_Pos) /*!< 0x00000100UL*/ 1416 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos (9U) 1417 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Msk (0x7FUL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x0000FE00UL*/ 1418 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Msk /*!< NUM_TRIGGER_OUT[ 6:0] bits Number of Triggers Outputs. '0' means that no output triggers are present.*/ 1419 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_0 (0x1UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00000200UL*/ 1420 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_1 (0x2UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00000400UL*/ 1421 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_2 (0x4UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00000800UL*/ 1422 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_3 (0x8UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00001000UL*/ 1423 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_4 (0x10UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00002000UL*/ 1424 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_5 (0x20UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00004000UL*/ 1425 #define DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_6 (0x40UL << DMA_DMA_BUILDCFG1_NUM_TRIGGER_OUT_Pos) /*!< 0x00008000UL*/ 1426 #define DMA_DMA_BUILDCFG1_HAS_TRIGSEL_Pos (16U) 1427 #define DMA_DMA_BUILDCFG1_HAS_TRIGSEL_Msk (0x1UL << DMA_DMA_BUILDCFG1_HAS_TRIGSEL_Pos) /*!< 0x00010000UL*/ 1428 #define DMA_DMA_BUILDCFG1_HAS_TRIGSEL DMA_DMA_BUILDCFG1_HAS_TRIGSEL_Msk /*!< HAS_TRIGSEL bit Has Selectable Trigger Support*/ 1429 /*************** Field definitions for DMA_BUILDCFG2 register ***************/ 1430 #define DMA_DMA_BUILDCFG2_HAS_GPOSEL_Pos (7U) 1431 #define DMA_DMA_BUILDCFG2_HAS_GPOSEL_Msk (0x1UL << DMA_DMA_BUILDCFG2_HAS_GPOSEL_Pos) /*!< 0x00000080UL*/ 1432 #define DMA_DMA_BUILDCFG2_HAS_GPOSEL DMA_DMA_BUILDCFG2_HAS_GPOSEL_Msk /*!< HAS_GPOSEL bit Has Shared and hence Selectable GPO Support.*/ 1433 #define DMA_DMA_BUILDCFG2_HAS_TZ_Pos (8U) 1434 #define DMA_DMA_BUILDCFG2_HAS_TZ_Msk (0x1UL << DMA_DMA_BUILDCFG2_HAS_TZ_Pos) /*!< 0x00000100UL*/ 1435 #define DMA_DMA_BUILDCFG2_HAS_TZ DMA_DMA_BUILDCFG2_HAS_TZ_Msk /*!< HAS_TZ bit Has TrustZone Support*/ 1436 #define DMA_DMA_BUILDCFG2_HAS_RET_Pos (9U) 1437 #define DMA_DMA_BUILDCFG2_HAS_RET_Msk (0x1UL << DMA_DMA_BUILDCFG2_HAS_RET_Pos) /*!< 0x00000200UL*/ 1438 #define DMA_DMA_BUILDCFG2_HAS_RET DMA_DMA_BUILDCFG2_HAS_RET_Msk /*!< HAS_RET bit Has Retention Support*/ 1439 /******************* Field definitions for IIDR register ********************/ 1440 #define DMA_IIDR_IMPLEMENTER_Pos (0U) 1441 #define DMA_IIDR_IMPLEMENTER_Msk (0xFFFUL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000FFFUL*/ 1442 #define DMA_IIDR_IMPLEMENTER DMA_IIDR_IMPLEMENTER_Msk /*!< IMPLEMENTER[11:0] bits Contains the JEP106 code of the company that implemented the IP: 1443 - [11:8]: JEP106 continuation code of implementer. 1444 - [7]: Always 0. 1445 - [6:0]: JEP106 identity code of implementer. 1446 For Arm this field reads as 0x43B.*/ 1447 #define DMA_IIDR_IMPLEMENTER_0 (0x1UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000001UL*/ 1448 #define DMA_IIDR_IMPLEMENTER_1 (0x2UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000002UL*/ 1449 #define DMA_IIDR_IMPLEMENTER_2 (0x4UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000004UL*/ 1450 #define DMA_IIDR_IMPLEMENTER_3 (0x8UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000008UL*/ 1451 #define DMA_IIDR_IMPLEMENTER_4 (0x10UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000010UL*/ 1452 #define DMA_IIDR_IMPLEMENTER_5 (0x20UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000020UL*/ 1453 #define DMA_IIDR_IMPLEMENTER_6 (0x40UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000040UL*/ 1454 #define DMA_IIDR_IMPLEMENTER_7 (0x80UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000080UL*/ 1455 #define DMA_IIDR_IMPLEMENTER_8 (0x100UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000100UL*/ 1456 #define DMA_IIDR_IMPLEMENTER_9 (0x200UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000200UL*/ 1457 #define DMA_IIDR_IMPLEMENTER_10 (0x400UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000400UL*/ 1458 #define DMA_IIDR_IMPLEMENTER_11 (0x800UL << DMA_IIDR_IMPLEMENTER_Pos) /*!< 0x00000800UL*/ 1459 #define DMA_IIDR_REVISION_Pos (12U) 1460 #define DMA_IIDR_REVISION_Msk (0xFUL << DMA_IIDR_REVISION_Pos) /*!< 0x0000F000UL*/ 1461 #define DMA_IIDR_REVISION DMA_IIDR_REVISION_Msk /*!< REVISION[ 3:0] bits Indicates the minor revision of the product rxpy identifier*/ 1462 #define DMA_IIDR_REVISION_0 (0x1UL << DMA_IIDR_REVISION_Pos) /*!< 0x00001000UL*/ 1463 #define DMA_IIDR_REVISION_1 (0x2UL << DMA_IIDR_REVISION_Pos) /*!< 0x00002000UL*/ 1464 #define DMA_IIDR_REVISION_2 (0x4UL << DMA_IIDR_REVISION_Pos) /*!< 0x00004000UL*/ 1465 #define DMA_IIDR_REVISION_3 (0x8UL << DMA_IIDR_REVISION_Pos) /*!< 0x00008000UL*/ 1466 #define DMA_IIDR_VARIANT_Pos (16U) 1467 #define DMA_IIDR_VARIANT_Msk (0xFUL << DMA_IIDR_VARIANT_Pos) /*!< 0x000F0000UL*/ 1468 #define DMA_IIDR_VARIANT DMA_IIDR_VARIANT_Msk /*!< VARIANT[ 3:0] bits Indicates the major revision, or variant, of the product rxpy identifier*/ 1469 #define DMA_IIDR_VARIANT_0 (0x1UL << DMA_IIDR_VARIANT_Pos) /*!< 0x00010000UL*/ 1470 #define DMA_IIDR_VARIANT_1 (0x2UL << DMA_IIDR_VARIANT_Pos) /*!< 0x00020000UL*/ 1471 #define DMA_IIDR_VARIANT_2 (0x4UL << DMA_IIDR_VARIANT_Pos) /*!< 0x00040000UL*/ 1472 #define DMA_IIDR_VARIANT_3 (0x8UL << DMA_IIDR_VARIANT_Pos) /*!< 0x00080000UL*/ 1473 #define DMA_IIDR_PRODUCTID_Pos (20U) 1474 #define DMA_IIDR_PRODUCTID_Msk (0xFFFUL << DMA_IIDR_PRODUCTID_Pos) /*!< 0xFFF00000UL*/ 1475 #define DMA_IIDR_PRODUCTID DMA_IIDR_PRODUCTID_Msk /*!< PRODUCTID[11:0] bits Indicates the product ID*/ 1476 #define DMA_IIDR_PRODUCTID_0 (0x1UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x00100000UL*/ 1477 #define DMA_IIDR_PRODUCTID_1 (0x2UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x00200000UL*/ 1478 #define DMA_IIDR_PRODUCTID_2 (0x4UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x00400000UL*/ 1479 #define DMA_IIDR_PRODUCTID_3 (0x8UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x00800000UL*/ 1480 #define DMA_IIDR_PRODUCTID_4 (0x10UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x01000000UL*/ 1481 #define DMA_IIDR_PRODUCTID_5 (0x20UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x02000000UL*/ 1482 #define DMA_IIDR_PRODUCTID_6 (0x40UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x04000000UL*/ 1483 #define DMA_IIDR_PRODUCTID_7 (0x80UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x08000000UL*/ 1484 #define DMA_IIDR_PRODUCTID_8 (0x100UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x10000000UL*/ 1485 #define DMA_IIDR_PRODUCTID_9 (0x200UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x20000000UL*/ 1486 #define DMA_IIDR_PRODUCTID_10 (0x400UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x40000000UL*/ 1487 #define DMA_IIDR_PRODUCTID_11 (0x800UL << DMA_IIDR_PRODUCTID_Pos) /*!< 0x80000000UL*/ 1488 /******************* Field definitions for AIDR register ********************/ 1489 #define DMA_AIDR_ARCH_MINOR_REV_Pos (0U) 1490 #define DMA_AIDR_ARCH_MINOR_REV_Msk (0xFUL << DMA_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x0000000FUL*/ 1491 #define DMA_AIDR_ARCH_MINOR_REV DMA_AIDR_ARCH_MINOR_REV_Msk /*!< ARCH_MINOR_REV[ 3:0] bits Architecture Minor Revision.*/ 1492 #define DMA_AIDR_ARCH_MINOR_REV_0 (0x1UL << DMA_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000001UL*/ 1493 #define DMA_AIDR_ARCH_MINOR_REV_1 (0x2UL << DMA_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000002UL*/ 1494 #define DMA_AIDR_ARCH_MINOR_REV_2 (0x4UL << DMA_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000004UL*/ 1495 #define DMA_AIDR_ARCH_MINOR_REV_3 (0x8UL << DMA_AIDR_ARCH_MINOR_REV_Pos) /*!< 0x00000008UL*/ 1496 #define DMA_AIDR_ARCH_MAJOR_REV_Pos (4U) 1497 #define DMA_AIDR_ARCH_MAJOR_REV_Msk (0xFUL << DMA_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x000000F0UL*/ 1498 #define DMA_AIDR_ARCH_MAJOR_REV DMA_AIDR_ARCH_MAJOR_REV_Msk /*!< ARCH_MAJOR_REV[ 3:0] bits Architecture Major Revision.*/ 1499 #define DMA_AIDR_ARCH_MAJOR_REV_0 (0x1UL << DMA_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000010UL*/ 1500 #define DMA_AIDR_ARCH_MAJOR_REV_1 (0x2UL << DMA_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000020UL*/ 1501 #define DMA_AIDR_ARCH_MAJOR_REV_2 (0x4UL << DMA_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000040UL*/ 1502 #define DMA_AIDR_ARCH_MAJOR_REV_3 (0x8UL << DMA_AIDR_ARCH_MAJOR_REV_Pos) /*!< 0x00000080UL*/ 1503 /******************* Field definitions for PIDR4 register *******************/ 1504 #define DMA_PIDR4_DES_2_Pos (0U) 1505 #define DMA_PIDR4_DES_2_Msk (0xFUL << DMA_PIDR4_DES_2_Pos) /*!< 0x0000000FUL*/ 1506 #define DMA_PIDR4_DES_2 DMA_PIDR4_DES_2_Msk /*!< DES_2[ 3:0] bits JEP106 Continuation Code*/ 1507 #define DMA_PIDR4_DES_2_0 (0x1UL << DMA_PIDR4_DES_2_Pos) /*!< 0x00000001UL*/ 1508 #define DMA_PIDR4_DES_2_1 (0x2UL << DMA_PIDR4_DES_2_Pos) /*!< 0x00000002UL*/ 1509 #define DMA_PIDR4_DES_2_2 (0x4UL << DMA_PIDR4_DES_2_Pos) /*!< 0x00000004UL*/ 1510 #define DMA_PIDR4_DES_2_3 (0x8UL << DMA_PIDR4_DES_2_Pos) /*!< 0x00000008UL*/ 1511 #define DMA_PIDR4_SIZE_Pos (4U) 1512 #define DMA_PIDR4_SIZE_Msk (0xFUL << DMA_PIDR4_SIZE_Pos) /*!< 0x000000F0UL*/ 1513 #define DMA_PIDR4_SIZE DMA_PIDR4_SIZE_Msk /*!< SIZE[ 3:0] bits 4KB Count - the number of 4K pages used. 1514 - 0x00: 4K 1515 - 0x01: 8K 1516 - 0x02: 16K 1517 - 0x03: 32K*/ 1518 #define DMA_PIDR4_SIZE_0 (0x1UL << DMA_PIDR4_SIZE_Pos) /*!< 0x00000010UL*/ 1519 #define DMA_PIDR4_SIZE_1 (0x2UL << DMA_PIDR4_SIZE_Pos) /*!< 0x00000020UL*/ 1520 #define DMA_PIDR4_SIZE_2 (0x4UL << DMA_PIDR4_SIZE_Pos) /*!< 0x00000040UL*/ 1521 #define DMA_PIDR4_SIZE_3 (0x8UL << DMA_PIDR4_SIZE_Pos) /*!< 0x00000080UL*/ 1522 /******************* Field definitions for PIDR0 register *******************/ 1523 #define DMA_PIDR0_PART_0_Pos (0U) 1524 #define DMA_PIDR0_PART_0_Msk (0xFFUL << DMA_PIDR0_PART_0_Pos) /*!< 0x000000FFUL*/ 1525 #define DMA_PIDR0_PART_0 DMA_PIDR0_PART_0_Msk /*!< PART_0[ 7:0] bits Part Number [7:0]*/ 1526 #define DMA_PIDR0_PART_0_0 (0x1UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000001UL*/ 1527 #define DMA_PIDR0_PART_0_1 (0x2UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000002UL*/ 1528 #define DMA_PIDR0_PART_0_2 (0x4UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000004UL*/ 1529 #define DMA_PIDR0_PART_0_3 (0x8UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000008UL*/ 1530 #define DMA_PIDR0_PART_0_4 (0x10UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000010UL*/ 1531 #define DMA_PIDR0_PART_0_5 (0x20UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000020UL*/ 1532 #define DMA_PIDR0_PART_0_6 (0x40UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000040UL*/ 1533 #define DMA_PIDR0_PART_0_7 (0x80UL << DMA_PIDR0_PART_0_Pos) /*!< 0x00000080UL*/ 1534 /******************* Field definitions for PIDR1 register *******************/ 1535 #define DMA_PIDR1_PART_1_Pos (0U) 1536 #define DMA_PIDR1_PART_1_Msk (0xFUL << DMA_PIDR1_PART_1_Pos) /*!< 0x0000000FUL*/ 1537 #define DMA_PIDR1_PART_1 DMA_PIDR1_PART_1_Msk /*!< PART_1[ 3:0] bits Part Number [11:8].*/ 1538 #define DMA_PIDR1_PART_1_0 (0x1UL << DMA_PIDR1_PART_1_Pos) /*!< 0x00000001UL*/ 1539 #define DMA_PIDR1_PART_1_1 (0x2UL << DMA_PIDR1_PART_1_Pos) /*!< 0x00000002UL*/ 1540 #define DMA_PIDR1_PART_1_2 (0x4UL << DMA_PIDR1_PART_1_Pos) /*!< 0x00000004UL*/ 1541 #define DMA_PIDR1_PART_1_3 (0x8UL << DMA_PIDR1_PART_1_Pos) /*!< 0x00000008UL*/ 1542 #define DMA_PIDR1_DES_0_Pos (4U) 1543 #define DMA_PIDR1_DES_0_Msk (0xFUL << DMA_PIDR1_DES_0_Pos) /*!< 0x000000F0UL*/ 1544 #define DMA_PIDR1_DES_0 DMA_PIDR1_DES_0_Msk /*!< DES_0[ 3:0] bits JEP106 Identity Code [3:0]*/ 1545 #define DMA_PIDR1_DES_0_0 (0x1UL << DMA_PIDR1_DES_0_Pos) /*!< 0x00000010UL*/ 1546 #define DMA_PIDR1_DES_0_1 (0x2UL << DMA_PIDR1_DES_0_Pos) /*!< 0x00000020UL*/ 1547 #define DMA_PIDR1_DES_0_2 (0x4UL << DMA_PIDR1_DES_0_Pos) /*!< 0x00000040UL*/ 1548 #define DMA_PIDR1_DES_0_3 (0x8UL << DMA_PIDR1_DES_0_Pos) /*!< 0x00000080UL*/ 1549 /******************* Field definitions for PIDR2 register *******************/ 1550 #define DMA_PIDR2_DES_1_Pos (0U) 1551 #define DMA_PIDR2_DES_1_Msk (0x7UL << DMA_PIDR2_DES_1_Pos) /*!< 0x00000007UL*/ 1552 #define DMA_PIDR2_DES_1 DMA_PIDR2_DES_1_Msk /*!< DES_1[ 2:0] bits JEP106 Identity Code [6:4]*/ 1553 #define DMA_PIDR2_DES_1_0 (0x1UL << DMA_PIDR2_DES_1_Pos) /*!< 0x00000001UL*/ 1554 #define DMA_PIDR2_DES_1_1 (0x2UL << DMA_PIDR2_DES_1_Pos) /*!< 0x00000002UL*/ 1555 #define DMA_PIDR2_DES_1_2 (0x4UL << DMA_PIDR2_DES_1_Pos) /*!< 0x00000004UL*/ 1556 #define DMA_PIDR2_JEDEC_Pos (3U) 1557 #define DMA_PIDR2_JEDEC_Msk (0x1UL << DMA_PIDR2_JEDEC_Pos) /*!< 0x00000008UL*/ 1558 #define DMA_PIDR2_JEDEC DMA_PIDR2_JEDEC_Msk /*!< JEDEC bit JEDEC*/ 1559 #define DMA_PIDR2_REVISION_Pos (4U) 1560 #define DMA_PIDR2_REVISION_Msk (0xFUL << DMA_PIDR2_REVISION_Pos) /*!< 0x000000F0UL*/ 1561 #define DMA_PIDR2_REVISION DMA_PIDR2_REVISION_Msk /*!< REVISION[ 3:0] bits Revision Code*/ 1562 #define DMA_PIDR2_REVISION_0 (0x1UL << DMA_PIDR2_REVISION_Pos) /*!< 0x00000010UL*/ 1563 #define DMA_PIDR2_REVISION_1 (0x2UL << DMA_PIDR2_REVISION_Pos) /*!< 0x00000020UL*/ 1564 #define DMA_PIDR2_REVISION_2 (0x4UL << DMA_PIDR2_REVISION_Pos) /*!< 0x00000040UL*/ 1565 #define DMA_PIDR2_REVISION_3 (0x8UL << DMA_PIDR2_REVISION_Pos) /*!< 0x00000080UL*/ 1566 /******************* Field definitions for PIDR3 register *******************/ 1567 #define DMA_PIDR3_CMOD_Pos (0U) 1568 #define DMA_PIDR3_CMOD_Msk (0xFUL << DMA_PIDR3_CMOD_Pos) /*!< 0x0000000FUL*/ 1569 #define DMA_PIDR3_CMOD DMA_PIDR3_CMOD_Msk /*!< CMOD[ 3:0] bits Customer Modified*/ 1570 #define DMA_PIDR3_CMOD_0 (0x1UL << DMA_PIDR3_CMOD_Pos) /*!< 0x00000001UL*/ 1571 #define DMA_PIDR3_CMOD_1 (0x2UL << DMA_PIDR3_CMOD_Pos) /*!< 0x00000002UL*/ 1572 #define DMA_PIDR3_CMOD_2 (0x4UL << DMA_PIDR3_CMOD_Pos) /*!< 0x00000004UL*/ 1573 #define DMA_PIDR3_CMOD_3 (0x8UL << DMA_PIDR3_CMOD_Pos) /*!< 0x00000008UL*/ 1574 #define DMA_PIDR3_REVAND_Pos (4U) 1575 #define DMA_PIDR3_REVAND_Msk (0xFUL << DMA_PIDR3_REVAND_Pos) /*!< 0x000000F0UL*/ 1576 #define DMA_PIDR3_REVAND DMA_PIDR3_REVAND_Msk /*!< REVAND[ 3:0] bits Manufacturer revision number*/ 1577 #define DMA_PIDR3_REVAND_0 (0x1UL << DMA_PIDR3_REVAND_Pos) /*!< 0x00000010UL*/ 1578 #define DMA_PIDR3_REVAND_1 (0x2UL << DMA_PIDR3_REVAND_Pos) /*!< 0x00000020UL*/ 1579 #define DMA_PIDR3_REVAND_2 (0x4UL << DMA_PIDR3_REVAND_Pos) /*!< 0x00000040UL*/ 1580 #define DMA_PIDR3_REVAND_3 (0x8UL << DMA_PIDR3_REVAND_Pos) /*!< 0x00000080UL*/ 1581 /******************* Field definitions for CIDR0 register *******************/ 1582 #define DMA_CIDR0_PRMBL_0_Pos (0U) 1583 #define DMA_CIDR0_PRMBL_0_Msk (0xFFUL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x000000FFUL*/ 1584 #define DMA_CIDR0_PRMBL_0 DMA_CIDR0_PRMBL_0_Msk /*!< PRMBL_0[ 7:0] bits Preamble*/ 1585 #define DMA_CIDR0_PRMBL_0_0 (0x1UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000001UL*/ 1586 #define DMA_CIDR0_PRMBL_0_1 (0x2UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000002UL*/ 1587 #define DMA_CIDR0_PRMBL_0_2 (0x4UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000004UL*/ 1588 #define DMA_CIDR0_PRMBL_0_3 (0x8UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000008UL*/ 1589 #define DMA_CIDR0_PRMBL_0_4 (0x10UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000010UL*/ 1590 #define DMA_CIDR0_PRMBL_0_5 (0x20UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000020UL*/ 1591 #define DMA_CIDR0_PRMBL_0_6 (0x40UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000040UL*/ 1592 #define DMA_CIDR0_PRMBL_0_7 (0x80UL << DMA_CIDR0_PRMBL_0_Pos) /*!< 0x00000080UL*/ 1593 /******************* Field definitions for CIDR1 register *******************/ 1594 #define DMA_CIDR1_PRMBL_1_Pos (0U) 1595 #define DMA_CIDR1_PRMBL_1_Msk (0xFUL << DMA_CIDR1_PRMBL_1_Pos) /*!< 0x0000000FUL*/ 1596 #define DMA_CIDR1_PRMBL_1 DMA_CIDR1_PRMBL_1_Msk /*!< PRMBL_1[ 3:0] bits Preamble*/ 1597 #define DMA_CIDR1_PRMBL_1_0 (0x1UL << DMA_CIDR1_PRMBL_1_Pos) /*!< 0x00000001UL*/ 1598 #define DMA_CIDR1_PRMBL_1_1 (0x2UL << DMA_CIDR1_PRMBL_1_Pos) /*!< 0x00000002UL*/ 1599 #define DMA_CIDR1_PRMBL_1_2 (0x4UL << DMA_CIDR1_PRMBL_1_Pos) /*!< 0x00000004UL*/ 1600 #define DMA_CIDR1_PRMBL_1_3 (0x8UL << DMA_CIDR1_PRMBL_1_Pos) /*!< 0x00000008UL*/ 1601 #define DMA_CIDR1_CLASS_Pos (4U) 1602 #define DMA_CIDR1_CLASS_Msk (0xFUL << DMA_CIDR1_CLASS_Pos) /*!< 0x000000F0UL*/ 1603 #define DMA_CIDR1_CLASS DMA_CIDR1_CLASS_Msk /*!< CLASS[ 3:0] bits Component class*/ 1604 #define DMA_CIDR1_CLASS_0 (0x1UL << DMA_CIDR1_CLASS_Pos) /*!< 0x00000010UL*/ 1605 #define DMA_CIDR1_CLASS_1 (0x2UL << DMA_CIDR1_CLASS_Pos) /*!< 0x00000020UL*/ 1606 #define DMA_CIDR1_CLASS_2 (0x4UL << DMA_CIDR1_CLASS_Pos) /*!< 0x00000040UL*/ 1607 #define DMA_CIDR1_CLASS_3 (0x8UL << DMA_CIDR1_CLASS_Pos) /*!< 0x00000080UL*/ 1608 /******************* Field definitions for CIDR2 register *******************/ 1609 #define DMA_CIDR2_PRMBL_2_Pos (0U) 1610 #define DMA_CIDR2_PRMBL_2_Msk (0xFFUL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x000000FFUL*/ 1611 #define DMA_CIDR2_PRMBL_2 DMA_CIDR2_PRMBL_2_Msk /*!< PRMBL_2[ 7:0] bits Preamble*/ 1612 #define DMA_CIDR2_PRMBL_2_0 (0x1UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000001UL*/ 1613 #define DMA_CIDR2_PRMBL_2_1 (0x2UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000002UL*/ 1614 #define DMA_CIDR2_PRMBL_2_2 (0x4UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000004UL*/ 1615 #define DMA_CIDR2_PRMBL_2_3 (0x8UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000008UL*/ 1616 #define DMA_CIDR2_PRMBL_2_4 (0x10UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000010UL*/ 1617 #define DMA_CIDR2_PRMBL_2_5 (0x20UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000020UL*/ 1618 #define DMA_CIDR2_PRMBL_2_6 (0x40UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000040UL*/ 1619 #define DMA_CIDR2_PRMBL_2_7 (0x80UL << DMA_CIDR2_PRMBL_2_Pos) /*!< 0x00000080UL*/ 1620 /******************* Field definitions for CIDR3 register *******************/ 1621 #define DMA_CIDR3_PRMBL_3_Pos (0U) 1622 #define DMA_CIDR3_PRMBL_3_Msk (0xFFUL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x000000FFUL*/ 1623 #define DMA_CIDR3_PRMBL_3 DMA_CIDR3_PRMBL_3_Msk /*!< PRMBL_3[ 7:0] bits Preamble*/ 1624 #define DMA_CIDR3_PRMBL_3_0 (0x1UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000001UL*/ 1625 #define DMA_CIDR3_PRMBL_3_1 (0x2UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000002UL*/ 1626 #define DMA_CIDR3_PRMBL_3_2 (0x4UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000004UL*/ 1627 #define DMA_CIDR3_PRMBL_3_3 (0x8UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000008UL*/ 1628 #define DMA_CIDR3_PRMBL_3_4 (0x10UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000010UL*/ 1629 #define DMA_CIDR3_PRMBL_3_5 (0x20UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000020UL*/ 1630 #define DMA_CIDR3_PRMBL_3_6 (0x40UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000040UL*/ 1631 #define DMA_CIDR3_PRMBL_3_7 (0x80UL << DMA_CIDR3_PRMBL_3_Pos) /*!< 0x00000080UL*/ 1632 1633 #endif /* __DMA350_REGDEF_H */ 1634