1 /**
2  * \file
3  *
4  * \brief Component description for PDCA
5  *
6  * Copyright (c) 2016 Atmel Corporation,
7  *                    a wholly owned subsidiary of Microchip Technology Inc.
8  *
9  * \asf_license_start
10  *
11  * \page License
12  *
13  * Licensed under the Apache License, Version 2.0 (the "License");
14  * you may not use this file except in compliance with the License.
15  * You may obtain a copy of the Licence at
16  *
17  *     http://www.apache.org/licenses/LICENSE-2.0
18  *
19  * Unless required by applicable law or agreed to in writing, software
20  * distributed under the License is distributed on an "AS IS" BASIS,
21  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22  * See the License for the specific language governing permissions and
23  * limitations under the License.
24  *
25  * \asf_license_stop
26  *
27  */
28 
29 #ifndef _SAM4L_PDCA_COMPONENT_
30 #define _SAM4L_PDCA_COMPONENT_
31 
32 /* ========================================================================== */
33 /**  SOFTWARE API DEFINITION FOR PDCA */
34 /* ========================================================================== */
35 /** \addtogroup SAM4L_PDCA Peripheral DMA Controller */
36 /*@{*/
37 
38 #define PDCA_I7514
39 #define REV_PDCA                    0x124
40 
41 /* -------- PDCA_MAR : (PDCA Offset: 0x000) (R/W 32) channel Memory Address Register -------- */
42 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
43 typedef union {
44   struct {
45     uint32_t MADDR:32;         /*!< bit:  0..31  Memory Address                     */
46   } bit;                       /*!< Structure used for bit  access                  */
47   uint32_t reg;                /*!< Type      used for register access              */
48 } PDCA_MAR_Type;
49 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
50 
51 #define PDCA_MAR_OFFSET             0x000        /**< \brief (PDCA_MAR offset) Memory Address Register */
52 #define PDCA_MAR_RESETVALUE         _U_(0x00000000); /**< \brief (PDCA_MAR reset_value) Memory Address Register */
53 
54 #define PDCA_MAR_MADDR_Pos          0            /**< \brief (PDCA_MAR) Memory Address */
55 #define PDCA_MAR_MADDR_Msk          (_U_(0xFFFFFFFF) << PDCA_MAR_MADDR_Pos)
56 #define PDCA_MAR_MADDR(value)       (PDCA_MAR_MADDR_Msk & ((value) << PDCA_MAR_MADDR_Pos))
57 #define PDCA_MAR_MASK               _U_(0xFFFFFFFF) /**< \brief (PDCA_MAR) MASK Register */
58 
59 /* -------- PDCA_PSR : (PDCA Offset: 0x004) (R/W 32) channel Peripheral Select Register -------- */
60 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
61 typedef union {
62   struct {
63     uint32_t PID:8;            /*!< bit:  0.. 7  Peripheral Identifier              */
64     uint32_t :24;              /*!< bit:  8..31  Reserved                           */
65   } bit;                       /*!< Structure used for bit  access                  */
66   uint32_t reg;                /*!< Type      used for register access              */
67 } PDCA_PSR_Type;
68 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
69 
70 #define PDCA_PSR_OFFSET             0x004        /**< \brief (PDCA_PSR offset) Peripheral Select Register */
71 
72 #define PDCA_PSR_PID_Pos            0            /**< \brief (PDCA_PSR) Peripheral Identifier */
73 #define PDCA_PSR_PID_Msk            (_U_(0xFF) << PDCA_PSR_PID_Pos)
74 #define PDCA_PSR_PID(value)         (PDCA_PSR_PID_Msk & ((value) << PDCA_PSR_PID_Pos))
75 #define PDCA_PSR_MASK               _U_(0x000000FF) /**< \brief (PDCA_PSR) MASK Register */
76 
77 /* -------- PDCA_TCR : (PDCA Offset: 0x008) (R/W 32) channel Transfer Counter Register -------- */
78 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
79 typedef union {
80   struct {
81     uint32_t TCV:16;           /*!< bit:  0..15  Transfer Counter Value             */
82     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
83   } bit;                       /*!< Structure used for bit  access                  */
84   uint32_t reg;                /*!< Type      used for register access              */
85 } PDCA_TCR_Type;
86 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
87 
88 #define PDCA_TCR_OFFSET             0x008        /**< \brief (PDCA_TCR offset) Transfer Counter Register */
89 #define PDCA_TCR_RESETVALUE         _U_(0x00000000); /**< \brief (PDCA_TCR reset_value) Transfer Counter Register */
90 
91 #define PDCA_TCR_TCV_Pos            0            /**< \brief (PDCA_TCR) Transfer Counter Value */
92 #define PDCA_TCR_TCV_Msk            (_U_(0xFFFF) << PDCA_TCR_TCV_Pos)
93 #define PDCA_TCR_TCV(value)         (PDCA_TCR_TCV_Msk & ((value) << PDCA_TCR_TCV_Pos))
94 #define PDCA_TCR_MASK               _U_(0x0000FFFF) /**< \brief (PDCA_TCR) MASK Register */
95 
96 /* -------- PDCA_MARR : (PDCA Offset: 0x00C) (R/W 32) channel Memory Address Reload Register -------- */
97 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
98 typedef union {
99   struct {
100     uint32_t MARV:32;          /*!< bit:  0..31  Memory Address Reload Value        */
101   } bit;                       /*!< Structure used for bit  access                  */
102   uint32_t reg;                /*!< Type      used for register access              */
103 } PDCA_MARR_Type;
104 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
105 
106 #define PDCA_MARR_OFFSET            0x00C        /**< \brief (PDCA_MARR offset) Memory Address Reload Register */
107 #define PDCA_MARR_RESETVALUE        _U_(0x00000000); /**< \brief (PDCA_MARR reset_value) Memory Address Reload Register */
108 
109 #define PDCA_MARR_MARV_Pos          0            /**< \brief (PDCA_MARR) Memory Address Reload Value */
110 #define PDCA_MARR_MARV_Msk          (_U_(0xFFFFFFFF) << PDCA_MARR_MARV_Pos)
111 #define PDCA_MARR_MARV(value)       (PDCA_MARR_MARV_Msk & ((value) << PDCA_MARR_MARV_Pos))
112 #define PDCA_MARR_MASK              _U_(0xFFFFFFFF) /**< \brief (PDCA_MARR) MASK Register */
113 
114 /* -------- PDCA_TCRR : (PDCA Offset: 0x010) (R/W 32) channel Transfer Counter Reload Register -------- */
115 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
116 typedef union {
117   struct {
118     uint32_t TCRV:16;          /*!< bit:  0..15  Transfer Counter Reload Value      */
119     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
120   } bit;                       /*!< Structure used for bit  access                  */
121   uint32_t reg;                /*!< Type      used for register access              */
122 } PDCA_TCRR_Type;
123 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
124 
125 #define PDCA_TCRR_OFFSET            0x010        /**< \brief (PDCA_TCRR offset) Transfer Counter Reload Register */
126 #define PDCA_TCRR_RESETVALUE        _U_(0x00000000); /**< \brief (PDCA_TCRR reset_value) Transfer Counter Reload Register */
127 
128 #define PDCA_TCRR_TCRV_Pos          0            /**< \brief (PDCA_TCRR) Transfer Counter Reload Value */
129 #define PDCA_TCRR_TCRV_Msk          (_U_(0xFFFF) << PDCA_TCRR_TCRV_Pos)
130 #define PDCA_TCRR_TCRV(value)       (PDCA_TCRR_TCRV_Msk & ((value) << PDCA_TCRR_TCRV_Pos))
131 #define PDCA_TCRR_MASK              _U_(0x0000FFFF) /**< \brief (PDCA_TCRR) MASK Register */
132 
133 /* -------- PDCA_CR : (PDCA Offset: 0x014) ( /W 32) channel Control Register -------- */
134 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
135 typedef union {
136   struct {
137     uint32_t TEN:1;            /*!< bit:      0  Transfer Enable                    */
138     uint32_t TDIS:1;           /*!< bit:      1  Transfer Disable                   */
139     uint32_t :6;               /*!< bit:  2.. 7  Reserved                           */
140     uint32_t ECLR:1;           /*!< bit:      8  Error Clear                        */
141     uint32_t :23;              /*!< bit:  9..31  Reserved                           */
142   } bit;                       /*!< Structure used for bit  access                  */
143   uint32_t reg;                /*!< Type      used for register access              */
144 } PDCA_CR_Type;
145 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
146 
147 #define PDCA_CR_OFFSET              0x014        /**< \brief (PDCA_CR offset) Control Register */
148 #define PDCA_CR_RESETVALUE          _U_(0x00000000); /**< \brief (PDCA_CR reset_value) Control Register */
149 
150 #define PDCA_CR_TEN_Pos             0            /**< \brief (PDCA_CR) Transfer Enable */
151 #define PDCA_CR_TEN                 (_U_(0x1) << PDCA_CR_TEN_Pos)
152 #define PDCA_CR_TDIS_Pos            1            /**< \brief (PDCA_CR) Transfer Disable */
153 #define PDCA_CR_TDIS                (_U_(0x1) << PDCA_CR_TDIS_Pos)
154 #define PDCA_CR_ECLR_Pos            8            /**< \brief (PDCA_CR) Error Clear */
155 #define PDCA_CR_ECLR                (_U_(0x1) << PDCA_CR_ECLR_Pos)
156 #define PDCA_CR_MASK                _U_(0x00000103) /**< \brief (PDCA_CR) MASK Register */
157 
158 /* -------- PDCA_MR : (PDCA Offset: 0x018) (R/W 32) channel Mode Register -------- */
159 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
160 typedef union {
161   struct {
162     uint32_t SIZE:2;           /*!< bit:  0.. 1  Transfer size                      */
163     uint32_t ETRIG:1;          /*!< bit:      2  Event trigger                      */
164     uint32_t RING:1;           /*!< bit:      3  Ring Buffer                        */
165     uint32_t :28;              /*!< bit:  4..31  Reserved                           */
166   } bit;                       /*!< Structure used for bit  access                  */
167   uint32_t reg;                /*!< Type      used for register access              */
168 } PDCA_MR_Type;
169 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
170 
171 #define PDCA_MR_OFFSET              0x018        /**< \brief (PDCA_MR offset) Mode Register */
172 #define PDCA_MR_RESETVALUE          _U_(0x00000000); /**< \brief (PDCA_MR reset_value) Mode Register */
173 
174 #define PDCA_MR_SIZE_Pos            0            /**< \brief (PDCA_MR) Transfer size */
175 #define PDCA_MR_SIZE_Msk            (_U_(0x3) << PDCA_MR_SIZE_Pos)
176 #define PDCA_MR_SIZE(value)         (PDCA_MR_SIZE_Msk & ((value) << PDCA_MR_SIZE_Pos))
177 #define   PDCA_MR_SIZE_BYTE_Val           _U_(0x0)   /**< \brief (PDCA_MR)  */
178 #define   PDCA_MR_SIZE_HALF_WORD_Val      _U_(0x1)   /**< \brief (PDCA_MR)  */
179 #define   PDCA_MR_SIZE_WORD_Val           _U_(0x2)   /**< \brief (PDCA_MR)  */
180 #define PDCA_MR_SIZE_BYTE           (PDCA_MR_SIZE_BYTE_Val         << PDCA_MR_SIZE_Pos)
181 #define PDCA_MR_SIZE_HALF_WORD      (PDCA_MR_SIZE_HALF_WORD_Val    << PDCA_MR_SIZE_Pos)
182 #define PDCA_MR_SIZE_WORD           (PDCA_MR_SIZE_WORD_Val         << PDCA_MR_SIZE_Pos)
183 #define PDCA_MR_ETRIG_Pos           2            /**< \brief (PDCA_MR) Event trigger */
184 #define PDCA_MR_ETRIG               (_U_(0x1) << PDCA_MR_ETRIG_Pos)
185 #define PDCA_MR_RING_Pos            3            /**< \brief (PDCA_MR) Ring Buffer */
186 #define PDCA_MR_RING                (_U_(0x1) << PDCA_MR_RING_Pos)
187 #define PDCA_MR_MASK                _U_(0x0000000F) /**< \brief (PDCA_MR) MASK Register */
188 
189 /* -------- PDCA_SR : (PDCA Offset: 0x01C) (R/  32) channel Status Register -------- */
190 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
191 typedef union {
192   struct {
193     uint32_t TEN:1;            /*!< bit:      0  Transfer Enabled                   */
194     uint32_t :31;              /*!< bit:  1..31  Reserved                           */
195   } bit;                       /*!< Structure used for bit  access                  */
196   uint32_t reg;                /*!< Type      used for register access              */
197 } PDCA_SR_Type;
198 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
199 
200 #define PDCA_SR_OFFSET              0x01C        /**< \brief (PDCA_SR offset) Status Register */
201 #define PDCA_SR_RESETVALUE          _U_(0x00000000); /**< \brief (PDCA_SR reset_value) Status Register */
202 
203 #define PDCA_SR_TEN_Pos             0            /**< \brief (PDCA_SR) Transfer Enabled */
204 #define PDCA_SR_TEN                 (_U_(0x1) << PDCA_SR_TEN_Pos)
205 #define PDCA_SR_MASK                _U_(0x00000001) /**< \brief (PDCA_SR) MASK Register */
206 
207 /* -------- PDCA_IER : (PDCA Offset: 0x020) ( /W 32) channel Interrupt Enable Register -------- */
208 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
209 typedef union {
210   struct {
211     uint32_t RCZ:1;            /*!< bit:      0  Reload Counter Zero                */
212     uint32_t TRC:1;            /*!< bit:      1  Transfer Complete                  */
213     uint32_t TERR:1;           /*!< bit:      2  Transfer Error                     */
214     uint32_t :29;              /*!< bit:  3..31  Reserved                           */
215   } bit;                       /*!< Structure used for bit  access                  */
216   uint32_t reg;                /*!< Type      used for register access              */
217 } PDCA_IER_Type;
218 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
219 
220 #define PDCA_IER_OFFSET             0x020        /**< \brief (PDCA_IER offset) Interrupt Enable Register */
221 #define PDCA_IER_RESETVALUE         _U_(0x00000000); /**< \brief (PDCA_IER reset_value) Interrupt Enable Register */
222 
223 #define PDCA_IER_RCZ_Pos            0            /**< \brief (PDCA_IER) Reload Counter Zero */
224 #define PDCA_IER_RCZ                (_U_(0x1) << PDCA_IER_RCZ_Pos)
225 #define PDCA_IER_TRC_Pos            1            /**< \brief (PDCA_IER) Transfer Complete */
226 #define PDCA_IER_TRC                (_U_(0x1) << PDCA_IER_TRC_Pos)
227 #define PDCA_IER_TERR_Pos           2            /**< \brief (PDCA_IER) Transfer Error */
228 #define PDCA_IER_TERR               (_U_(0x1) << PDCA_IER_TERR_Pos)
229 #define PDCA_IER_MASK               _U_(0x00000007) /**< \brief (PDCA_IER) MASK Register */
230 
231 /* -------- PDCA_IDR : (PDCA Offset: 0x024) ( /W 32) channel Interrupt Disable Register -------- */
232 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
233 typedef union {
234   struct {
235     uint32_t RCZ:1;            /*!< bit:      0  Reload Counter Zero                */
236     uint32_t TRC:1;            /*!< bit:      1  Transfer Complete                  */
237     uint32_t TERR:1;           /*!< bit:      2  Transfer Error                     */
238     uint32_t :29;              /*!< bit:  3..31  Reserved                           */
239   } bit;                       /*!< Structure used for bit  access                  */
240   uint32_t reg;                /*!< Type      used for register access              */
241 } PDCA_IDR_Type;
242 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
243 
244 #define PDCA_IDR_OFFSET             0x024        /**< \brief (PDCA_IDR offset) Interrupt Disable Register */
245 #define PDCA_IDR_RESETVALUE         _U_(0x00000000); /**< \brief (PDCA_IDR reset_value) Interrupt Disable Register */
246 
247 #define PDCA_IDR_RCZ_Pos            0            /**< \brief (PDCA_IDR) Reload Counter Zero */
248 #define PDCA_IDR_RCZ                (_U_(0x1) << PDCA_IDR_RCZ_Pos)
249 #define PDCA_IDR_TRC_Pos            1            /**< \brief (PDCA_IDR) Transfer Complete */
250 #define PDCA_IDR_TRC                (_U_(0x1) << PDCA_IDR_TRC_Pos)
251 #define PDCA_IDR_TERR_Pos           2            /**< \brief (PDCA_IDR) Transfer Error */
252 #define PDCA_IDR_TERR               (_U_(0x1) << PDCA_IDR_TERR_Pos)
253 #define PDCA_IDR_MASK               _U_(0x00000007) /**< \brief (PDCA_IDR) MASK Register */
254 
255 /* -------- PDCA_IMR : (PDCA Offset: 0x028) (R/  32) channel Interrupt Mask Register -------- */
256 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
257 typedef union {
258   struct {
259     uint32_t RCZ:1;            /*!< bit:      0  Reload Counter Zero                */
260     uint32_t TRC:1;            /*!< bit:      1  Transfer Complete                  */
261     uint32_t TERR:1;           /*!< bit:      2  Transfer Error                     */
262     uint32_t :29;              /*!< bit:  3..31  Reserved                           */
263   } bit;                       /*!< Structure used for bit  access                  */
264   uint32_t reg;                /*!< Type      used for register access              */
265 } PDCA_IMR_Type;
266 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
267 
268 #define PDCA_IMR_OFFSET             0x028        /**< \brief (PDCA_IMR offset) Interrupt Mask Register */
269 #define PDCA_IMR_RESETVALUE         _U_(0x00000000); /**< \brief (PDCA_IMR reset_value) Interrupt Mask Register */
270 
271 #define PDCA_IMR_RCZ_Pos            0            /**< \brief (PDCA_IMR) Reload Counter Zero */
272 #define PDCA_IMR_RCZ                (_U_(0x1) << PDCA_IMR_RCZ_Pos)
273 #define PDCA_IMR_TRC_Pos            1            /**< \brief (PDCA_IMR) Transfer Complete */
274 #define PDCA_IMR_TRC                (_U_(0x1) << PDCA_IMR_TRC_Pos)
275 #define PDCA_IMR_TERR_Pos           2            /**< \brief (PDCA_IMR) Transfer Error */
276 #define PDCA_IMR_TERR               (_U_(0x1) << PDCA_IMR_TERR_Pos)
277 #define PDCA_IMR_MASK               _U_(0x00000007) /**< \brief (PDCA_IMR) MASK Register */
278 
279 /* -------- PDCA_ISR : (PDCA Offset: 0x02C) (R/  32) channel Interrupt Status Register -------- */
280 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
281 typedef union {
282   struct {
283     uint32_t RCZ:1;            /*!< bit:      0  Reload Counter Zero                */
284     uint32_t TRC:1;            /*!< bit:      1  Transfer Complete                  */
285     uint32_t TERR:1;           /*!< bit:      2  Transfer Error                     */
286     uint32_t :29;              /*!< bit:  3..31  Reserved                           */
287   } bit;                       /*!< Structure used for bit  access                  */
288   uint32_t reg;                /*!< Type      used for register access              */
289 } PDCA_ISR_Type;
290 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
291 
292 #define PDCA_ISR_OFFSET             0x02C        /**< \brief (PDCA_ISR offset) Interrupt Status Register */
293 #define PDCA_ISR_RESETVALUE         _U_(0x00000000); /**< \brief (PDCA_ISR reset_value) Interrupt Status Register */
294 
295 #define PDCA_ISR_RCZ_Pos            0            /**< \brief (PDCA_ISR) Reload Counter Zero */
296 #define PDCA_ISR_RCZ                (_U_(0x1) << PDCA_ISR_RCZ_Pos)
297 #define PDCA_ISR_TRC_Pos            1            /**< \brief (PDCA_ISR) Transfer Complete */
298 #define PDCA_ISR_TRC                (_U_(0x1) << PDCA_ISR_TRC_Pos)
299 #define PDCA_ISR_TERR_Pos           2            /**< \brief (PDCA_ISR) Transfer Error */
300 #define PDCA_ISR_TERR               (_U_(0x1) << PDCA_ISR_TERR_Pos)
301 #define PDCA_ISR_MASK               _U_(0x00000007) /**< \brief (PDCA_ISR) MASK Register */
302 
303 /* -------- PDCA_PCONTROL : (PDCA Offset: 0x800) (R/W 32) Performance Control Register -------- */
304 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
305 typedef union {
306   struct {
307     uint32_t CH0EN:1;          /*!< bit:      0  Channel 0 Enabled                  */
308     uint32_t CH1EN:1;          /*!< bit:      1  Channel 1 Enabled.                 */
309     uint32_t :2;               /*!< bit:  2.. 3  Reserved                           */
310     uint32_t CH0OF:1;          /*!< bit:      4  Channel 0 Overflow Freeze          */
311     uint32_t CH1OF:1;          /*!< bit:      5  Channel 1 overflow freeze          */
312     uint32_t :2;               /*!< bit:  6.. 7  Reserved                           */
313     uint32_t CH0RES:1;         /*!< bit:      8  Channel 0 counter reset            */
314     uint32_t CH1RES:1;         /*!< bit:      9  Channel 1 counter reset            */
315     uint32_t :6;               /*!< bit: 10..15  Reserved                           */
316     uint32_t MON0CH:6;         /*!< bit: 16..21  PDCA Channel to monitor with counter 0 */
317     uint32_t :2;               /*!< bit: 22..23  Reserved                           */
318     uint32_t MON1CH:6;         /*!< bit: 24..29  PDCA Channel to monitor with counter 1 */
319     uint32_t :2;               /*!< bit: 30..31  Reserved                           */
320   } bit;                       /*!< Structure used for bit  access                  */
321   uint32_t reg;                /*!< Type      used for register access              */
322 } PDCA_PCONTROL_Type;
323 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
324 
325 #define PDCA_PCONTROL_OFFSET        0x800        /**< \brief (PDCA_PCONTROL offset) Performance Control Register */
326 #define PDCA_PCONTROL_RESETVALUE    _U_(0x00000000); /**< \brief (PDCA_PCONTROL reset_value) Performance Control Register */
327 
328 #define PDCA_PCONTROL_CH0EN_Pos     0            /**< \brief (PDCA_PCONTROL) Channel 0 Enabled */
329 #define PDCA_PCONTROL_CH0EN         (_U_(0x1) << PDCA_PCONTROL_CH0EN_Pos)
330 #define PDCA_PCONTROL_CH1EN_Pos     1            /**< \brief (PDCA_PCONTROL) Channel 1 Enabled. */
331 #define PDCA_PCONTROL_CH1EN         (_U_(0x1) << PDCA_PCONTROL_CH1EN_Pos)
332 #define PDCA_PCONTROL_CH0OF_Pos     4            /**< \brief (PDCA_PCONTROL) Channel 0 Overflow Freeze */
333 #define PDCA_PCONTROL_CH0OF         (_U_(0x1) << PDCA_PCONTROL_CH0OF_Pos)
334 #define PDCA_PCONTROL_CH1OF_Pos     5            /**< \brief (PDCA_PCONTROL) Channel 1 overflow freeze */
335 #define PDCA_PCONTROL_CH1OF         (_U_(0x1) << PDCA_PCONTROL_CH1OF_Pos)
336 #define PDCA_PCONTROL_CH0RES_Pos    8            /**< \brief (PDCA_PCONTROL) Channel 0 counter reset */
337 #define PDCA_PCONTROL_CH0RES        (_U_(0x1) << PDCA_PCONTROL_CH0RES_Pos)
338 #define PDCA_PCONTROL_CH1RES_Pos    9            /**< \brief (PDCA_PCONTROL) Channel 1 counter reset */
339 #define PDCA_PCONTROL_CH1RES        (_U_(0x1) << PDCA_PCONTROL_CH1RES_Pos)
340 #define PDCA_PCONTROL_MON0CH_Pos    16           /**< \brief (PDCA_PCONTROL) PDCA Channel to monitor with counter 0 */
341 #define PDCA_PCONTROL_MON0CH_Msk    (_U_(0x3F) << PDCA_PCONTROL_MON0CH_Pos)
342 #define PDCA_PCONTROL_MON0CH(value) (PDCA_PCONTROL_MON0CH_Msk & ((value) << PDCA_PCONTROL_MON0CH_Pos))
343 #define PDCA_PCONTROL_MON1CH_Pos    24           /**< \brief (PDCA_PCONTROL) PDCA Channel to monitor with counter 1 */
344 #define PDCA_PCONTROL_MON1CH_Msk    (_U_(0x3F) << PDCA_PCONTROL_MON1CH_Pos)
345 #define PDCA_PCONTROL_MON1CH(value) (PDCA_PCONTROL_MON1CH_Msk & ((value) << PDCA_PCONTROL_MON1CH_Pos))
346 #define PDCA_PCONTROL_MASK          _U_(0x3F3F0333) /**< \brief (PDCA_PCONTROL) MASK Register */
347 
348 /* -------- PDCA_PRDATA0 : (PDCA Offset: 0x804) (R/  32) Channel 0 Read Data Cycles -------- */
349 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
350 typedef union {
351   struct {
352     uint32_t DATA:32;          /*!< bit:  0..31  Data Cycles Counted Since Last reset */
353   } bit;                       /*!< Structure used for bit  access                  */
354   uint32_t reg;                /*!< Type      used for register access              */
355 } PDCA_PRDATA0_Type;
356 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
357 
358 #define PDCA_PRDATA0_OFFSET         0x804        /**< \brief (PDCA_PRDATA0 offset) Channel 0 Read Data Cycles */
359 #define PDCA_PRDATA0_RESETVALUE     _U_(0x00000000); /**< \brief (PDCA_PRDATA0 reset_value) Channel 0 Read Data Cycles */
360 
361 #define PDCA_PRDATA0_DATA_Pos       0            /**< \brief (PDCA_PRDATA0) Data Cycles Counted Since Last reset */
362 #define PDCA_PRDATA0_DATA_Msk       (_U_(0xFFFFFFFF) << PDCA_PRDATA0_DATA_Pos)
363 #define PDCA_PRDATA0_DATA(value)    (PDCA_PRDATA0_DATA_Msk & ((value) << PDCA_PRDATA0_DATA_Pos))
364 #define PDCA_PRDATA0_MASK           _U_(0xFFFFFFFF) /**< \brief (PDCA_PRDATA0) MASK Register */
365 
366 /* -------- PDCA_PRSTALL0 : (PDCA Offset: 0x808) (R/  32) Channel 0 Read Stall Cycles -------- */
367 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
368 typedef union {
369   struct {
370     uint32_t STALL:32;         /*!< bit:  0..31  Stall Cycles counted since last reset */
371   } bit;                       /*!< Structure used for bit  access                  */
372   uint32_t reg;                /*!< Type      used for register access              */
373 } PDCA_PRSTALL0_Type;
374 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
375 
376 #define PDCA_PRSTALL0_OFFSET        0x808        /**< \brief (PDCA_PRSTALL0 offset) Channel 0 Read Stall Cycles */
377 #define PDCA_PRSTALL0_RESETVALUE    _U_(0x00000000); /**< \brief (PDCA_PRSTALL0 reset_value) Channel 0 Read Stall Cycles */
378 
379 #define PDCA_PRSTALL0_STALL_Pos     0            /**< \brief (PDCA_PRSTALL0) Stall Cycles counted since last reset */
380 #define PDCA_PRSTALL0_STALL_Msk     (_U_(0xFFFFFFFF) << PDCA_PRSTALL0_STALL_Pos)
381 #define PDCA_PRSTALL0_STALL(value)  (PDCA_PRSTALL0_STALL_Msk & ((value) << PDCA_PRSTALL0_STALL_Pos))
382 #define PDCA_PRSTALL0_MASK          _U_(0xFFFFFFFF) /**< \brief (PDCA_PRSTALL0) MASK Register */
383 
384 /* -------- PDCA_PRLAT0 : (PDCA Offset: 0x80C) (R/  32) Channel 0 Read Max Latency -------- */
385 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
386 typedef union {
387   struct {
388     uint32_t LAT:16;           /*!< bit:  0..15  Maximum Transfer Initiation cycles counted since last reset */
389     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
390   } bit;                       /*!< Structure used for bit  access                  */
391   uint32_t reg;                /*!< Type      used for register access              */
392 } PDCA_PRLAT0_Type;
393 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
394 
395 #define PDCA_PRLAT0_OFFSET          0x80C        /**< \brief (PDCA_PRLAT0 offset) Channel 0 Read Max Latency */
396 #define PDCA_PRLAT0_RESETVALUE      _U_(0x00000000); /**< \brief (PDCA_PRLAT0 reset_value) Channel 0 Read Max Latency */
397 
398 #define PDCA_PRLAT0_LAT_Pos         0            /**< \brief (PDCA_PRLAT0) Maximum Transfer Initiation cycles counted since last reset */
399 #define PDCA_PRLAT0_LAT_Msk         (_U_(0xFFFF) << PDCA_PRLAT0_LAT_Pos)
400 #define PDCA_PRLAT0_LAT(value)      (PDCA_PRLAT0_LAT_Msk & ((value) << PDCA_PRLAT0_LAT_Pos))
401 #define PDCA_PRLAT0_MASK            _U_(0x0000FFFF) /**< \brief (PDCA_PRLAT0) MASK Register */
402 
403 /* -------- PDCA_PWDATA0 : (PDCA Offset: 0x810) (R/  32) Channel 0 Write Data Cycles -------- */
404 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
405 typedef union {
406   struct {
407     uint32_t DATA:32;          /*!< bit:  0..31  Data Cycles Counted since last Reset */
408   } bit;                       /*!< Structure used for bit  access                  */
409   uint32_t reg;                /*!< Type      used for register access              */
410 } PDCA_PWDATA0_Type;
411 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
412 
413 #define PDCA_PWDATA0_OFFSET         0x810        /**< \brief (PDCA_PWDATA0 offset) Channel 0 Write Data Cycles */
414 #define PDCA_PWDATA0_RESETVALUE     _U_(0x00000000); /**< \brief (PDCA_PWDATA0 reset_value) Channel 0 Write Data Cycles */
415 
416 #define PDCA_PWDATA0_DATA_Pos       0            /**< \brief (PDCA_PWDATA0) Data Cycles Counted since last Reset */
417 #define PDCA_PWDATA0_DATA_Msk       (_U_(0xFFFFFFFF) << PDCA_PWDATA0_DATA_Pos)
418 #define PDCA_PWDATA0_DATA(value)    (PDCA_PWDATA0_DATA_Msk & ((value) << PDCA_PWDATA0_DATA_Pos))
419 #define PDCA_PWDATA0_MASK           _U_(0xFFFFFFFF) /**< \brief (PDCA_PWDATA0) MASK Register */
420 
421 /* -------- PDCA_PWSTALL0 : (PDCA Offset: 0x814) (R/  32) Channel 0 Write Stall Cycles -------- */
422 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
423 typedef union {
424   struct {
425     uint32_t STALL:32;         /*!< bit:  0..31  Stall cycles counted since last reset */
426   } bit;                       /*!< Structure used for bit  access                  */
427   uint32_t reg;                /*!< Type      used for register access              */
428 } PDCA_PWSTALL0_Type;
429 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
430 
431 #define PDCA_PWSTALL0_OFFSET        0x814        /**< \brief (PDCA_PWSTALL0 offset) Channel 0 Write Stall Cycles */
432 #define PDCA_PWSTALL0_RESETVALUE    _U_(0x00000000); /**< \brief (PDCA_PWSTALL0 reset_value) Channel 0 Write Stall Cycles */
433 
434 #define PDCA_PWSTALL0_STALL_Pos     0            /**< \brief (PDCA_PWSTALL0) Stall cycles counted since last reset */
435 #define PDCA_PWSTALL0_STALL_Msk     (_U_(0xFFFFFFFF) << PDCA_PWSTALL0_STALL_Pos)
436 #define PDCA_PWSTALL0_STALL(value)  (PDCA_PWSTALL0_STALL_Msk & ((value) << PDCA_PWSTALL0_STALL_Pos))
437 #define PDCA_PWSTALL0_MASK          _U_(0xFFFFFFFF) /**< \brief (PDCA_PWSTALL0) MASK Register */
438 
439 /* -------- PDCA_PWLAT0 : (PDCA Offset: 0x818) (R/  32) Channel0 Write Max Latency -------- */
440 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
441 typedef union {
442   struct {
443     uint32_t LAT:16;           /*!< bit:  0..15  Maximum transfer initiation cycles counted since last reset */
444     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
445   } bit;                       /*!< Structure used for bit  access                  */
446   uint32_t reg;                /*!< Type      used for register access              */
447 } PDCA_PWLAT0_Type;
448 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
449 
450 #define PDCA_PWLAT0_OFFSET          0x818        /**< \brief (PDCA_PWLAT0 offset) Channel0 Write Max Latency */
451 #define PDCA_PWLAT0_RESETVALUE      _U_(0x00000000); /**< \brief (PDCA_PWLAT0 reset_value) Channel0 Write Max Latency */
452 
453 #define PDCA_PWLAT0_LAT_Pos         0            /**< \brief (PDCA_PWLAT0) Maximum transfer initiation cycles counted since last reset */
454 #define PDCA_PWLAT0_LAT_Msk         (_U_(0xFFFF) << PDCA_PWLAT0_LAT_Pos)
455 #define PDCA_PWLAT0_LAT(value)      (PDCA_PWLAT0_LAT_Msk & ((value) << PDCA_PWLAT0_LAT_Pos))
456 #define PDCA_PWLAT0_MASK            _U_(0x0000FFFF) /**< \brief (PDCA_PWLAT0) MASK Register */
457 
458 /* -------- PDCA_PRDATA1 : (PDCA Offset: 0x81C) (R/  32) Channel 1 Read Data Cycles -------- */
459 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
460 typedef union {
461   struct {
462     uint32_t DATA:32;          /*!< bit:  0..31  Data Cycles Counted Since Last reset */
463   } bit;                       /*!< Structure used for bit  access                  */
464   uint32_t reg;                /*!< Type      used for register access              */
465 } PDCA_PRDATA1_Type;
466 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
467 
468 #define PDCA_PRDATA1_OFFSET         0x81C        /**< \brief (PDCA_PRDATA1 offset) Channel 1 Read Data Cycles */
469 #define PDCA_PRDATA1_RESETVALUE     _U_(0x00000000); /**< \brief (PDCA_PRDATA1 reset_value) Channel 1 Read Data Cycles */
470 
471 #define PDCA_PRDATA1_DATA_Pos       0            /**< \brief (PDCA_PRDATA1) Data Cycles Counted Since Last reset */
472 #define PDCA_PRDATA1_DATA_Msk       (_U_(0xFFFFFFFF) << PDCA_PRDATA1_DATA_Pos)
473 #define PDCA_PRDATA1_DATA(value)    (PDCA_PRDATA1_DATA_Msk & ((value) << PDCA_PRDATA1_DATA_Pos))
474 #define PDCA_PRDATA1_MASK           _U_(0xFFFFFFFF) /**< \brief (PDCA_PRDATA1) MASK Register */
475 
476 /* -------- PDCA_PRSTALL1 : (PDCA Offset: 0x820) (R/  32) Channel Read Stall Cycles -------- */
477 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
478 typedef union {
479   struct {
480     uint32_t STALL:32;         /*!< bit:  0..31  Stall Cycles Counted since last reset */
481   } bit;                       /*!< Structure used for bit  access                  */
482   uint32_t reg;                /*!< Type      used for register access              */
483 } PDCA_PRSTALL1_Type;
484 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
485 
486 #define PDCA_PRSTALL1_OFFSET        0x820        /**< \brief (PDCA_PRSTALL1 offset) Channel Read Stall Cycles */
487 #define PDCA_PRSTALL1_RESETVALUE    _U_(0x00000000); /**< \brief (PDCA_PRSTALL1 reset_value) Channel Read Stall Cycles */
488 
489 #define PDCA_PRSTALL1_STALL_Pos     0            /**< \brief (PDCA_PRSTALL1) Stall Cycles Counted since last reset */
490 #define PDCA_PRSTALL1_STALL_Msk     (_U_(0xFFFFFFFF) << PDCA_PRSTALL1_STALL_Pos)
491 #define PDCA_PRSTALL1_STALL(value)  (PDCA_PRSTALL1_STALL_Msk & ((value) << PDCA_PRSTALL1_STALL_Pos))
492 #define PDCA_PRSTALL1_MASK          _U_(0xFFFFFFFF) /**< \brief (PDCA_PRSTALL1) MASK Register */
493 
494 /* -------- PDCA_PRLAT1 : (PDCA Offset: 0x824) (R/  32) Channel 1 Read Max Latency -------- */
495 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
496 typedef union {
497   struct {
498     uint32_t LAT:16;           /*!< bit:  0..15  Maximum Transfer initiation cycles counted since last reset */
499     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
500   } bit;                       /*!< Structure used for bit  access                  */
501   uint32_t reg;                /*!< Type      used for register access              */
502 } PDCA_PRLAT1_Type;
503 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
504 
505 #define PDCA_PRLAT1_OFFSET          0x824        /**< \brief (PDCA_PRLAT1 offset) Channel 1 Read Max Latency */
506 #define PDCA_PRLAT1_RESETVALUE      _U_(0x00000000); /**< \brief (PDCA_PRLAT1 reset_value) Channel 1 Read Max Latency */
507 
508 #define PDCA_PRLAT1_LAT_Pos         0            /**< \brief (PDCA_PRLAT1) Maximum Transfer initiation cycles counted since last reset */
509 #define PDCA_PRLAT1_LAT_Msk         (_U_(0xFFFF) << PDCA_PRLAT1_LAT_Pos)
510 #define PDCA_PRLAT1_LAT(value)      (PDCA_PRLAT1_LAT_Msk & ((value) << PDCA_PRLAT1_LAT_Pos))
511 #define PDCA_PRLAT1_MASK            _U_(0x0000FFFF) /**< \brief (PDCA_PRLAT1) MASK Register */
512 
513 /* -------- PDCA_PWDATA1 : (PDCA Offset: 0x828) (R/  32) Channel 1 Write Data Cycles -------- */
514 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
515 typedef union {
516   struct {
517     uint32_t DATA:32;          /*!< bit:  0..31  Data cycles Counted Since last reset */
518   } bit;                       /*!< Structure used for bit  access                  */
519   uint32_t reg;                /*!< Type      used for register access              */
520 } PDCA_PWDATA1_Type;
521 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
522 
523 #define PDCA_PWDATA1_OFFSET         0x828        /**< \brief (PDCA_PWDATA1 offset) Channel 1 Write Data Cycles */
524 #define PDCA_PWDATA1_RESETVALUE     _U_(0x00000000); /**< \brief (PDCA_PWDATA1 reset_value) Channel 1 Write Data Cycles */
525 
526 #define PDCA_PWDATA1_DATA_Pos       0            /**< \brief (PDCA_PWDATA1) Data cycles Counted Since last reset */
527 #define PDCA_PWDATA1_DATA_Msk       (_U_(0xFFFFFFFF) << PDCA_PWDATA1_DATA_Pos)
528 #define PDCA_PWDATA1_DATA(value)    (PDCA_PWDATA1_DATA_Msk & ((value) << PDCA_PWDATA1_DATA_Pos))
529 #define PDCA_PWDATA1_MASK           _U_(0xFFFFFFFF) /**< \brief (PDCA_PWDATA1) MASK Register */
530 
531 /* -------- PDCA_PWSTALL1 : (PDCA Offset: 0x82C) (R/  32) Channel 1 Write stall Cycles -------- */
532 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
533 typedef union {
534   struct {
535     uint32_t STALL:32;         /*!< bit:  0..31  Stall cycles counted since last reset */
536   } bit;                       /*!< Structure used for bit  access                  */
537   uint32_t reg;                /*!< Type      used for register access              */
538 } PDCA_PWSTALL1_Type;
539 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
540 
541 #define PDCA_PWSTALL1_OFFSET        0x82C        /**< \brief (PDCA_PWSTALL1 offset) Channel 1 Write stall Cycles */
542 #define PDCA_PWSTALL1_RESETVALUE    _U_(0x00000000); /**< \brief (PDCA_PWSTALL1 reset_value) Channel 1 Write stall Cycles */
543 
544 #define PDCA_PWSTALL1_STALL_Pos     0            /**< \brief (PDCA_PWSTALL1) Stall cycles counted since last reset */
545 #define PDCA_PWSTALL1_STALL_Msk     (_U_(0xFFFFFFFF) << PDCA_PWSTALL1_STALL_Pos)
546 #define PDCA_PWSTALL1_STALL(value)  (PDCA_PWSTALL1_STALL_Msk & ((value) << PDCA_PWSTALL1_STALL_Pos))
547 #define PDCA_PWSTALL1_MASK          _U_(0xFFFFFFFF) /**< \brief (PDCA_PWSTALL1) MASK Register */
548 
549 /* -------- PDCA_PWLAT1 : (PDCA Offset: 0x830) (R/  32) Channel 1 Read Max Latency -------- */
550 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
551 typedef union {
552   struct {
553     uint32_t LAT:16;           /*!< bit:  0..15  Maximum transfer initiation cycles counted since last reset */
554     uint32_t :16;              /*!< bit: 16..31  Reserved                           */
555   } bit;                       /*!< Structure used for bit  access                  */
556   uint32_t reg;                /*!< Type      used for register access              */
557 } PDCA_PWLAT1_Type;
558 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
559 
560 #define PDCA_PWLAT1_OFFSET          0x830        /**< \brief (PDCA_PWLAT1 offset) Channel 1 Read Max Latency */
561 #define PDCA_PWLAT1_RESETVALUE      _U_(0x00000000); /**< \brief (PDCA_PWLAT1 reset_value) Channel 1 Read Max Latency */
562 
563 #define PDCA_PWLAT1_LAT_Pos         0            /**< \brief (PDCA_PWLAT1) Maximum transfer initiation cycles counted since last reset */
564 #define PDCA_PWLAT1_LAT_Msk         (_U_(0xFFFF) << PDCA_PWLAT1_LAT_Pos)
565 #define PDCA_PWLAT1_LAT(value)      (PDCA_PWLAT1_LAT_Msk & ((value) << PDCA_PWLAT1_LAT_Pos))
566 #define PDCA_PWLAT1_MASK            _U_(0x0000FFFF) /**< \brief (PDCA_PWLAT1) MASK Register */
567 
568 /* -------- PDCA_VERSION : (PDCA Offset: 0x834) (R/  32) Version Register -------- */
569 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
570 typedef union {
571   struct {
572     uint32_t VERSION:12;       /*!< bit:  0..11  Version Number                     */
573     uint32_t :4;               /*!< bit: 12..15  Reserved                           */
574     uint32_t VARIANT:4;        /*!< bit: 16..19  Variant Number                     */
575     uint32_t :12;              /*!< bit: 20..31  Reserved                           */
576   } bit;                       /*!< Structure used for bit  access                  */
577   uint32_t reg;                /*!< Type      used for register access              */
578 } PDCA_VERSION_Type;
579 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
580 
581 #define PDCA_VERSION_OFFSET         0x834        /**< \brief (PDCA_VERSION offset) Version Register */
582 #define PDCA_VERSION_RESETVALUE     _U_(0x00000124); /**< \brief (PDCA_VERSION reset_value) Version Register */
583 
584 #define PDCA_VERSION_VERSION_Pos    0            /**< \brief (PDCA_VERSION) Version Number */
585 #define PDCA_VERSION_VERSION_Msk    (_U_(0xFFF) << PDCA_VERSION_VERSION_Pos)
586 #define PDCA_VERSION_VERSION(value) (PDCA_VERSION_VERSION_Msk & ((value) << PDCA_VERSION_VERSION_Pos))
587 #define PDCA_VERSION_VARIANT_Pos    16           /**< \brief (PDCA_VERSION) Variant Number */
588 #define PDCA_VERSION_VARIANT_Msk    (_U_(0xF) << PDCA_VERSION_VARIANT_Pos)
589 #define PDCA_VERSION_VARIANT(value) (PDCA_VERSION_VARIANT_Msk & ((value) << PDCA_VERSION_VARIANT_Pos))
590 #define PDCA_VERSION_MASK           _U_(0x000F0FFF) /**< \brief (PDCA_VERSION) MASK Register */
591 
592 /** \brief PdcaChannel hardware registers */
593 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
594 typedef union {
595  struct {
596   __IO PDCA_MAR_Type             MAR;         /**< \brief Offset: 0x000 (R/W 32) Memory Address Register */
597   __IO PDCA_PSR_Type             PSR;         /**< \brief Offset: 0x004 (R/W 32) Peripheral Select Register */
598   __IO PDCA_TCR_Type             TCR;         /**< \brief Offset: 0x008 (R/W 32) Transfer Counter Register */
599   __IO PDCA_MARR_Type            MARR;        /**< \brief Offset: 0x00C (R/W 32) Memory Address Reload Register */
600   __IO PDCA_TCRR_Type            TCRR;        /**< \brief Offset: 0x010 (R/W 32) Transfer Counter Reload Register */
601   __O  PDCA_CR_Type              CR;          /**< \brief Offset: 0x014 ( /W 32) Control Register */
602   __IO PDCA_MR_Type              MR;          /**< \brief Offset: 0x018 (R/W 32) Mode Register */
603   __I  PDCA_SR_Type              SR;          /**< \brief Offset: 0x01C (R/  32) Status Register */
604   __O  PDCA_IER_Type             IER;         /**< \brief Offset: 0x020 ( /W 32) Interrupt Enable Register */
605   __O  PDCA_IDR_Type             IDR;         /**< \brief Offset: 0x024 ( /W 32) Interrupt Disable Register */
606   __I  PDCA_IMR_Type             IMR;         /**< \brief Offset: 0x028 (R/  32) Interrupt Mask Register */
607   __I  PDCA_ISR_Type             ISR;         /**< \brief Offset: 0x02C (R/  32) Interrupt Status Register */
608        RoReg8                    Reserved1[0x10];
609  } bf;
610  struct {
611   RwReg   PDCA_MAR;           /**< \brief (PDCA Offset: 0x000) Memory Address Register */
612   RwReg   PDCA_PSR;           /**< \brief (PDCA Offset: 0x004) Peripheral Select Register */
613   RwReg   PDCA_TCR;           /**< \brief (PDCA Offset: 0x008) Transfer Counter Register */
614   RwReg   PDCA_MARR;          /**< \brief (PDCA Offset: 0x00C) Memory Address Reload Register */
615   RwReg   PDCA_TCRR;          /**< \brief (PDCA Offset: 0x010) Transfer Counter Reload Register */
616   WoReg   PDCA_CR;            /**< \brief (PDCA Offset: 0x014) Control Register */
617   RwReg   PDCA_MR;            /**< \brief (PDCA Offset: 0x018) Mode Register */
618   RoReg   PDCA_SR;            /**< \brief (PDCA Offset: 0x01C) Status Register */
619   WoReg   PDCA_IER;           /**< \brief (PDCA Offset: 0x020) Interrupt Enable Register */
620   WoReg   PDCA_IDR;           /**< \brief (PDCA Offset: 0x024) Interrupt Disable Register */
621   RoReg   PDCA_IMR;           /**< \brief (PDCA Offset: 0x028) Interrupt Mask Register */
622   RoReg   PDCA_ISR;           /**< \brief (PDCA Offset: 0x02C) Interrupt Status Register */
623   RoReg8  Reserved2[0x10];
624  } reg;
625 } PdcaChannel;
626 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
627 
628 /** \brief PDCA hardware registers */
629 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
630 typedef struct {
631   __IO uint32_t Channel[16]; /**< \brief Offset: 0x000 PdcaChannel groups [CHANNEL_LENGTH] */
632        RoReg8   Reserved1[0x400];
633   __IO uint32_t PCONTROL;    /**< \brief Offset: 0x800 (R/W 32) Performance Control Register */
634   __I  uint32_t PRDATA0;     /**< \brief Offset: 0x804 (R/  32) Channel 0 Read Data Cycles */
635   __I  uint32_t PRSTALL0;    /**< \brief Offset: 0x808 (R/  32) Channel 0 Read Stall Cycles */
636   __I  uint32_t PRLAT0;      /**< \brief Offset: 0x80C (R/  32) Channel 0 Read Max Latency */
637   __I  uint32_t PWDATA0;     /**< \brief Offset: 0x810 (R/  32) Channel 0 Write Data Cycles */
638   __I  uint32_t PWSTALL0;    /**< \brief Offset: 0x814 (R/  32) Channel 0 Write Stall Cycles */
639   __I  uint32_t PWLAT0;      /**< \brief Offset: 0x818 (R/  32) Channel0 Write Max Latency */
640   __I  uint32_t PRDATA1;     /**< \brief Offset: 0x81C (R/  32) Channel 1 Read Data Cycles */
641   __I  uint32_t PRSTALL1;    /**< \brief Offset: 0x820 (R/  32) Channel Read Stall Cycles */
642   __I  uint32_t PRLAT1;      /**< \brief Offset: 0x824 (R/  32) Channel 1 Read Max Latency */
643   __I  uint32_t PWDATA1;     /**< \brief Offset: 0x828 (R/  32) Channel 1 Write Data Cycles */
644   __I  uint32_t PWSTALL1;    /**< \brief Offset: 0x82C (R/  32) Channel 1 Write stall Cycles */
645   __I  uint32_t PWLAT1;      /**< \brief Offset: 0x830 (R/  32) Channel 1 Read Max Latency */
646   __I  uint32_t VERSION;     /**< \brief Offset: 0x834 (R/  32) Version Register */
647 } Pdca;
648 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
649 
650 /*@}*/
651 
652 #endif /* _SAM4L_PDCA_COMPONENT_ */
653