]> rtime.felk.cvut.cz Git - arc.git/blob - arch/ppc/mpc55xx/drivers/MPC5607B.h
Merge with 3ecb6845e742978827406b7da6f77dc350e6b55b
[arc.git] / arch / ppc / mpc55xx / drivers / MPC5607B.h
1 /**************************************************************************** \r
2  * PROJECT     : MPC5607B\r
3  *               \r
4  * FILE        : MPC5607B_2.01.h\r
5  * \r
6  * DESCRIPTION : This is the header file describing the register\r
7  *               set for MPC5607B\r
8  * \r
9  * COPYRIGHT   :(c) 2011, Freescale  \r
10  * \r
11  * VERSION     : 2.01 \r
12  * DATE        : 3.30.2011 \r
13  * AUTHOR      : r23668\r
14  * HISTORY     : Based Upon Bolero 1M; Version 0.03 header file\r
15  *                          Updated and corrected errors present on B1.5M 01.04.1 \r
16  *                              and have brought up to date and format with B3M. Corrected\r
17  *              LinFlex error.\r
18  * \r
19 *\r
20 * Example instantiation and use:            \r
21 *                                           \r
22 *  <MODULE>.<REGISTER>.B.<BIT> = 1;         \r
23 *  <MODULE>.<REGISTER>.R       = 0x10000000;\r
24 \r
25 *****************************************************************************/\r
26 \r
27 #ifndef _JDP_H_\r
28 #define _JDP_H_\r
29 \r
30 #include "typedefs.h"\r
31 \r
32 #ifdef  __cplusplus\r
33 extern "C" {\r
34 #endif\r
35 \r
36 #ifdef __MWERKS__\r
37 #pragma push\r
38 #pragma ANSI_strict off\r
39 #endif\r
40 \r
41 //#define CUT2\r
42 /****************************************************************************/\r
43 /*                          MODULE : ADC0                                   */\r
44 /****************************************************************************/\r
45     struct ADC0_tag {\r
46 \r
47         union { /* ADC0 Main Configuration Register (Base+0x0000) */\r
48             vuint32_t R;\r
49             struct {                \r
50                 vuint32_t OWREN:1;\r
51                 vuint32_t WLSIDE:1;\r
52                 vuint32_t MODE:1;\r
53                 vuint32_t:4;\r
54                 vuint32_t NSTART:1;\r
55                 vuint32_t:1;\r
56                 vuint32_t JTRGEN:1;\r
57                 vuint32_t JEDGE:1;\r
58                 vuint32_t JSTART:1;\r
59                 vuint32_t:2;\r
60                 vuint32_t CTUEN:1;\r
61                 vuint32_t:8;\r
62                 vuint32_t ADCLKSEL:1;\r
63                 vuint32_t ABORTCHAIN:1;\r
64                 vuint32_t ABORT:1;\r
65                 vuint32_t ACKO:1;\r
66                 vuint32_t:4;                    \r
67                 vuint32_t PWDN:1;                \r
68             } B;\r
69         } MCR;                 \r
70         \r
71         union { /* ADC0 Main Status Register (Base+0x0004) */\r
72             vuint32_t R;\r
73             struct {                \r
74                 vuint32_t:7;\r
75                 vuint32_t NSTART:1;\r
76                 vuint32_t JABORT:1;\r
77                 vuint32_t:2;\r
78                 vuint32_t JSTART:1;\r
79                 vuint32_t:3;\r
80                 vuint32_t CTUSTART:1;\r
81                 vuint32_t CHADDR:7;\r
82                 vuint32_t:3;\r
83                 vuint32_t ACKO:1;\r
84                 vuint32_t:2; \r
85                 vuint32_t ADCSTATUS:3;\r
86             } B;\r
87         } MSR;                 \r
88         \r
89       vuint8_t ADC0_reserved0[8]; /* Reserved 8 bytes (Base+0x0008-0x000F) */\r
90         \r
91         union { /* ADC0 Interrupt Status (Base+0x0010) */\r
92             vuint32_t R;\r
93             struct {\r
94                 vuint32_t:27;\r
95                 vuint32_t EOCTU:1;\r
96                 vuint32_t JEOC:1;\r
97                 vuint32_t JECH:1;\r
98                 vuint32_t EOC:1;\r
99                 vuint32_t ECH:1;\r
100             } B;\r
101         } ISR;                \r
102  \r
103                  \r
104           union { /* ADC0 Channel Pending 0 (Base+0x0014) */\r
105             vuint32_t R; /*      (For precision channels)        */\r
106             struct {\r
107                 vuint32_t EOC_CH31:1;\r
108                 vuint32_t EOC_CH30:1;\r
109                 vuint32_t EOC_CH29:1;\r
110                 vuint32_t EOC_CH28:1;\r
111                 vuint32_t EOC_CH27:1;\r
112                 vuint32_t EOC_CH26:1;\r
113                 vuint32_t EOC_CH25:1;\r
114                 vuint32_t EOC_CH24:1;\r
115                 vuint32_t EOC_CH23:1;\r
116                 vuint32_t EOC_CH22:1;\r
117                 vuint32_t EOC_CH21:1;\r
118                 vuint32_t EOC_CH20:1;\r
119                 vuint32_t EOC_CH19:1;\r
120                 vuint32_t EOC_CH18:1;\r
121                 vuint32_t EOC_CH17:1;\r
122                 vuint32_t EOC_CH16:1;\r
123                 vuint32_t EOC_CH15:1;\r
124                 vuint32_t EOC_CH14:1;\r
125                 vuint32_t EOC_CH13:1;\r
126                 vuint32_t EOC_CH12:1;\r
127                 vuint32_t EOC_CH11:1;\r
128                 vuint32_t EOC_CH10:1;\r
129                 vuint32_t EOC_CH9:1;\r
130                 vuint32_t EOC_CH8:1;\r
131                 vuint32_t EOC_CH7:1;\r
132                 vuint32_t EOC_CH6:1;\r
133                 vuint32_t EOC_CH5:1;\r
134                 vuint32_t EOC_CH4:1;\r
135                 vuint32_t EOC_CH3:1;\r
136                 vuint32_t EOC_CH2:1;\r
137                 vuint32_t EOC_CH1:1;\r
138                 vuint32_t EOC_CH0:1;\r
139             } B;\r
140         } CEOCFR0;         \r
141         \r
142         \r
143           union { /* ADC0 Channel Pending Register 1 (Base+0x0018)*/\r
144             vuint32_t R;\r
145             struct {\r
146                 vuint32_t EOC_CH63:1;\r
147                 vuint32_t EOC_CH62:1;\r
148                 vuint32_t EOC_CH61:1;\r
149                 vuint32_t EOC_CH60:1;\r
150                 vuint32_t EOC_CH59:1;\r
151                 vuint32_t EOC_CH58:1;\r
152                 vuint32_t EOC_CH57:1;\r
153                 vuint32_t EOC_CH56:1;\r
154                 vuint32_t EOC_CH55:1;\r
155                 vuint32_t EOC_CH54:1;\r
156                 vuint32_t EOC_CH53:1;\r
157                 vuint32_t EOC_CH52:1;\r
158                 vuint32_t EOC_CH51:1;\r
159                 vuint32_t EOC_CH50:1;\r
160                 vuint32_t EOC_CH49:1;\r
161                 vuint32_t EOC_CH48:1;\r
162                 vuint32_t EOC_CH47:1;\r
163                 vuint32_t EOC_CH46:1;\r
164                 vuint32_t EOC_CH45:1;\r
165                 vuint32_t EOC_CH44:1;\r
166                 vuint32_t EOC_CH43:1;\r
167                 vuint32_t EOC_CH42:1;\r
168                 vuint32_t EOC_CH41:1;\r
169                 vuint32_t EOC_CH40:1;\r
170                 vuint32_t EOC_CH39:1;\r
171                 vuint32_t EOC_CH38:1;\r
172                 vuint32_t EOC_CH37:1;\r
173                 vuint32_t EOC_CH36:1;\r
174                 vuint32_t EOC_CH35:1;\r
175                 vuint32_t EOC_CH34:1;\r
176                 vuint32_t EOC_CH33:1;\r
177                 vuint32_t EOC_CH32:1;\r
178             } B;\r
179         } CEOCFR1;       \r
180         \r
181                 union { /* ADC0 Channel Pending 2 (Base+0x001C) */\r
182                         vuint32_t R; /*      (For external mux'd Channels)   */\r
183                         struct {\r
184                                 vuint32_t EOC_CH95:1;\r
185                                 vuint32_t EOC_CH94:1;\r
186                                 vuint32_t EOC_CH93:1;\r
187                                 vuint32_t EOC_CH92:1;\r
188                                 vuint32_t EOC_CH91:1;\r
189                                 vuint32_t EOC_CH90:1;\r
190                                 vuint32_t EOC_CH89:1;\r
191                                 vuint32_t EOC_CH88:1;\r
192                                 vuint32_t EOC_CH87:1;\r
193                                 vuint32_t EOC_CH86:1;\r
194                                 vuint32_t EOC_CH85:1;\r
195                                 vuint32_t EOC_CH84:1;\r
196                                 vuint32_t EOC_CH83:1;\r
197                                 vuint32_t EOC_CH82:1;\r
198                                 vuint32_t EOC_CH81:1;\r
199                                 vuint32_t EOC_CH80:1;\r
200                                 vuint32_t EOC_CH79:1;\r
201                                 vuint32_t EOC_CH78:1;\r
202                                 vuint32_t EOC_CH77:1;\r
203                                 vuint32_t EOC_CH76:1;\r
204                                 vuint32_t EOC_CH75:1;\r
205                                 vuint32_t EOC_CH74:1;\r
206                                 vuint32_t EOC_CH73:1;\r
207                                 vuint32_t EOC_CH72:1;\r
208                                 vuint32_t EOC_CH71:1;\r
209                                 vuint32_t EOC_CH70:1;\r
210                                 vuint32_t EOC_CH69:1;\r
211                                 vuint32_t EOC_CH68:1;\r
212                                 vuint32_t EOC_CH67:1;\r
213                                 vuint32_t EOC_CH66:1;\r
214                                 vuint32_t EOC_CH65:1;\r
215                                 vuint32_t EOC_CH64:1;\r
216                         } B;\r
217                 } CE0CFR2;              \r
218         \r
219 \r
220         union {         /* ADC0 Interrupt Mask (Base+0020) */\r
221             vuint32_t R;\r
222             struct {\r
223                 vuint32_t:27;\r
224                 vuint32_t MSKEOCTU:1;\r
225                 vuint32_t MSKJEOC:1;\r
226                 vuint32_t MSKJECH:1;\r
227                 vuint32_t MSKEOC:1;\r
228                 vuint32_t MSKECH:1;     \r
229             } B;\r
230         } IMR;                 \r
231              \r
232 \r
233 \r
234     union { /* ADC0 Channel Interrupt Mask 0 (Base+0x0024) */\r
235         vuint32_t R; /*      (For Precision Channels)        */       \r
236         struct {\r
237             vuint32_t:16;\r
238             vuint32_t CIM15:1;\r
239             vuint32_t CIM14:1;\r
240             vuint32_t CIM13:1;\r
241             vuint32_t CIM12:1;\r
242             vuint32_t CIM11:1;\r
243             vuint32_t CIM10:1;\r
244             vuint32_t CIM9:1;\r
245             vuint32_t CIM8:1;\r
246             vuint32_t CIM7:1;\r
247             vuint32_t CIM6:1;\r
248             vuint32_t CIM5:1;\r
249             vuint32_t CIM4:1;\r
250             vuint32_t CIM3:1;\r
251             vuint32_t CIM2:1;\r
252             vuint32_t CIM1:1;\r
253             vuint32_t CIM0:1;\r
254         } B;\r
255     } CIMR0;\r
256 \r
257     union { /* ADC0 Channel Interrupt Mask 1 (+0x0028) */\r
258         vuint32_t R; /*      (For Standard Channels)     */       \r
259         struct {\r
260             vuint32_t CIM63:1;\r
261             vuint32_t CIM62:1;\r
262             vuint32_t CIM61:1;\r
263             vuint32_t CIM60:1;\r
264             vuint32_t CIM59:1;\r
265             vuint32_t CIM58:1;\r
266             vuint32_t CIM57:1;\r
267             vuint32_t CIM56:1;\r
268             vuint32_t CIM55:1;\r
269             vuint32_t CIM54:1;\r
270             vuint32_t CIM53:1;\r
271             vuint32_t CIM52:1;\r
272             vuint32_t CIM51:1;\r
273             vuint32_t CIM50:1;\r
274             vuint32_t CIM49:1;\r
275             vuint32_t CIM48:1;\r
276             vuint32_t CIM47:1;\r
277             vuint32_t CIM46:1;\r
278             vuint32_t CIM45:1;\r
279             vuint32_t CIM44:1;\r
280             vuint32_t CIM43:1;\r
281             vuint32_t CIM42:1;\r
282             vuint32_t CIM41:1;\r
283             vuint32_t CIM40:1;\r
284             vuint32_t CIM39:1;\r
285             vuint32_t CIM38:1;\r
286             vuint32_t CIM37:1;\r
287             vuint32_t CIM36:1;\r
288             vuint32_t CIM35:1;\r
289             vuint32_t CIM34:1;\r
290             vuint32_t CIM33:1;\r
291             vuint32_t CIM32:1;\r
292         } B;\r
293     } CIMR1;\r
294 \r
295     union { /* ADC0 Channel Interrupt Mask 2 (+0x002C) */\r
296         vuint32_t R; /*      (For PExternal Mux'd Channels)  */   \r
297         struct {\r
298             vuint32_t CIM95:1;\r
299             vuint32_t CIM94:1;\r
300             vuint32_t CIM93:1;\r
301             vuint32_t CIM92:1;\r
302             vuint32_t CIM91:1;\r
303             vuint32_t CIM90:1;\r
304             vuint32_t CIM89:1;\r
305             vuint32_t CIM88:1;\r
306             vuint32_t CIM87:1;\r
307             vuint32_t CIM86:1;\r
308             vuint32_t CIM85:1;\r
309             vuint32_t CIM84:1;\r
310             vuint32_t CIM83:1;\r
311             vuint32_t CIM82:1;\r
312             vuint32_t CIM81:1;\r
313             vuint32_t CIM80:1;\r
314             vuint32_t CIM79:1;\r
315             vuint32_t CIM78:1;\r
316             vuint32_t CIM77:1;\r
317             vuint32_t CIM76:1;\r
318             vuint32_t CIM75:1;\r
319             vuint32_t CIM74:1;\r
320             vuint32_t CIM73:1;\r
321             vuint32_t CIM72:1;\r
322             vuint32_t CIM71:1;\r
323             vuint32_t CIM70:1;\r
324             vuint32_t CIM69:1;\r
325             vuint32_t CIM68:1;\r
326             vuint32_t CIM67:1;\r
327             vuint32_t CIM66:1;\r
328             vuint32_t CIM65:1;\r
329             vuint32_t CIM64:1;\r
330         } B;\r
331     } CIMR2; \r
332 \r
333         union { /* ADC0 Watchdog Threshold Interrupt Status (+0x0030)*/\r
334             vuint32_t R;\r
335             struct {             \r
336                 vuint32_t:20;\r
337                 vuint32_t WDG5H:1; \r
338                 vuint32_t WDG5L:1; \r
339                 vuint32_t WDG4H:1; \r
340                 vuint32_t WDG4L:1; \r
341                 vuint32_t WDG3H:1; \r
342                 vuint32_t WDG3L:1; \r
343                 vuint32_t WDG2H:1; \r
344                 vuint32_t WDG2L:1; \r
345                                 vuint32_t WDG1H:1;\r
346                                 vuint32_t WDG1L:1; \r
347                                 vuint32_t WDG0H:1; \r
348                 vuint32_t WDG0L:1; \r
349             } B;  \r
350         } WTISR;            \r
351         \r
352         union { /* ADC0 Watchdog Threshold Interrupt Mask (+0x0034) */\r
353             vuint32_t R;\r
354             struct {             \r
355                 vuint32_t:20;\r
356                 vuint32_t MSKWDG5H:1; \r
357                 vuint32_t MSKWDG5L:1; \r
358                 vuint32_t MSKWDG4H:1; \r
359                 vuint32_t MSKWDG4L:1;\r
360                 vuint32_t MSKWDG3H:1; \r
361                 vuint32_t MSKWDG2H:1; \r
362                 vuint32_t MSKWDG1H:1; \r
363                 vuint32_t MSKWDG0H:1; \r
364                                 vuint32_t MSKWDG3L:1; \r
365                                 vuint32_t MSKWDG2L:1; \r
366                                 vuint32_t MSKWDG1L:1; \r
367                 vuint32_t MSKWDG0L:1; \r
368             } B;  \r
369         } WTIMR;            \r
370 \r
371  vuint8_t ADC0_reserved1[8]; /* Reserved 8 bytes (Base+0x0038-0x003F) */\r
372                \r
373         union { /* ADC0 DMA Enable (Base+0x0040) */\r
374             vuint32_t R;\r
375             struct {             \r
376                 vuint32_t:30;\r
377                 vuint32_t DCLR:1;\r
378                 vuint32_t DMAEN:1;\r
379             } B;\r
380         } DMAE;           \r
381         \r
382                 union { /* ADC0 DMA Channel Select 0 (Base+0x0044) */\r
383                         vuint32_t R; /*      (for precision channels)           */\r
384             struct { \r
385                     vuint32_t:16;\r
386                 vuint32_t DMA15:1;\r
387                 vuint32_t DMA14:1;\r
388                 vuint32_t DMA13:1;\r
389                 vuint32_t DMA12:1;\r
390                 vuint32_t DMA11:1;\r
391                 vuint32_t DMA10:1;\r
392                 vuint32_t DMA9:1;\r
393                 vuint32_t DMA8:1;\r
394                 vuint32_t DMA7:1;\r
395                 vuint32_t DMA6:1;\r
396                 vuint32_t DMA5:1;\r
397                 vuint32_t DMA4:1;\r
398                 vuint32_t DMA3:1;\r
399                 vuint32_t DMA2:1;\r
400                 vuint32_t DMA1:1;\r
401                 vuint32_t DMA0:1;\r
402             } B;\r
403         } DMAR0;            \r
404                    \r
405          union { /* ADC0 DMA Channel Select 1 (Base+0x0048) */\r
406         vuint32_t R; /*      (for standard channels)      */      \r
407         struct {\r
408             vuint32_t DMA63:1;\r
409             vuint32_t DMA62:1;\r
410             vuint32_t DMA61:1;\r
411             vuint32_t DMA60:1;\r
412             vuint32_t DMA59:1;\r
413             vuint32_t DMA58:1;\r
414             vuint32_t DMA57:1;\r
415             vuint32_t DMA56:1;\r
416             vuint32_t DMA55:1;\r
417             vuint32_t DMA54:1;\r
418             vuint32_t DMA53:1;\r
419             vuint32_t DMA52:1;\r
420             vuint32_t DMA51:1;\r
421             vuint32_t DMA50:1;\r
422             vuint32_t DMA49:1;\r
423             vuint32_t DMA48:1;\r
424             vuint32_t DMA47:1;\r
425             vuint32_t DMA46:1;\r
426             vuint32_t DMA45:1;\r
427             vuint32_t DMA44:1;\r
428             vuint32_t DMA43:1;\r
429             vuint32_t DMA42:1;\r
430             vuint32_t DMA41:1;\r
431             vuint32_t DMA40:1;\r
432             vuint32_t DMA39:1;\r
433             vuint32_t DMA38:1;\r
434             vuint32_t DMA37:1;\r
435             vuint32_t DMA36:1;\r
436             vuint32_t DMA35:1;\r
437             vuint32_t DMA34:1;\r
438             vuint32_t DMA33:1;\r
439             vuint32_t DMA32:1;\r
440         } B;\r
441     } DMAR1;\r
442 \r
443     union { /* ADC0 DMA Channel Select 2 (Base+0x004C) */\r
444         vuint32_t R; /*      (for external mux'd channels) */     \r
445         struct {\r
446             vuint32_t DMA95:1;\r
447             vuint32_t DMA94:1;\r
448             vuint32_t DMA93:1;\r
449             vuint32_t DMA92:1;\r
450             vuint32_t DMA91:1;\r
451             vuint32_t DMA90:1;\r
452             vuint32_t DMA89:1;\r
453             vuint32_t DMA88:1;\r
454             vuint32_t DMA87:1;\r
455             vuint32_t DMA86:1;\r
456             vuint32_t DMA85:1;\r
457             vuint32_t DMA84:1;\r
458             vuint32_t DMA83:1;\r
459             vuint32_t DMA82:1;\r
460             vuint32_t DMA81:1;\r
461             vuint32_t DMA80:1;\r
462             vuint32_t DMA79:1;\r
463             vuint32_t DMA78:1;\r
464             vuint32_t DMA77:1;\r
465             vuint32_t DMA76:1;\r
466             vuint32_t DMA75:1;\r
467             vuint32_t DMA74:1;\r
468             vuint32_t DMA73:1;\r
469             vuint32_t DMA72:1;\r
470             vuint32_t DMA71:1;\r
471             vuint32_t DMA70:1;\r
472             vuint32_t DMA69:1;\r
473             vuint32_t DMA68:1;\r
474             vuint32_t DMA67:1;\r
475             vuint32_t DMA66:1;\r
476             vuint32_t DMA65:1;\r
477             vuint32_t DMA64:1;\r
478         } B;\r
479     } DMAR2; \r
480 \r
481     vuint8_t ADC0_reserved2[16]; /* Reserved 16 bytes (Base+0x0050-0x005F) */\r
482         \r
483 \r
484         /*Note the threshold registers are split [0..3] then [4..5]. For this  \r
485     reason thay are NOT implemented as an array in order to maintain    \r
486     concistency through all THRHLR registers  */                          \r
487 \r
488     union { /* ADC0 Threshold  0 (Base+0x0060) */\r
489         vuint32_t R;\r
490         struct {\r
491           vuint32_t:6;\r
492             vuint32_t THRH:10;\r
493             vuint32_t:6;\r
494             vuint32_t THRL:10;\r
495         } B;\r
496     } THRHLR0;\r
497 \r
498     union { /* ADC0 Threshold  1 (Base+0x0064) */\r
499         vuint32_t R;\r
500         struct {\r
501           vuint32_t:6;\r
502             vuint32_t THRH:10;\r
503             vuint32_t:6;\r
504             vuint32_t THRL:10;\r
505         } B;\r
506     } THRHLR1;\r
507 \r
508     union { /* ADC0 Threshold  2 (Base+0x0068) */\r
509         vuint32_t R;\r
510         struct {\r
511           vuint32_t:6;\r
512             vuint32_t THRH:10;\r
513             vuint32_t:6;\r
514             vuint32_t THRL:10;\r
515         } B;\r
516     } THRHLR2;\r
517 \r
518     union { /* ADC0 Threshold  3 (Base+0x006C) */\r
519         vuint32_t R;\r
520         struct {\r
521           vuint32_t:6;\r
522             vuint32_t THRH:10;\r
523             vuint32_t:6;\r
524             vuint32_t THRL:10;\r
525         } B;\r
526     } THRHLR3; \r
527                         \r
528 \r
529     vuint8_t ADC0_reserved3[16]; /* Reserved 16 bytes (Base+0x0070-0x007F) */\r
530         \r
531         union { /* ADC0 Presampling Control (Base+0x0080) */\r
532             vuint32_t R;\r
533             struct {\r
534                     vuint32_t:25;\r
535                 vuint32_t PREVAL2:2;\r
536                 vuint32_t PREVAL1:2;\r
537                 vuint32_t PREVAL0:2;\r
538                 vuint32_t PRECONV:1;        \r
539             } B;\r
540         } PSCR;  \r
541 \r
542                         \r
543       union { /* ADC0 Presampling 0 (Base+0x0084) */\r
544                         vuint32_t R; /*      (precision channels)  */\r
545             struct {\r
546                 vuint32_t PRES31:1;\r
547                 vuint32_t PRES30:1;\r
548                 vuint32_t PRES29:1;\r
549                 vuint32_t PRES28:1;\r
550                 vuint32_t PRES27:1;\r
551                 vuint32_t PRES26:1;\r
552                 vuint32_t PRES25:1;\r
553                 vuint32_t PRES24:1;\r
554                 vuint32_t PRES23:1;\r
555                 vuint32_t PRES22:1;\r
556                 vuint32_t PRES21:1;\r
557                 vuint32_t PRES20:1;\r
558                 vuint32_t PRES19:1;\r
559                 vuint32_t PRES18:1;\r
560                 vuint32_t PRES17:1;\r
561                 vuint32_t PRES16:1;\r
562                 vuint32_t PRES15:1;\r
563                 vuint32_t PRES14:1;\r
564                 vuint32_t PRES13:1;\r
565                 vuint32_t PRES12:1;\r
566                 vuint32_t PRES11:1;\r
567                 vuint32_t PRES10:1;\r
568                 vuint32_t PRES9:1;\r
569                 vuint32_t PRES8:1;\r
570                 vuint32_t PRES7:1;\r
571                 vuint32_t PRES6:1;\r
572                 vuint32_t PRES5:1;\r
573                 vuint32_t PRES4:1;\r
574                 vuint32_t PRES3:1;\r
575                 vuint32_t PRES2:1;\r
576                 vuint32_t PRES1:1;\r
577                 vuint32_t PRES0:1;\r
578             } B;\r
579         } PSR0;         \r
580                 \r
581         union { /* ADC0 Presampling 1 (Base+0x0088) */\r
582         vuint32_t R; /*      (standard channels)  */       \r
583         struct {\r
584             vuint32_t PRES63:1;\r
585             vuint32_t PRES62:1;\r
586             vuint32_t PRES61:1;\r
587             vuint32_t PRES60:1;\r
588             vuint32_t PRES59:1;\r
589             vuint32_t PRES58:1;\r
590             vuint32_t PRES57:1;\r
591             vuint32_t PRES56:1;\r
592             vuint32_t PRES55:1;\r
593             vuint32_t PRES54:1;\r
594             vuint32_t PRES53:1;\r
595             vuint32_t PRES52:1;\r
596             vuint32_t PRES51:1;\r
597             vuint32_t PRES50:1;\r
598             vuint32_t PRES49:1;\r
599             vuint32_t PRES48:1;\r
600             vuint32_t PRES47:1;\r
601             vuint32_t PRES46:1;\r
602             vuint32_t PRES45:1;\r
603             vuint32_t PRES44:1;\r
604             vuint32_t PRES43:1;\r
605             vuint32_t PRES42:1;\r
606             vuint32_t PRES41:1;\r
607             vuint32_t PRES40:1;\r
608             vuint32_t PRES39:1;\r
609             vuint32_t PRES38:1;\r
610             vuint32_t PRES37:1;\r
611             vuint32_t PRES36:1;\r
612             vuint32_t PRES35:1;\r
613             vuint32_t PRES34:1;\r
614             vuint32_t PRES33:1;\r
615             vuint32_t PRES32:1;\r
616         } B;\r
617     } PSR1;\r
618 \r
619     union { /* ADC0 Presampling 2 (Base+0x008C) */\r
620         vuint32_t R; /*      (external mux'd channels)   */\r
621         struct {\r
622             vuint32_t PRES95:1;\r
623             vuint32_t PRES94:1;\r
624             vuint32_t PRES93:1;\r
625             vuint32_t PRES92:1;\r
626             vuint32_t PRES91:1;\r
627             vuint32_t PRES90:1;\r
628             vuint32_t PRES89:1;\r
629             vuint32_t PRES88:1;\r
630             vuint32_t PRES87:1;\r
631             vuint32_t PRES86:1;\r
632             vuint32_t PRES85:1;\r
633             vuint32_t PRES84:1;\r
634             vuint32_t PRES83:1;\r
635             vuint32_t PRES82:1;\r
636             vuint32_t PRES81:1;\r
637             vuint32_t PRES80:1;\r
638             vuint32_t PRES79:1;\r
639             vuint32_t PRES78:1;\r
640             vuint32_t PRES77:1;\r
641             vuint32_t PRES76:1;\r
642             vuint32_t PRES75:1;\r
643             vuint32_t PRES74:1;\r
644             vuint32_t PRES73:1;\r
645             vuint32_t PRES72:1;\r
646             vuint32_t PRES71:1;\r
647             vuint32_t PRES70:1;\r
648             vuint32_t PRES69:1;\r
649             vuint32_t PRES68:1;\r
650             vuint32_t PRES67:1;\r
651             vuint32_t PRES66:1;\r
652             vuint32_t PRES65:1;\r
653             vuint32_t PRES64:1;\r
654         } B;\r
655     } PSR2; \r
656 \r
657                 vuint8_t ADC0_reserved4[4]; /* Reserved 4 bytes (Base+0x0090-0x0093) */\r
658         \r
659  \r
660 \r
661     /* Note the following CTR registers are NOT implemented as an array to */\r
662     /*  try and maintain some concistency through the header file          */\r
663     /*  (The registers are however identical)                              */\r
664 \r
665     union { /* ADC0 Conversion Timing 0 (Base+0x0094) */\r
666         vuint32_t R; /*      (precision channels)       */       \r
667         struct {\r
668             vuint32_t:16;\r
669             vuint32_t INPLATCH:1;\r
670             vuint32_t:1;\r
671             vuint32_t OFFSHIFT:2;\r
672             vuint32_t:1;\r
673             vuint32_t INPCMP:2;\r
674             vuint32_t:1;\r
675             vuint32_t INPSAMP:8;\r
676         } B;\r
677     } CTR0;\r
678 \r
679     union { /* ADC0 Conversion Timing 1 (Base+0x0098) */\r
680         vuint32_t R; /*      (standard channels)        */      \r
681         struct {\r
682             vuint32_t:16;\r
683             vuint32_t INPLATCH:1;\r
684             vuint32_t:1;\r
685             vuint32_t OFFSHIFT:2;\r
686             vuint32_t:1;\r
687             vuint32_t INPCMP:2;\r
688             vuint32_t:1;\r
689             vuint32_t INPSAMP:8;\r
690         } B;\r
691     } CTR1;\r
692 \r
693     union { /* ADC0 Conversion Timing 2 (Base+0x009C) */\r
694         vuint32_t R; /*      (precision channels)       */       \r
695         struct {\r
696             vuint32_t:16;\r
697             vuint32_t INPLATCH:1;\r
698             vuint32_t:1;\r
699             vuint32_t OFFSHIFT:2;\r
700             vuint32_t:1;\r
701             vuint32_t INPCMP:2;\r
702             vuint32_t:1;\r
703             vuint32_t INPSAMP:8;\r
704         } B;\r
705     } CTR2;             \r
706 \r
707         vuint8_t ADC0_reserved5[4]; /* Reserved 4 bytes (Base+0x00A0-0x00A3) */\r
708             \r
709 \r
710 union { /* ADC0 Normal Conversion Mask 0 (Base+0x00A4) */\r
711         vuint32_t R; /*      (precision channels)        */          \r
712         struct {\r
713             vuint32_t :16;\r
714             vuint32_t CH15:1;\r
715             vuint32_t CH14:1;\r
716             vuint32_t CH13:1;\r
717             vuint32_t CH12:1;\r
718             vuint32_t CH11:1;\r
719             vuint32_t CH10:1;\r
720             vuint32_t CH9:1;\r
721             vuint32_t CH8:1;\r
722             vuint32_t CH7:1;\r
723             vuint32_t CH6:1;\r
724             vuint32_t CH5:1;\r
725             vuint32_t CH4:1;\r
726             vuint32_t CH3:1;\r
727             vuint32_t CH2:1;\r
728             vuint32_t CH1:1;\r
729             vuint32_t CH0:1;\r
730         } B;\r
731     } NCMR0;\r
732 \r
733     union { /* ADC0 Normal Conversion Mask 1 (Base+0x00A8) */\r
734         vuint32_t R; /*      (standard channels)             */       \r
735         struct {\r
736             vuint32_t :4;\r
737             vuint32_t CH59:1;\r
738             vuint32_t CH58:1;\r
739             vuint32_t CH57:1;\r
740             vuint32_t CH56:1;\r
741             vuint32_t CH55:1;\r
742             vuint32_t CH54:1;\r
743             vuint32_t CH53:1;\r
744             vuint32_t CH52:1;\r
745             vuint32_t CH51:1;\r
746             vuint32_t CH50:1;\r
747             vuint32_t CH49:1;\r
748             vuint32_t CH48:1;\r
749             vuint32_t CH47:1;\r
750             vuint32_t CH46:1;\r
751             vuint32_t CH45:1;\r
752             vuint32_t CH44:1;\r
753             vuint32_t CH43:1;\r
754             vuint32_t CH42:1;\r
755             vuint32_t CH41:1;\r
756             vuint32_t CH40:1;\r
757             vuint32_t CH39:1;\r
758             vuint32_t CH38:1;\r
759             vuint32_t CH37:1;\r
760             vuint32_t CH36:1;\r
761             vuint32_t CH35:1;\r
762             vuint32_t CH34:1;\r
763             vuint32_t CH33:1;\r
764             vuint32_t CH32:1;\r
765         } B;\r
766     } NCMR1;\r
767 \r
768     union { /* ADC0 Normal Conversion Mask 2 (Base+0x00AC) */\r
769         vuint32_t R; /*      (For external mux'd channels)   */       \r
770         struct {\r
771             vuint32_t CH95:1;\r
772             vuint32_t CH94:1;\r
773             vuint32_t CH93:1;\r
774             vuint32_t CH92:1;\r
775             vuint32_t CH91:1;\r
776             vuint32_t CH90:1;\r
777             vuint32_t CH89:1;\r
778             vuint32_t CH88:1;\r
779             vuint32_t CH87:1;\r
780             vuint32_t CH86:1;\r
781             vuint32_t CH85:1;\r
782             vuint32_t CH84:1;\r
783             vuint32_t CH83:1;\r
784             vuint32_t CH82:1;\r
785             vuint32_t CH81:1;\r
786             vuint32_t CH80:1;\r
787             vuint32_t CH79:1;\r
788             vuint32_t CH78:1;\r
789             vuint32_t CH77:1;\r
790             vuint32_t CH76:1;\r
791             vuint32_t CH75:1;\r
792             vuint32_t CH74:1;\r
793             vuint32_t CH73:1;\r
794             vuint32_t CH72:1;\r
795             vuint32_t CH71:1;\r
796             vuint32_t CH70:1;\r
797             vuint32_t CH69:1;\r
798             vuint32_t CH68:1;\r
799             vuint32_t CH67:1;\r
800             vuint32_t CH66:1;\r
801             vuint32_t CH65:1;\r
802             vuint32_t CH64:1;\r
803         } B;\r
804     } NCMR2;            \r
805 \r
806 vuint8_t ADC0_reserved6[4]; /* Reserved 4 bytes (Base+0x00B0-0x00B3) */\r
807 \r
808                 \r
809                 union { /* ADC0 Injected Conversion Mask0 (Base+0x00B4) */\r
810         vuint32_t R; /*      (precision channels)                 */   \r
811         struct {\r
812             vuint32_t :16;\r
813             vuint32_t CH15:1;\r
814             vuint32_t CH14:1;\r
815             vuint32_t CH13:1;\r
816             vuint32_t CH12:1;\r
817             vuint32_t CH11:1;\r
818             vuint32_t CH10:1;\r
819             vuint32_t CH9:1;\r
820             vuint32_t CH8:1;\r
821             vuint32_t CH7:1;\r
822             vuint32_t CH6:1;\r
823             vuint32_t CH5:1;\r
824             vuint32_t CH4:1;\r
825             vuint32_t CH3:1;\r
826             vuint32_t CH2:1;\r
827             vuint32_t CH1:1;\r
828             vuint32_t CH0:1;\r
829         } B;\r
830     } JCMR0;\r
831 \r
832     union { /* ADC0 Injected Conversion Mask1 (Base+0x00B8) */\r
833         vuint32_t R; /*      (standard channels)              */       \r
834         struct {\r
835             vuint32_t :4;\r
836             vuint32_t CH59:1;\r
837             vuint32_t CH58:1;\r
838             vuint32_t CH57:1;\r
839             vuint32_t CH56:1;\r
840             vuint32_t CH55:1;\r
841             vuint32_t CH54:1;\r
842             vuint32_t CH53:1;\r
843             vuint32_t CH52:1;\r
844             vuint32_t CH51:1;\r
845             vuint32_t CH50:1;\r
846             vuint32_t CH49:1;\r
847             vuint32_t CH48:1;\r
848             vuint32_t CH47:1;\r
849             vuint32_t CH46:1;\r
850             vuint32_t CH45:1;\r
851             vuint32_t CH44:1;\r
852             vuint32_t CH43:1;\r
853             vuint32_t CH42:1;\r
854             vuint32_t CH41:1;\r
855             vuint32_t CH40:1;\r
856             vuint32_t CH39:1;\r
857             vuint32_t CH38:1;\r
858             vuint32_t CH37:1;\r
859             vuint32_t CH36:1;\r
860             vuint32_t CH35:1;\r
861             vuint32_t CH34:1;\r
862             vuint32_t CH33:1;\r
863             vuint32_t CH32:1;\r
864         } B;\r
865     } JCMR1;\r
866 \r
867     union { /* ADC0 Injected Conversion Mask2 (Base+0x00BC) */\r
868         vuint32_t R; /*      (external mux'd channels)        */       \r
869         struct {\r
870             vuint32_t CH95:1;\r
871             vuint32_t CH94:1;\r
872             vuint32_t CH93:1;\r
873             vuint32_t CH92:1;\r
874             vuint32_t CH91:1;\r
875             vuint32_t CH90:1;\r
876             vuint32_t CH89:1;\r
877             vuint32_t CH88:1;\r
878             vuint32_t CH87:1;\r
879             vuint32_t CH86:1;\r
880             vuint32_t CH85:1;\r
881             vuint32_t CH84:1;\r
882             vuint32_t CH83:1;\r
883             vuint32_t CH82:1;\r
884             vuint32_t CH81:1;\r
885             vuint32_t CH80:1;\r
886             vuint32_t CH79:1;\r
887             vuint32_t CH78:1;\r
888             vuint32_t CH77:1;\r
889             vuint32_t CH76:1;\r
890             vuint32_t CH75:1;\r
891             vuint32_t CH74:1;\r
892             vuint32_t CH73:1;\r
893             vuint32_t CH72:1;\r
894             vuint32_t CH71:1;\r
895             vuint32_t CH70:1;\r
896             vuint32_t CH69:1;\r
897             vuint32_t CH68:1;\r
898             vuint32_t CH67:1;\r
899             vuint32_t CH66:1;\r
900             vuint32_t CH65:1;\r
901             vuint32_t CH64:1;\r
902         } B;\r
903     } JCMR2;\r
904               \r
905         \r
906    vuint8_t ADC0_reserved7[4]; /* Reserved 4 bytes (Base+0x00C0-0x00C3) */\r
907         \r
908                 union { /* ADC0 Decode Signals Delay (Base+0x00C4) */\r
909                         vuint32_t R;\r
910                         struct {\r
911                                 vuint32_t:20;\r
912                                 vuint32_t DSD:12;\r
913                         } B;\r
914                 } DSDR;              \r
915         \r
916         union { /* ADC0 Power-Down exit Delay (Base+0x00C8) */\r
917                         vuint32_t R;\r
918                         struct {\r
919                                 vuint32_t:24;\r
920                                 vuint32_t PDED:8;\r
921                         } B;\r
922                 } PDEDR;              \r
923 \r
924     \r
925     vuint8_t ADC0_reserved8[52]; /* Reserved 52 bytes (Base+0x00CC-0x00FF) */\r
926                 \r
927         union { /* ADC0 Channel 0-95 Data (Base+0x0100-0x027C) */\r
928             vuint32_t R; /* Note CDR[16..31] and CDR[60..63] are reserved               */\r
929             struct {\r
930                 vuint32_t:12;\r
931                 vuint32_t VALID:1;\r
932                 vuint32_t OVERW:1;\r
933                 vuint32_t RESULT:2;\r
934                 vuint32_t:6;\r
935                 vuint32_t CDATA:10;\r
936             } B;\r
937         } CDR[96];           \r
938         \r
939     union { /* ADC0 Threshold 4 (Base+0x0280) */\r
940         vuint32_t R;\r
941         struct {\r
942             vuint32_t:6;\r
943             vuint32_t THRH:10;\r
944             vuint32_t:6;\r
945             vuint32_t THRL:10;\r
946         } B;\r
947     } THRHLR4;\r
948 \r
949     union { /* ADC0 Threshold 5 (Base+0x0284) */\r
950         vuint32_t R;\r
951         struct {\r
952             vuint32_t:6;\r
953             vuint32_t THRH:10;\r
954             vuint32_t:6;\r
955             vuint32_t THRL:10;\r
956         } B;\r
957     } THRHLR5;\r
958         \r
959     vuint8_t ADC0_reserved9[40]; /* Reserved 40 bytes (Base+0x0288-0x02AF) */\r
960         \r
961        \r
962     union { /* ADC0 Channel Watchdog Select 0 (Base+0x02B0) */\r
963         vuint32_t R; /*      (precision channels)                    */\r
964             struct {\r
965                     vuint32_t:1;\r
966                 vuint32_t WSEL_CH7:3;\r
967                     vuint32_t:1;\r
968                 vuint32_t WSEL_CH6:3;\r
969                     vuint32_t:1;\r
970                 vuint32_t WSEL_CH5:3;\r
971                     vuint32_t:1;\r
972                 vuint32_t WSEL_CH4:3;\r
973                     vuint32_t:1;\r
974                 vuint32_t WSEL_CH3:3;\r
975                     vuint32_t:1;\r
976                 vuint32_t WSEL_CH2:3;\r
977                     vuint32_t:1;\r
978                 vuint32_t WSEL_CH1:3;\r
979                 vuint32_t:1;\r
980                 vuint32_t WSEL_CH0:3;\r
981             } B;\r
982         } CWSELR0; \r
983         \r
984     union { /* ADC0 Channel Watchdog Select 1 (Base+0x02B4) */\r
985         vuint32_t R; /*      (precision channels)                    */\r
986             struct {\r
987                     vuint32_t:1;\r
988                 vuint32_t WSEL_CH15:3;\r
989                     vuint32_t:1;\r
990                 vuint32_t WSEL_CH14:3;\r
991                     vuint32_t:1;\r
992                 vuint32_t WSEL_CH13:3;\r
993                     vuint32_t:1;\r
994                 vuint32_t WSEL_CH12:3;\r
995                     vuint32_t:1;\r
996                 vuint32_t WSEL_CH11:3;\r
997                     vuint32_t:1;\r
998                 vuint32_t WSEL_CH10:3;\r
999                     vuint32_t:1;\r
1000                 vuint32_t WSEL_CH9:3;\r
1001                 vuint32_t:1;\r
1002                 vuint32_t WSEL_CH8:3;\r
1003             } B;\r
1004         } CWSELR1; \r
1005         \r
1006     vuint8_t ADC0_reserved10[8]; /* Reserved 4 bytes (Base+0x02B8-0x02BF) */    \r
1007         \r
1008     union { /* ADC0 Channel Watchdog Select 4 (Base+0x02C0) */\r
1009         vuint32_t R; /*      (standard channels)                     */\r
1010         struct {\r
1011             vuint32_t:1;\r
1012             vuint32_t WSEL_CH39:3;\r
1013             vuint32_t:1;\r
1014             vuint32_t WSEL_CH38:3;\r
1015             vuint32_t:1;\r
1016             vuint32_t WSEL_CH37:3;\r
1017             vuint32_t:1;\r
1018             vuint32_t WSEL_CH36:3;\r
1019             vuint32_t:1;\r
1020             vuint32_t WSEL_CH35:3;\r
1021             vuint32_t:1;\r
1022             vuint32_t WSEL_CH34:3;\r
1023             vuint32_t:1;\r
1024             vuint32_t WSEL_CH33:3;\r
1025             vuint32_t:1;\r
1026             vuint32_t WSEL_CH32:3;\r
1027         } B;\r
1028     } CWSELR4;\r
1029 \r
1030     union { /* ADC0 Channel Watchdog Select 5 (Base+0x02C4) */\r
1031         vuint32_t R; /*      (standard channels)                     */\r
1032         struct {\r
1033             vuint32_t:1;\r
1034             vuint32_t WSEL_CH47:3;\r
1035             vuint32_t:1;\r
1036             vuint32_t WSEL_CH46:3;\r
1037             vuint32_t:1;\r
1038             vuint32_t WSEL_CH45:3;\r
1039             vuint32_t:1;\r
1040             vuint32_t WSEL_CH44:3;\r
1041             vuint32_t:1;\r
1042             vuint32_t WSEL_CH43:3;\r
1043             vuint32_t:1;\r
1044             vuint32_t WSEL_CH42:3;\r
1045             vuint32_t:1;\r
1046             vuint32_t WSEL_CH41:3;\r
1047             vuint32_t:1;\r
1048             vuint32_t WSEL_CH40:3;\r
1049         } B;\r
1050     } CWSELR5;\r
1051 \r
1052     union { /* ADC0 Channel Watchdog Select 6 (Base+0x02C8) */\r
1053         vuint32_t R; /*      (standard channels)                     */\r
1054         struct {\r
1055             vuint32_t:1;\r
1056             vuint32_t WSEL_CH55:3;\r
1057             vuint32_t:1;\r
1058             vuint32_t WSEL_CH54:3;\r
1059             vuint32_t:1;\r
1060             vuint32_t WSEL_CH53:3;\r
1061             vuint32_t:1;\r
1062             vuint32_t WSEL_CH52:3;\r
1063             vuint32_t:1;\r
1064             vuint32_t WSEL_CH51:3;\r
1065             vuint32_t:1;\r
1066             vuint32_t WSEL_CH50:3;\r
1067             vuint32_t:1;\r
1068             vuint32_t WSEL_CH49:3;\r
1069             vuint32_t:1;\r
1070             vuint32_t WSEL_CH48:3;\r
1071         } B;\r
1072     } CWSELR6;\r
1073 \r
1074     union { /* ADC0 Channel Watchdog Select 7 (Base+0x02CC) */\r
1075         vuint32_t R; /*      (standard channels)                     */\r
1076         struct {\r
1077             vuint32_t:1;\r
1078             vuint32_t WSEL_CH63:3;\r
1079             vuint32_t:1;\r
1080             vuint32_t WSEL_CH62:3;\r
1081             vuint32_t:1;\r
1082             vuint32_t WSEL_CH61:3;\r
1083             vuint32_t:1;\r
1084             vuint32_t WSEL_CH60:3;\r
1085             vuint32_t:1;\r
1086             vuint32_t WSEL_CH59:3;\r
1087             vuint32_t:12;\r
1088         } B;\r
1089     } CWSELR7;\r
1090         \r
1091       union { /* ADC0 Channel Watchdog Select 8 (Base+0x02D0) */\r
1092         vuint32_t R; /*      (external mux'd channels)               */\r
1093         struct {\r
1094             vuint32_t:1;\r
1095             vuint32_t WSEL_CH71:3;\r
1096             vuint32_t:1;\r
1097             vuint32_t WSEL_CH70:3;\r
1098             vuint32_t:1;\r
1099             vuint32_t WSEL_CH69:3;\r
1100             vuint32_t:1;\r
1101             vuint32_t WSEL_CH68:3;\r
1102             vuint32_t:1;\r
1103             vuint32_t WSEL_CH67:3;\r
1104             vuint32_t:1;\r
1105             vuint32_t WSEL_CH66:3;\r
1106             vuint32_t:1;\r
1107             vuint32_t WSEL_CH65:3;\r
1108             vuint32_t:1;\r
1109             vuint32_t WSEL_CH64:3;\r
1110         } B;\r
1111     } CWSELR8;\r
1112 \r
1113     union { /* ADC0 Channel Watchdog Select 9 (Base+0x02D4) */\r
1114         vuint32_t R; /*      (external mux'd channels)               */\r
1115         struct {\r
1116             vuint32_t:1;\r
1117             vuint32_t WSEL_CH79:3;\r
1118             vuint32_t:1;\r
1119             vuint32_t WSEL_CH78:3;\r
1120             vuint32_t:1;\r
1121             vuint32_t WSEL_CH77:3;\r
1122             vuint32_t:1;\r
1123             vuint32_t WSEL_CH76:3;\r
1124             vuint32_t:1;\r
1125             vuint32_t WSEL_CH75:3;\r
1126             vuint32_t:1;\r
1127             vuint32_t WSEL_CH74:3;\r
1128             vuint32_t:1;\r
1129             vuint32_t WSEL_CH73:3;\r
1130             vuint32_t:1;\r
1131             vuint32_t WSEL_CH72:3;\r
1132         } B;\r
1133     } CWSELR9;\r
1134 \r
1135     union { /* ADC0 Channel Watchdog Select 10 (Base+0x02D8)*/\r
1136         vuint32_t R; /*      (external mux'd channels)               */\r
1137         struct {\r
1138             vuint32_t:1;\r
1139             vuint32_t WSEL_CH87:3;\r
1140             vuint32_t:1;\r
1141             vuint32_t WSEL_CH86:3;\r
1142             vuint32_t:1;\r
1143             vuint32_t WSEL_CH85:3;\r
1144             vuint32_t:1;\r
1145             vuint32_t WSEL_CH84:3;\r
1146             vuint32_t:1;\r
1147             vuint32_t WSEL_CH83:3;\r
1148             vuint32_t:1;\r
1149             vuint32_t WSEL_CH82:3;\r
1150             vuint32_t:1;\r
1151             vuint32_t WSEL_CH81:3;\r
1152             vuint32_t:1;\r
1153             vuint32_t WSEL_CH80:3;\r
1154         } B;\r
1155     } CWSELR10;\r
1156 \r
1157     union { /* ADC0 Channel Watchdog Select 11 (Base+0x02DC)*/\r
1158         vuint32_t R; /*      (external mux'd channels)               */\r
1159         struct {\r
1160             vuint32_t:1;\r
1161             vuint32_t WSEL_CH95:3;\r
1162             vuint32_t:1;\r
1163             vuint32_t WSEL_CH94:3;\r
1164             vuint32_t:1;\r
1165             vuint32_t WSEL_CH93:3;\r
1166             vuint32_t:1;\r
1167             vuint32_t WSEL_CH92:3;\r
1168             vuint32_t:1;\r
1169             vuint32_t WSEL_CH91:3;\r
1170             vuint32_t:1;\r
1171             vuint32_t WSEL_CH90:3;\r
1172             vuint32_t:1;\r
1173             vuint32_t WSEL_CH89:3;\r
1174             vuint32_t:1;\r
1175             vuint32_t WSEL_CH88:3;\r
1176         } B;\r
1177     } CWSELR11;\r
1178                \r
1179   union { /* ADC0 Channel Watchdog Enable0 (Base++0x02E0) */\r
1180         vuint32_t R; /*      (precision channels)                    */\r
1181         struct {\r
1182             vuint32_t :16;\r
1183             vuint32_t CWEN15:1;\r
1184             vuint32_t CWEN14:1;\r
1185             vuint32_t CWEN13:1;\r
1186             vuint32_t CWEN12:1;\r
1187             vuint32_t CWEN11:1;\r
1188             vuint32_t CWEN10:1;\r
1189             vuint32_t CWEN9:1;\r
1190             vuint32_t CWEN8:1;\r
1191             vuint32_t CWEN7:1;\r
1192             vuint32_t CWEN6:1;\r
1193             vuint32_t CWEN5:1;\r
1194             vuint32_t CWEN4:1;\r
1195             vuint32_t CWEN3:1;\r
1196             vuint32_t CWEN2:1;\r
1197             vuint32_t CWEN1:1;\r
1198             vuint32_t CWEN0:1;\r
1199         } B;\r
1200     } CWENR0;\r
1201 \r
1202     union { /* ADC0 Channel Watchdog Enable1 (Base++0x02E4) */\r
1203         vuint32_t R; /*      (standard channels)                     */\r
1204         struct {\r
1205             vuint32_t :4;\r
1206             vuint32_t CWEN59:1;\r
1207             vuint32_t CWEN58:1;\r
1208             vuint32_t CWEN57:1;\r
1209             vuint32_t CWEN56:1;\r
1210             vuint32_t CWEN55:1;\r
1211             vuint32_t CWEN54:1;\r
1212             vuint32_t CWEN53:1;\r
1213             vuint32_t CWEN52:1;\r
1214             vuint32_t CWEN51:1;\r
1215             vuint32_t CWEN50:1;\r
1216             vuint32_t CWEN49:1;\r
1217             vuint32_t CWEN48:1;\r
1218             vuint32_t CWEN47:1;\r
1219             vuint32_t CWEN46:1;\r
1220             vuint32_t CWEN45:1;\r
1221             vuint32_t CWEN44:1;\r
1222             vuint32_t CWEN43:1;\r
1223             vuint32_t CWEN42:1;\r
1224             vuint32_t CWEN41:1;\r
1225             vuint32_t CWEN40:1;\r
1226             vuint32_t CWEN39:1;\r
1227             vuint32_t CWEN38:1;\r
1228             vuint32_t CWEN37:1;\r
1229             vuint32_t CWEN36:1;\r
1230             vuint32_t CWEN35:1;\r
1231             vuint32_t CWEN34:1;\r
1232             vuint32_t CWEN33:1;\r
1233             vuint32_t CWEN32:1;\r
1234         } B;\r
1235     } CWENR1;\r
1236 \r
1237     union { /* ADC0 Channel Watchdog Enable2 (Base++0x02E8) */\r
1238         vuint32_t R; /*      (external mux'd channels)               */\r
1239         struct {\r
1240             vuint32_t CWEN95:1;\r
1241             vuint32_t CWEN94:1;\r
1242             vuint32_t CWEN93:1;\r
1243             vuint32_t CWEN92:1;\r
1244             vuint32_t CWEN91:1;\r
1245             vuint32_t CWEN90:1;\r
1246             vuint32_t CWEN89:1;\r
1247             vuint32_t CWEN88:1;\r
1248             vuint32_t CWEN87:1;\r
1249             vuint32_t CWEN86:1;\r
1250             vuint32_t CWEN85:1;\r
1251             vuint32_t CWEN84:1;\r
1252             vuint32_t CWEN83:1;\r
1253             vuint32_t CWEN82:1;\r
1254             vuint32_t CWEN81:1;\r
1255             vuint32_t CWEN80:1;\r
1256             vuint32_t CWEN79:1;\r
1257             vuint32_t CWEN78:1;\r
1258             vuint32_t CWEN77:1;\r
1259             vuint32_t CWEN76:1;\r
1260             vuint32_t CWEN75:1;\r
1261             vuint32_t CWEN74:1;\r
1262             vuint32_t CWEN73:1;\r
1263             vuint32_t CWEN72:1;\r
1264             vuint32_t CWEN71:1;\r
1265             vuint32_t CWEN70:1;\r
1266             vuint32_t CWEN69:1;\r
1267             vuint32_t CWEN68:1;\r
1268             vuint32_t CWEN67:1;\r
1269             vuint32_t CWEN66:1;\r
1270             vuint32_t CWEN65:1;\r
1271             vuint32_t CWEN64:1;\r
1272         } B;\r
1273     } CWENR2;\r
1274 \r
1275     vuint8_t ADC0_reserved11[4]; /* Reserved 4 bytes (Base+0x02EC-0x02EF) */\r
1276         \r
1277 union { /* ADC0 Watchdog out of range 0 (Base+0x02F0) */\r
1278         vuint32_t R;\r
1279         struct {\r
1280             vuint32_t :16;\r
1281             vuint32_t AWORR_CH15:1;\r
1282             vuint32_t AWORR_CH14:1;\r
1283             vuint32_t AWORR_CH13:1;\r
1284             vuint32_t AWORR_CH12:1;\r
1285             vuint32_t AWORR_CH11:1;\r
1286             vuint32_t AWORR_CH10:1;\r
1287             vuint32_t AWORR_CH9:1;\r
1288             vuint32_t AWORR_CH8:1;\r
1289             vuint32_t AWORR_CH7:1;\r
1290             vuint32_t AWORR_CH6:1;\r
1291             vuint32_t AWORR_CH5:1;\r
1292             vuint32_t AWORR_CH4:1;\r
1293             vuint32_t AWORR_CH3:1;\r
1294             vuint32_t AWORR_CH2:1;\r
1295             vuint32_t AWORR_CH1:1;\r
1296             vuint32_t AWORR_CH0:1;\r
1297         } B;\r
1298     } AWORR0;\r
1299 \r
1300     union { /* ADC0 Watchdog out of range 1 (Base+0x02F4) */\r
1301         vuint32_t R;\r
1302         struct {\r
1303             vuint32_t :4;\r
1304             vuint32_t AWORR_CH59:1;\r
1305             vuint32_t AWORR_CH58:1;\r
1306             vuint32_t AWORR_CH57:1;\r
1307             vuint32_t AWORR_CH56:1;\r
1308             vuint32_t AWORR_CH55:1;\r
1309             vuint32_t AWORR_CH54:1;\r
1310             vuint32_t AWORR_CH53:1;\r
1311             vuint32_t AWORR_CH52:1;\r
1312             vuint32_t AWORR_CH51:1;\r
1313             vuint32_t AWORR_CH50:1;\r
1314             vuint32_t AWORR_CH49:1;\r
1315             vuint32_t AWORR_CH48:1;\r
1316             vuint32_t AWORR_CH47:1;\r
1317             vuint32_t AWORR_CH46:1;\r
1318             vuint32_t AWORR_CH45:1;\r
1319             vuint32_t AWORR_CH44:1;\r
1320             vuint32_t AWORR_CH43:1;\r
1321             vuint32_t AWORR_CH42:1;\r
1322             vuint32_t AWORR_CH41:1;\r
1323             vuint32_t AWORR_CH40:1;\r
1324             vuint32_t AWORR_CH39:1;\r
1325             vuint32_t AWORR_CH38:1;\r
1326             vuint32_t AWORR_CH37:1;\r
1327             vuint32_t AWORR_CH36:1;\r
1328             vuint32_t AWORR_CH35:1;\r
1329             vuint32_t AWORR_CH34:1;\r
1330             vuint32_t AWORR_CH33:1;\r
1331             vuint32_t AWORR_CH32:1;\r
1332         } B;\r
1333     } AWORR1;\r
1334 \r
1335     union { /* ADC0 Watchdog out of range 2 (Base+0x02F8) */\r
1336         vuint32_t R;\r
1337         struct {\r
1338             vuint32_t AWORR_CH95:1;\r
1339             vuint32_t AWORR_CH94:1;\r
1340             vuint32_t AWORR_CH93:1;\r
1341             vuint32_t AWORR_CH92:1;\r
1342             vuint32_t AWORR_CH91:1;\r
1343             vuint32_t AWORR_CH90:1;\r
1344             vuint32_t AWORR_CH89:1;\r
1345             vuint32_t AWORR_CH88:1;\r
1346             vuint32_t AWORR_CH87:1;\r
1347             vuint32_t AWORR_CH86:1;\r
1348             vuint32_t AWORR_CH85:1;\r
1349             vuint32_t AWORR_CH84:1;\r
1350             vuint32_t AWORR_CH83:1;\r
1351             vuint32_t AWORR_CH82:1;\r
1352             vuint32_t AWORR_CH81:1;\r
1353             vuint32_t AWORR_CH80:1;\r
1354             vuint32_t AWORR_CH79:1;\r
1355             vuint32_t AWORR_CH78:1;\r
1356             vuint32_t AWORR_CH77:1;\r
1357             vuint32_t AWORR_CH76:1;\r
1358             vuint32_t AWORR_CH75:1;\r
1359             vuint32_t AWORR_CH74:1;\r
1360             vuint32_t AWORR_CH73:1;\r
1361             vuint32_t AWORR_CH72:1;\r
1362             vuint32_t AWORR_CH71:1;\r
1363             vuint32_t AWORR_CH70:1;\r
1364             vuint32_t AWORR_CH69:1;\r
1365             vuint32_t AWORR_CH68:1;\r
1366             vuint32_t AWORR_CH67:1;\r
1367             vuint32_t AWORR_CH66:1;\r
1368             vuint32_t AWORR_CH65:1;\r
1369             vuint32_t AWORR_CH64:1;\r
1370         } B;\r
1371     } AWORR2;\r
1372 \r
1373    //vuint8_t ADC0_reserved12[15620]; /* Reserved 15620 bytes (Base+0x02FC-0x3FFF) */                             \r
1374     \r
1375 }; /* end of ADC0_tag */ \r
1376 \r
1377 /****************************************************************************/\r
1378 /*                          MODULE : ADC1 (12 Bit)                          */\r
1379 /****************************************************************************/\r
1380 struct ADC1_tag {\r
1381 \r
1382     union { /* ADC1 Main Configuration (Base+0x0000) */\r
1383         vuint32_t R;\r
1384         struct {\r
1385             vuint32_t OWREN:1;\r
1386             vuint32_t WLSIDE:1;\r
1387             vuint32_t MODE:1;\r
1388             vuint32_t:4;\r
1389             vuint32_t NSTART:1;\r
1390             vuint32_t:1;\r
1391             vuint32_t JTRGEN:1;\r
1392             vuint32_t JEDGE:1;\r
1393             vuint32_t JSTART:1;\r
1394             vuint32_t:2;\r
1395             vuint32_t CTUEN:1;\r
1396             vuint32_t:8;\r
1397                         vuint32_t ADCLKSEL:1;\r
1398             vuint32_t ABORT_CHAIN:1;\r
1399             vuint32_t ABORT:1;\r
1400             vuint32_t ACKO:1;\r
1401             vuint32_t:2;\r
1402             vuint32_t:2;\r
1403             vuint32_t PWDN:1;\r
1404         } B;\r
1405     } MCR;\r
1406 \r
1407     union { /* ADC1 Main Status (Base+0x0004) */\r
1408         vuint32_t R;\r
1409         struct {\r
1410             vuint32_t:7;\r
1411             vuint32_t NSTART:1;\r
1412             vuint32_t JABORT:1;\r
1413             vuint32_t:2;\r
1414             vuint32_t JSTART:1;\r
1415             vuint32_t:3;\r
1416             vuint32_t CTUSTART:1;\r
1417             vuint32_t CHADDR:7;\r
1418             vuint32_t:3;\r
1419             vuint32_t ACKO:1;\r
1420             vuint32_t:2;\r
1421             vuint32_t ADCSTATUS:3;\r
1422         } B;\r
1423     } MSR;\r
1424 \r
1425     vuint8_t ADC1_reserved0[8]; /* Reserved 8 bytes (Base+0x0008-0x000F) */\r
1426 \r
1427     union { /* ADC1 Interrupt Status (Base+0x0010) */\r
1428         vuint32_t R;\r
1429         struct {\r
1430             vuint32_t:27;\r
1431             vuint32_t EOCTU:1;\r
1432             vuint32_t JEOC:1;\r
1433             vuint32_t JECH:1;\r
1434             vuint32_t EOC:1;\r
1435             vuint32_t ECH:1;\r
1436         } B;\r
1437     } ISR;\r
1438 \r
1439     union { /* ADC1 Channel Pending 0 (Base+0x0014) */\r
1440         vuint32_t R; /*      (For precision channels)        */\r
1441         struct {\r
1442             vuint32_t :16;\r
1443             vuint32_t EOC_CH15:1;\r
1444             vuint32_t EOC_CH14:1;\r
1445             vuint32_t EOC_CH13:1;\r
1446             vuint32_t EOC_CH12:1;\r
1447             vuint32_t EOC_CH11:1;\r
1448             vuint32_t EOC_CH10:1;\r
1449             vuint32_t EOC_CH9:1;\r
1450             vuint32_t EOC_CH8:1;\r
1451             vuint32_t EOC_CH7:1;\r
1452             vuint32_t EOC_CH6:1;\r
1453             vuint32_t EOC_CH5:1;\r
1454             vuint32_t EOC_CH4:1;\r
1455             vuint32_t EOC_CH3:1;\r
1456             vuint32_t EOC_CH2:1;\r
1457             vuint32_t EOC_CH1:1;\r
1458             vuint32_t EOC_CH0:1;\r
1459         } B;\r
1460     } CE0CFR0;\r
1461 \r
1462     union { /* ADC1 Channel Pending 1 (Base+0x0018) */\r
1463         vuint32_t R; /*      (For standard Channels)         */\r
1464         struct {\r
1465             vuint32_t:24;\r
1466             vuint32_t EOC_CH39:1;\r
1467             vuint32_t EOC_CH38:1;\r
1468             vuint32_t EOC_CH37:1;\r
1469             vuint32_t EOC_CH36:1;\r
1470             vuint32_t EOC_CH35:1;\r
1471             vuint32_t EOC_CH34:1;\r
1472             vuint32_t EOC_CH33:1;\r
1473             vuint32_t EOC_CH32:1;\r
1474         } B;\r
1475     } CE0CFR1;\r
1476 \r
1477     vuint8_t ADC1_reserved1[4]; /* Reserved 4 bytes (Base+0x001C-0x001F) */\r
1478 \r
1479     union { /* ADC1 Interrupt Mask (Base+0020) */\r
1480         vuint32_t R;\r
1481         struct {\r
1482             vuint32_t:27;\r
1483             vuint32_t MSKEOCTU:1;\r
1484             vuint32_t MSKJEOC:1;\r
1485             vuint32_t MSKJECH:1;\r
1486             vuint32_t MSKEOC:1;\r
1487             vuint32_t MSKECH:1;\r
1488         } B;\r
1489     } IMR;\r
1490 \r
1491     union { /* ADC1 Channel Interrupt Mask 0 (Base+0x0024) */\r
1492         vuint32_t R; /*      (For Precision Channels)               */\r
1493         struct {\r
1494             vuint32_t:16;\r
1495             vuint32_t CIM15:1;\r
1496             vuint32_t CIM14:1;\r
1497             vuint32_t CIM13:1;\r
1498             vuint32_t CIM12:1;\r
1499             vuint32_t CIM11:1;\r
1500             vuint32_t CIM10:1;\r
1501             vuint32_t CIM9:1;\r
1502             vuint32_t CIM8:1;\r
1503             vuint32_t CIM7:1;\r
1504             vuint32_t CIM6:1;\r
1505             vuint32_t CIM5:1;\r
1506             vuint32_t CIM4:1;\r
1507             vuint32_t CIM3:1;\r
1508             vuint32_t CIM2:1;\r
1509             vuint32_t CIM1:1;\r
1510             vuint32_t CIM0:1;\r
1511         } B;\r
1512     } CIMR0;\r
1513 \r
1514     union { /* ADC1 Channel Interrupt Mask 1 (+0x0028) */\r
1515         vuint32_t R; /*      (For Standard Channels)            */\r
1516         struct {\r
1517             vuint32_t:24;\r
1518             vuint32_t CIM39:1;\r
1519             vuint32_t CIM38:1;\r
1520             vuint32_t CIM37:1;\r
1521             vuint32_t CIM36:1;\r
1522             vuint32_t CIM35:1;\r
1523             vuint32_t CIM34:1;\r
1524             vuint32_t CIM33:1;\r
1525             vuint32_t CIM32:1;\r
1526         } B;\r
1527     } CIMR1;\r
1528 \r
1529     vuint8_t ADC1_reserved2[4]; /* Reserved 4 bytes (Base+0x002C-0x002F) */\r
1530 \r
1531     union { /* ADC1 Watchdog Threshold Interrupt Status (+0x0030)*/\r
1532         vuint32_t R;\r
1533         struct {\r
1534             vuint32_t:26;\r
1535             vuint32_t WDG2H:1;\r
1536             vuint32_t WDG2L:1;\r
1537             vuint32_t WDG1H:1;\r
1538             vuint32_t WDG1L:1;\r
1539             vuint32_t WDG0H:1;\r
1540             vuint32_t WDG0L:1;\r
1541         } B;\r
1542     } WTISR;\r
1543 \r
1544     union { /* ADC1 Watchdog Threshold Interrupt Mask (+0x0034) */\r
1545         vuint32_t R;\r
1546         struct {\r
1547             vuint32_t:26;\r
1548             vuint32_t MSKWDG2H:1;\r
1549             vuint32_t MSKWDG2L:1;\r
1550             vuint32_t MSKWDG1H:1;\r
1551             vuint32_t MSKWDG1L:1;\r
1552             vuint32_t MSKWDG0H:1;\r
1553             vuint32_t MSKWDG0L:1;\r
1554         } B;\r
1555     } WTIMR;\r
1556 \r
1557     vuint8_t ADC1_reserved3[8]; /* Reserved 8 bytes (Base+0x0038-0x003F) */\r
1558 \r
1559     union { /* ADC1 DMA Enable (Base+0x0040) */\r
1560         vuint32_t R;\r
1561         struct {\r
1562             vuint32_t:30;\r
1563             vuint32_t DCLR:1;\r
1564             vuint32_t DMAEN:1;\r
1565         } B;\r
1566     } DMAE;\r
1567 \r
1568     union { /* ADC1 DMA Channel Select 0 (Base+0x0044) */\r
1569         vuint32_t R; /*      (for precision channels)           */\r
1570         struct {\r
1571           vuint32_t:16;\r
1572             vuint32_t DMA15:1;\r
1573             vuint32_t DMA14:1;\r
1574             vuint32_t DMA13:1;\r
1575             vuint32_t DMA12:1;\r
1576             vuint32_t DMA11:1;\r
1577             vuint32_t DMA10:1;\r
1578             vuint32_t DMA9:1;\r
1579             vuint32_t DMA8:1;\r
1580             vuint32_t DMA7:1;\r
1581             vuint32_t DMA6:1;\r
1582             vuint32_t DMA5:1;\r
1583             vuint32_t DMA4:1;\r
1584             vuint32_t DMA3:1;\r
1585             vuint32_t DMA2:1;\r
1586             vuint32_t DMA1:1;\r
1587             vuint32_t DMA0:1;\r
1588         } B;\r
1589     } DMAR0;\r
1590 \r
1591     union { /* ADC1 DMA Channel Select 1 (Base+0x0048) */\r
1592         vuint32_t R; /*      (for standard channels)            */\r
1593         struct {\r
1594             vuint32_t:24;\r
1595             vuint32_t DMA39:1;\r
1596             vuint32_t DMA38:1;\r
1597             vuint32_t DMA37:1;\r
1598             vuint32_t DMA36:1;\r
1599             vuint32_t DMA35:1;\r
1600             vuint32_t DMA34:1;\r
1601             vuint32_t DMA33:1;\r
1602             vuint32_t DMA32:1;\r
1603         } B;\r
1604     } DMAR1;\r
1605 \r
1606     vuint8_t ADC1_reserved4[20]; /* Reserved 20 bytes (Base+0x004C-0x005F) */\r
1607 \r
1608     /* Note the threshold registers are not implemented as an array for    */\r
1609     /*  concistency with ADC0 header section                               */\r
1610 \r
1611     union { /* ADC1 Threshold  0 (Base+0x0060) */\r
1612         vuint32_t R;\r
1613         struct {\r
1614           vuint32_t:4;\r
1615             vuint32_t THRH:12;\r
1616             vuint32_t:4;\r
1617             vuint32_t THRL:12;\r
1618         } B;\r
1619     } THRHLR0;\r
1620 \r
1621     union { /* ADC1 Threshold  1 (Base+0x0064) */\r
1622         vuint32_t R;\r
1623         struct {\r
1624             vuint32_t:4;\r
1625             vuint32_t THRH:12;\r
1626             vuint32_t:4;\r
1627             vuint32_t THRL:12;\r
1628         } B;\r
1629     } THRHLR1;\r
1630 \r
1631     union { /* ADC1 Threshold  2 (Base+0x0068) */\r
1632         vuint32_t R;\r
1633         struct {\r
1634           vuint32_t:4;\r
1635             vuint32_t THRH:12;\r
1636             vuint32_t:4;\r
1637             vuint32_t THRL:12;\r
1638         } B;\r
1639     } THRHLR2;\r
1640 \r
1641     vuint8_t ADC1_reserved5[20]; /* Reserved 20 bytes (Base+0x006C-0x007F) */\r
1642 \r
1643     union { /* ADC1 Presampling Control (Base+0x0080) */\r
1644         vuint32_t R;\r
1645         struct {\r
1646           vuint32_t:25;\r
1647             vuint32_t PREVAL2:2;\r
1648             vuint32_t PREVAL1:2;\r
1649             vuint32_t PREVAL0:2;\r
1650             vuint32_t PRECONV:1;\r
1651         } B;\r
1652     } PSCR;\r
1653 \r
1654     union { /* ADC1 Presampling 0 (Base+0x0084) */\r
1655         vuint32_t R; /*      (precision channels)        */\r
1656         struct {\r
1657             vuint32_t:16;\r
1658             vuint32_t PRES15:1;\r
1659             vuint32_t PRES14:1;\r
1660             vuint32_t PRES13:1;\r
1661             vuint32_t PRES12:1;\r
1662             vuint32_t PRES11:1;\r
1663             vuint32_t PRES10:1;\r
1664             vuint32_t PRES9:1;\r
1665             vuint32_t PRES8:1;\r
1666             vuint32_t PRES7:1;\r
1667             vuint32_t PRES6:1;\r
1668             vuint32_t PRES5:1;\r
1669             vuint32_t PRES4:1;\r
1670             vuint32_t PRES3:1;\r
1671             vuint32_t PRES2:1;\r
1672             vuint32_t PRES1:1;\r
1673             vuint32_t PRES0:1;\r
1674         } B;\r
1675     } PSR0;\r
1676 \r
1677     union { /* ADC1 Presampling 1 (Base+0x0088) */\r
1678         vuint32_t R; /*      (standard channels)         */\r
1679         struct {\r
1680             vuint32_t:24;\r
1681             vuint32_t PRES39:1;\r
1682             vuint32_t PRES38:1;\r
1683             vuint32_t PRES37:1;\r
1684             vuint32_t PRES36:1;\r
1685             vuint32_t PRES35:1;\r
1686             vuint32_t PRES34:1;\r
1687             vuint32_t PRES33:1;\r
1688             vuint32_t PRES32:1;\r
1689         } B;\r
1690     } PSR1;\r
1691 \r
1692     vuint8_t ADC1_reserved6[8]; /* Reserved 8 bytes (Base+0x008C-0x0093) */\r
1693 \r
1694     /* Note the following CTR registers are NOT implemented as an array to */\r
1695     /*  try and maintain some concistency through the header file          */\r
1696     /*  (The registers are however identical)                              */\r
1697 \r
1698     union { /* ADC1 Conversion Timing 0 (Base+0x0094) */\r
1699         vuint32_t R; /*      (precision channels)              */\r
1700         struct {\r
1701             vuint32_t:16;\r
1702             vuint32_t INPLATCH:1;\r
1703             vuint32_t:1;\r
1704             vuint32_t OFFSHIFT:2;\r
1705             vuint32_t:1;\r
1706             vuint32_t INPCMP:2;\r
1707             vuint32_t:1;\r
1708             vuint32_t INPSAMP:8;\r
1709         } B;\r
1710     } CTR0;\r
1711 \r
1712     union { /* ADC1 Conversion Timing 1 (Base+0x0098) */\r
1713         vuint32_t R; /*      (standard channels)              */\r
1714         struct {\r
1715             vuint32_t:16;\r
1716             vuint32_t INPLATCH:1;\r
1717             vuint32_t:1;\r
1718             vuint32_t OFFSHIFT:2;\r
1719             vuint32_t:1;\r
1720             vuint32_t INPCMP:2;\r
1721             vuint32_t:1;\r
1722             vuint32_t INPSAMP:8;\r
1723         } B;\r
1724     } CTR1;\r
1725 \r
1726     vuint8_t ADC1_reserved7[8]; /* Reserved 8 bytes (Base+0x009C-0x00A3) */\r
1727 \r
1728     union { /* ADC1 Normal Conversion Mask 0 (Base+0x00A4) */\r
1729         vuint32_t R; /*      (precision channels)                  */\r
1730         struct {\r
1731             vuint32_t :16;\r
1732             vuint32_t CH15:1;\r
1733             vuint32_t CH14:1;\r
1734             vuint32_t CH13:1;\r
1735             vuint32_t CH12:1;\r
1736             vuint32_t CH11:1;\r
1737             vuint32_t CH10:1;\r
1738             vuint32_t CH9:1;\r
1739             vuint32_t CH8:1;\r
1740             vuint32_t CH7:1;\r
1741             vuint32_t CH6:1;\r
1742             vuint32_t CH5:1;\r
1743             vuint32_t CH4:1;\r
1744             vuint32_t CH3:1;\r
1745             vuint32_t CH2:1;\r
1746             vuint32_t CH1:1;\r
1747             vuint32_t CH0:1;\r
1748         } B;\r
1749     } NCMR0;\r
1750 \r
1751     union { /* ADC1 Normal Conversion Mask 1 (Base+0x00A8) */\r
1752         vuint32_t R; /*      (standard channels)                    */\r
1753         struct {\r
1754             vuint32_t:24;\r
1755             vuint32_t CH39:1;\r
1756             vuint32_t CH38:1;\r
1757             vuint32_t CH37:1;\r
1758             vuint32_t CH36:1;\r
1759             vuint32_t CH35:1;\r
1760             vuint32_t CH34:1;\r
1761             vuint32_t CH33:1;\r
1762             vuint32_t CH32:1;\r
1763         } B;\r
1764     } NCMR1;\r
1765 \r
1766     vuint8_t ADC1_reserved8[8]; /* Reserved 8 bytes (Base+0x00AC-0x00B3) */\r
1767 \r
1768     union { /* ADC1 Injected Conversion Mask0 (Base+0x00B4) */\r
1769         vuint32_t R; /*      (precision channels)                    */\r
1770         struct {\r
1771             vuint32_t :16;\r
1772             vuint32_t CH15:1;\r
1773             vuint32_t CH14:1;\r
1774             vuint32_t CH13:1;\r
1775             vuint32_t CH12:1;\r
1776             vuint32_t CH11:1;\r
1777             vuint32_t CH10:1;\r
1778             vuint32_t CH9:1;\r
1779             vuint32_t CH8:1;\r
1780             vuint32_t CH7:1;\r
1781             vuint32_t CH6:1;\r
1782             vuint32_t CH5:1;\r
1783             vuint32_t CH4:1;\r
1784             vuint32_t CH3:1;\r
1785             vuint32_t CH2:1;\r
1786             vuint32_t CH1:1;\r
1787             vuint32_t CH0:1;\r
1788         } B;\r
1789     } JCMR0;\r
1790 \r
1791     union { /* ADC1 Injected Conversion Mask1 (Base+0x00B8) */\r
1792         vuint32_t R; /*      (standard channels)                     */\r
1793         struct {\r
1794             vuint32_t :24;\r
1795             vuint32_t CH39:1;\r
1796             vuint32_t CH38:1;\r
1797             vuint32_t CH37:1;\r
1798             vuint32_t CH36:1;\r
1799             vuint32_t CH35:1;\r
1800             vuint32_t CH34:1;\r
1801             vuint32_t CH33:1;\r
1802             vuint32_t CH32:1;\r
1803         } B;\r
1804     } JCMR1;\r
1805 \r
1806    vuint8_t ADC1_reserved9[12]; /* Reserved 12 bytes (Base+0x00BC-0x00C7) */\r
1807         \r
1808          union {  /* Power Down Exit Delay Register (base+0x00C8)*/\r
1809         vuint32_t R;\r
1810             struct {\r
1811                 vuint32_t:24;                \r
1812                 vuint32_t PDED:8;\r
1813             } B;\r
1814         } PDEDR;     \r
1815 \r
1816         vuint8_t ADC1_reserved10[52]; /* Reserved 52 bytes (Base+0x00CC-0x00FF) */              \r
1817 \r
1818     union { /* ADC1 Channel 0-39 Data (Base+0x0100-0x019C) */\r
1819         vuint32_t R; /* Note CDR[16..31] are reserved 0x0140-0x017F              */\r
1820         struct {\r
1821             vuint32_t:12;\r
1822             vuint32_t VALID:1;\r
1823             vuint32_t OVERW:1;\r
1824             vuint32_t RESULT:2;\r
1825             vuint32_t:4;\r
1826             vuint32_t CDATA:12;\r
1827         } B;\r
1828     } CDR[40];\r
1829 \r
1830     vuint8_t ADC1_reserved11[272]; /* Reserved 252 bytes (Base+0x01A0-0x002AF) */\r
1831 \r
1832     union { /* ADC1 Channel Watchdog Select 0 (Base+0x02B0) */\r
1833         vuint32_t R; /*      (precision channels)                    */\r
1834         struct {\r
1835             vuint32_t:2;\r
1836             vuint32_t WSEL_CH7:2;\r
1837             vuint32_t:2;\r
1838             vuint32_t WSEL_CH6:2;\r
1839             vuint32_t:2;\r
1840             vuint32_t WSEL_CH5:2;\r
1841             vuint32_t:2;\r
1842             vuint32_t WSEL_CH4:2;\r
1843             vuint32_t:2;\r
1844             vuint32_t WSEL_CH3:2;\r
1845             vuint32_t:2;\r
1846             vuint32_t WSEL_CH2:2;\r
1847             vuint32_t:2;\r
1848             vuint32_t WSEL_CH1:2;\r
1849             vuint32_t:2;\r
1850             vuint32_t WSEL_CH0:2;\r
1851         } B;\r
1852     } CWSELR0;\r
1853 \r
1854     union { /* ADC1 Channel Watchdog Select 1 (Base+0x02B4) */\r
1855         vuint32_t R; /*      (precision channels)                    */\r
1856         struct {\r
1857             vuint32_t:2;\r
1858             vuint32_t WSEL_CH15:2;\r
1859             vuint32_t:2;\r
1860             vuint32_t WSEL_CH14:2;\r
1861             vuint32_t:2;\r
1862             vuint32_t WSEL_CH13:2;\r
1863             vuint32_t:2;\r
1864             vuint32_t WSEL_CH12:2;\r
1865             vuint32_t:2;\r
1866             vuint32_t WSEL_CH11:2;\r
1867             vuint32_t:2;\r
1868             vuint32_t WSEL_CH10:2;\r
1869             vuint32_t:2;\r
1870             vuint32_t WSEL_CH9:2;\r
1871             vuint32_t:2;\r
1872             vuint32_t WSEL_CH8:2;\r
1873         } B;\r
1874     } CWSELR1;\r
1875 \r
1876     vuint8_t ADC1_reserved12[8]; /* Reserved 8 bytes (Base+0x02B8-0x02BF) */\r
1877 \r
1878     union { /* ADC1 Channel Watchdog Select 4 (Base+0x02C0) */\r
1879         vuint32_t R; /*      (standard channels)                     */\r
1880         struct {\r
1881             vuint32_t:2;\r
1882             vuint32_t WSEL_CH39:2;\r
1883             vuint32_t:2;\r
1884             vuint32_t WSEL_CH38:2;\r
1885             vuint32_t:2;\r
1886             vuint32_t WSEL_CH37:2;\r
1887             vuint32_t:2;\r
1888             vuint32_t WSEL_CH36:2;\r
1889             vuint32_t:2;\r
1890             vuint32_t WSEL_CH35:2;\r
1891             vuint32_t:2;\r
1892             vuint32_t WSEL_CH34:2;\r
1893             vuint32_t:2;\r
1894             vuint32_t WSEL_CH33:2;\r
1895             vuint32_t:2;\r
1896             vuint32_t WSEL_CH32:2;\r
1897         } B;\r
1898     } CWSELR4;\r
1899 \r
1900     union { /* ADC1 Channel Watchdog Select 5 (Base+0x02C4) */\r
1901         vuint32_t R; /*      (standard channels)                     */\r
1902         struct {\r
1903             vuint32_t:14;\r
1904             vuint32_t WSEL_CH44:2;\r
1905             vuint32_t:2;\r
1906             vuint32_t WSEL_CH43:2;\r
1907             vuint32_t:2;\r
1908             vuint32_t WSEL_CH42:2;\r
1909             vuint32_t:2;\r
1910             vuint32_t WSEL_CH41:2;\r
1911             vuint32_t:2;\r
1912             vuint32_t WSEL_CH40:2;\r
1913         } B;\r
1914     } CWSELR5;\r
1915 \r
1916     vuint8_t ADC1_reserved13[24]; /* Reserved 24 bytes (Base+0x02C8-0x02DF) */\r
1917 \r
1918     union { /* ADC1 Channel Watchdog Enable0 (Base+0x02E0) */\r
1919         vuint32_t R; /*      (precision channels)                    */\r
1920         struct {\r
1921             vuint32_t :16;\r
1922             vuint32_t CWEN15:1;\r
1923             vuint32_t CWEN14:1;\r
1924             vuint32_t CWEN13:1;\r
1925             vuint32_t CWEN12:1;\r
1926             vuint32_t CWEN11:1;\r
1927             vuint32_t CWEN10:1;\r
1928             vuint32_t CWEN9:1;\r
1929             vuint32_t CWEN8:1;\r
1930             vuint32_t CWEN7:1;\r
1931             vuint32_t CWEN6:1;\r
1932             vuint32_t CWEN5:1;\r
1933             vuint32_t CWEN4:1;\r
1934             vuint32_t CWEN3:1;\r
1935             vuint32_t CWEN2:1;\r
1936             vuint32_t CWEN1:1;\r
1937             vuint32_t CWEN0:1;\r
1938         } B;\r
1939     } CWENR0;\r
1940 \r
1941     union { /* ADC1 Channel Watchdog Enable1 (Base++0x02E4) */\r
1942         vuint32_t R; /*      (standard channels)                     */\r
1943         struct {\r
1944             vuint32_t :24;\r
1945             vuint32_t CWEN39:1;\r
1946             vuint32_t CWEN38:1;\r
1947             vuint32_t CWEN37:1;\r
1948             vuint32_t CWEN36:1;\r
1949             vuint32_t CWEN35:1;\r
1950             vuint32_t CWEN34:1;\r
1951             vuint32_t CWEN33:1;\r
1952             vuint32_t CWEN32:1;\r
1953         } B;\r
1954     } CWENR1;\r
1955 \r
1956     vuint8_t ADC1_reserved14[8]; /* Reserved 8 bytes (Base+0x02E8-0x02EF) */\r
1957 \r
1958     union { /* ADC1 Watchdog out of range 0 (Base+0x02F0) */\r
1959         vuint32_t R;\r
1960         struct {\r
1961             vuint32_t :16;\r
1962             vuint32_t AWORR_CH15:1;\r
1963             vuint32_t AWORR_CH14:1;\r
1964             vuint32_t AWORR_CH13:1;\r
1965             vuint32_t AWORR_CH12:1;\r
1966             vuint32_t AWORR_CH11:1;\r
1967             vuint32_t AWORR_CH10:1;\r
1968             vuint32_t AWORR_CH9:1;\r
1969             vuint32_t AWORR_CH8:1;\r
1970             vuint32_t AWORR_CH7:1;\r
1971             vuint32_t AWORR_CH6:1;\r
1972             vuint32_t AWORR_CH5:1;\r
1973             vuint32_t AWORR_CH4:1;\r
1974             vuint32_t AWORR_CH3:1;\r
1975             vuint32_t AWORR_CH2:1;\r
1976             vuint32_t AWORR_CH1:1;\r
1977             vuint32_t AWORR_CH0:1;\r
1978         } B;\r
1979     } AWORR0;\r
1980 \r
1981     union { /* ADC1 Watchdog out of range 1 (Base+0x02F4) */\r
1982         vuint32_t R;\r
1983         struct {\r
1984             vuint32_t :24;\r
1985             vuint32_t AWORR_CH39:1;\r
1986             vuint32_t AWORR_CH38:1;\r
1987             vuint32_t AWORR_CH37:1;\r
1988             vuint32_t AWORR_CH36:1;\r
1989             vuint32_t AWORR_CH35:1;\r
1990             vuint32_t AWORR_CH34:1;\r
1991             vuint32_t AWORR_CH33:1;\r
1992             vuint32_t AWORR_CH32:1;\r
1993         } B;\r
1994     } AWORR1;\r
1995 \r
1996     vuint8_t ADC1_reserved15[8]; /* Reserved 8 bytes (Base+0x02F8-0x02FF) */\r
1997 \r
1998 }; /* end of ADC1_tag */ \r
1999 /****************************************************************************/\r
2000 /*                          MODULE : CANSP                                   */\r
2001 /****************************************************************************/\r
2002     struct CANSP_tag {\r
2003         \r
2004         union { /* CANSP Control Reg (Base+0x0000) */\r
2005             vuint32_t R;\r
2006             struct {\r
2007                 vuint32_t:16;\r
2008                 vuint32_t RX_COMPLETE:1;\r
2009                 vuint32_t BUSY:1;\r
2010                 vuint32_t ACTIVE_CK:1;\r
2011                 vuint32_t:3;\r
2012                 vuint32_t MODE:1;\r
2013                 vuint32_t CAN_RX_SEL:3;\r
2014                 vuint32_t BRP:5;\r
2015                 vuint32_t CAN_SMPLR_EN:1;\r
2016             } B;\r
2017         } CR;                   \r
2018 \r
2019     union { /* CANSP Sample 0..11 (Base+0x0000-0x0030)*/\r
2020         vuint32_t R;\r
2021     } SR[12];\r
2022 \r
2023     };                          /* end of CANSP_tag */  \r
2024 /****************************************************************************/\r
2025 /*                          MODULE : ECSM                                   */\r
2026 /****************************************************************************/\r
2027 struct ECSM_tag{\r
2028 \r
2029     union { /* ECSM Processor Core Type (Base+0x0000) */\r
2030         vuint16_t R;\r
2031     } PCT;\r
2032 \r
2033     union { /* ECSM Revision (Base+0x0002) */\r
2034         vuint16_t R;\r
2035     } REV;\r
2036 \r
2037     vuint8_t ECSM_reserved0[4]; /* Reserved 4 bytes (Base+0x0004-0x0007) */\r
2038 \r
2039     union { /* ECSM IPS Module Configuration (Base+0x0008) */\r
2040         vuint32_t R;\r
2041     } IMC;\r
2042 \r
2043     vuint8_t ECSM_reserved1[7]; /* Reserved 7 bytes (Base+0x000C-0x0012) */\r
2044 \r
2045     union { /* ECSM Miscellaneous Wakeup Control (+0x0013) */\r
2046         vuint8_t R;\r
2047         struct {\r
2048             vuint8_t ENBWCR:1;\r
2049             vuint8_t :3;\r
2050             vuint8_t PRILVL:4;\r
2051         } B;\r
2052     } MWCR;\r
2053 \r
2054     vuint8_t ECSM_reserved2[11]; /* Reserved 11 bytes (Base+0x0014-0x001E) */\r
2055 \r
2056     union { /* ECSM Miscellaneous Interrupt (Base+0x001F) */\r
2057         vuint8_t R;\r
2058         struct {\r
2059             vuint8_t FB0AI:1;\r
2060             vuint8_t FB0SI:1;\r
2061             vuint8_t FB1AI:1;\r
2062             vuint8_t FB1SI:1;\r
2063             vuint8_t :4;\r
2064         } B;\r
2065     } MIR;\r
2066 \r
2067     vuint8_t ECSM_reserved3[4]; /* Reserved 4 bytes (Base+0x0020-0x0023) */\r
2068 \r
2069     union { /*ECSM Miscellaneous User-Defined Control (+0x0024)*/\r
2070             vuint32_t R;\r
2071           } MUDCR;                /* ECSM Miscellaneous User-Defined Control Register */\r
2072 \r
2073     vuint8_t ECSM_reserved4[27]; /* Reserved 27 bytes (Base+0x0028-0x0042) */\r
2074 \r
2075     union { /* ECSM ECC Configuration (Base+0x0043) */\r
2076         vuint8_t R;\r
2077         struct {\r
2078             vuint8_t :2;\r
2079             vuint8_t ER1BR:1;\r
2080             vuint8_t EF1BR:1;\r
2081             vuint8_t :2;\r
2082             vuint8_t ERNCR:1;\r
2083             vuint8_t EFNCR:1;\r
2084         } B;\r
2085     } ECR;\r
2086 \r
2087     vuint8_t ECSM_reserved5[3]; /* Reserved 3 bytes (Base+0x0044-0x0046) */\r
2088 \r
2089     union { /* ECSM ECC Status (Base+0x0047) */\r
2090         vuint8_t R;\r
2091         struct {\r
2092             vuint8_t :2;\r
2093             vuint8_t R1BC:1;\r
2094             vuint8_t F1BC:1;\r
2095             vuint8_t :2;\r
2096             vuint8_t RNCE:1;\r
2097             vuint8_t FNCE:1;\r
2098         } B;\r
2099     } ESR;\r
2100 \r
2101     vuint8_t ECSM_reserved6[2]; /* Reserved 2 bytes (Base+0x0048-0x0049) */\r
2102 \r
2103     union { /* ECSM ECC Error Generation (Base+0x004A) */\r
2104         vuint16_t R;\r
2105         struct {\r
2106             vuint16_t :2;\r
2107             vuint16_t FRC1BI:1;\r
2108             vuint16_t FR11BI:1;\r
2109             vuint16_t :2;\r
2110             vuint16_t FRCNCI:1;\r
2111             vuint16_t FR1NCI:1;\r
2112             vuint16_t :1;\r
2113             vuint16_t ERRBIT:7;\r
2114         } B;\r
2115     } EEGR;\r
2116 \r
2117     vuint8_t ECSM_reserved7[4]; /* Reserved 4 bytes (Base+0x004C-0x004F) */\r
2118 \r
2119     union { /* ECSM Flash ECC Address(Base+0x0050) */\r
2120         vuint32_t R;\r
2121     } FEAR;\r
2122 \r
2123     vuint8_t ECSM_reserved8[2]; /* Reserved 2 bytes (Base+0x0054-0x0055) */\r
2124 \r
2125     union { /* ECSM Flash ECC Master Number (Base+0x0056) */\r
2126         vuint8_t R;\r
2127         struct {\r
2128             vuint8_t :4;\r
2129             vuint8_t FEMR:4;\r
2130         } B;\r
2131     } FEMR;\r
2132 \r
2133     union { /* ECSM Flash ECC Attributes (Base+0x0057) */\r
2134         vuint8_t R;\r
2135         struct {\r
2136             vuint8_t WRITE:1;\r
2137                         vuint8_t SIZE:3;\r
2138             vuint8_t PROTECTION:4;\r
2139         } B;\r
2140     } FEAT;\r
2141 \r
2142     vuint8_t ECSM_reserved9[4]; /* Reserved 4 bytes (Base+0x0058-0x005B) */\r
2143 \r
2144     union { /* ECSM Flash ECC Data (Base+0x005C) */\r
2145         vuint32_t R;\r
2146     } FEDR;\r
2147 \r
2148     union { /* ECSM RAM ECC Address (Base+0x0060) */\r
2149         vuint32_t R;\r
2150     } REAR;\r
2151 \r
2152     vuint8_t ECSM_reserved10[1]; /* Reserved 1 bytes (Base+0x0064) */\r
2153 \r
2154     union { /* ECSM RAM ECC Address (Base+0x0065) */\r
2155         vuint8_t R;\r
2156     } RESR;\r
2157 \r
2158     union { /* ECSM RAM ECC Master Number (Base+0x0066) */\r
2159         vuint8_t R;\r
2160         struct {\r
2161             vuint8_t :4;\r
2162             vuint8_t REMR:4;\r
2163         } B;\r
2164     } REMR;\r
2165 \r
2166     union { /* ECSM RAM ECC Attributes (Base+0x0067) */\r
2167         vuint8_t R;\r
2168         struct {\r
2169             vuint8_t WRITE:1;\r
2170             vuint8_t SIZE:3;\r
2171             vuint8_t PROTECTION:4;\r
2172         } B;\r
2173     } REAT;\r
2174 \r
2175     vuint8_t ECSM_reserved11[4]; /* Reserved 4 bytes (Base+0x0068-0x006B) */\r
2176 \r
2177     union { /* ECSM RAM ECC Data (Base+0x006C) */\r
2178         vuint32_t R;\r
2179     } REDR;\r
2180 \r
2181 }; /* end of ECSM_tag */\r
2182 \r
2183 /****************************************************************************/\r
2184 /*                          MODULE : RTC/API                                */\r
2185 /****************************************************************************/\r
2186 struct RTC_tag{\r
2187 \r
2188     union { /* RTC Supervisor Control (Base+0x0000) */\r
2189         vuint32_t R;\r
2190         struct {\r
2191             vuint32_t SUPV:1;\r
2192             vuint32_t :31;\r
2193         } B;\r
2194     } RTCSUPV ;\r
2195 \r
2196     union { /* RTC Control (Base+0x0004) */\r
2197         vuint32_t R;\r
2198         struct {\r
2199             vuint32_t CNTEN:1;\r
2200             vuint32_t RTCIE:1;\r
2201             vuint32_t FRZEN:1;\r
2202             vuint32_t ROVREN:1;\r
2203             vuint32_t RTCVAL:12;\r
2204             vuint32_t APIEN:1;\r
2205             vuint32_t APIIE:1;\r
2206             vuint32_t CLKSEL:2;\r
2207             vuint32_t DIV512EN:1;\r
2208             vuint32_t DIV32EN:1;\r
2209             vuint32_t APIVAL:10;\r
2210         } B;\r
2211     } RTCC;\r
2212 \r
2213     union { /* RTC Status (Base+0x0008) */\r
2214         vuint32_t R;\r
2215         struct {\r
2216             vuint32_t :2;\r
2217             vuint32_t RTCF:1;\r
2218             vuint32_t :15;\r
2219             vuint32_t APIF:1;\r
2220             vuint32_t :2;\r
2221             vuint32_t ROVRF:1;\r
2222             vuint32_t :10;\r
2223         } B;\r
2224     } RTCS;\r
2225 \r
2226     union { /* RTC Counter (Base+0x000C) */\r
2227         vuint32_t R;\r
2228         struct {\r
2229             vuint32_t RTCCNT:32;\r
2230         } B;\r
2231     } RTCCNT;\r
2232 \r
2233 }; /* end of RTC_tag */\r
2234 \r
2235 /****************************************************************************/\r
2236 /*          MODULE : SIU Lite (tagged as SIU for compatibility)             */\r
2237 /****************************************************************************/\r
2238 struct SIU_tag {\r
2239 \r
2240     vuint8_t SIU_reserved0[4]; /* Reserved 4 Bytes (Base+0x0) */\r
2241 \r
2242     union { /* MCU ID1 (Base+0x0004) */\r
2243         vuint32_t R;\r
2244         struct {\r
2245             vuint32_t PARTNUM:16;\r
2246             vuint32_t CSP:1;\r
2247             vuint32_t PKG:5;\r
2248             vuint32_t :2;\r
2249             vuint32_t MAJOR_MASK:4;\r
2250             vuint32_t MINOR_MASK:4;\r
2251         } B;\r
2252     } MIDR1;\r
2253 \r
2254     union { /* MCU ID2 (Base+0x0008) */\r
2255         vuint32_t R;\r
2256         struct {\r
2257             vuint32_t SF:1;\r
2258             vuint32_t FLASH_SIZE_1:4;\r
2259             vuint32_t FLASH_SIZE_2:4;\r
2260             vuint32_t :7;\r
2261             vuint32_t PARTNUM:8;\r
2262             vuint32_t :3;\r
2263             vuint32_t EE:1;\r
2264             vuint32_t :3;\r
2265             vuint32_t FR:1;\r
2266         } B;\r
2267     } MIDR2;\r
2268 \r
2269     vuint8_t SIU_reserved1[8]; /* Reserved 8 Bytes (Base+(0x000C--0x0013)) */\r
2270 \r
2271     union { /* Interrupt Status Flag (Base+0x0014)*/\r
2272         vuint32_t R;\r
2273         struct {\r
2274             vuint32_t :8;\r
2275             vuint32_t EIF23:1;\r
2276             vuint32_t EIF22:1;\r
2277             vuint32_t EIF21:1;\r
2278             vuint32_t EIF20:1;\r
2279             vuint32_t EIF19:1;\r
2280             vuint32_t EIF18:1;\r
2281             vuint32_t EIF17:1;\r
2282             vuint32_t EIF16:1;\r
2283             vuint32_t EIF15:1;\r
2284             vuint32_t EIF14:1;\r
2285             vuint32_t EIF13:1;\r
2286             vuint32_t EIF12:1;\r
2287             vuint32_t EIF11:1;\r
2288             vuint32_t EIF10:1;\r
2289             vuint32_t EIF9:1;\r
2290             vuint32_t EIF8:1;\r
2291             vuint32_t EIF7:1;\r
2292             vuint32_t EIF6:1;\r
2293             vuint32_t EIF5:1;\r
2294             vuint32_t EIF4:1;\r
2295             vuint32_t EIF3:1;\r
2296             vuint32_t EIF2:1;\r
2297             vuint32_t EIF1:1;\r
2298             vuint32_t EIF0:1;\r
2299         } B;\r
2300     } ISR;\r
2301 \r
2302     union { /* Interrupt Request Enable (Base+0x0018) */\r
2303         vuint32_t R;\r
2304         struct {\r
2305             vuint32_t :8;\r
2306             vuint32_t IRE23:1;\r
2307             vuint32_t IRE22:1;\r
2308             vuint32_t IRE21:1;\r
2309             vuint32_t IRE20:1;\r
2310             vuint32_t IRE19:1;\r
2311             vuint32_t IRE18:1;\r
2312             vuint32_t IRE17:1;\r
2313             vuint32_t IRE16:1;\r
2314             vuint32_t IRE15:1;\r
2315             vuint32_t IRE14:1;\r
2316             vuint32_t IRE13:1;\r
2317             vuint32_t IRE12:1;\r
2318             vuint32_t IRE11:1;\r
2319             vuint32_t IRE10:1;\r
2320             vuint32_t IRE9:1;\r
2321             vuint32_t IRE8:1;\r
2322             vuint32_t IRE7:1;\r
2323             vuint32_t IRE6:1;\r
2324             vuint32_t IRE5:1;\r
2325             vuint32_t IRE4:1;\r
2326             vuint32_t IRE3:1;\r
2327             vuint32_t IRE2:1;\r
2328             vuint32_t IRE1:1;\r
2329             vuint32_t IRE0:1;\r
2330         } B;\r
2331     } IRER;\r
2332 \r
2333     vuint8_t SIU_reserved2[12]; /* Reserved 12 Bytes (Base+0x001C-0x0027) */\r
2334 \r
2335     union { /* Interrupt Rising-Edge Event Enable (+0x0028) */\r
2336         vuint32_t R;\r
2337         struct {\r
2338             vuint32_t :8;\r
2339             vuint32_t IREE23:1;\r
2340             vuint32_t IREE22:1;\r
2341             vuint32_t IREE21:1;\r
2342             vuint32_t IREE20:1;\r
2343             vuint32_t IREE19:1;\r
2344             vuint32_t IREE18:1;\r
2345             vuint32_t IREE17:1;\r
2346             vuint32_t IREE16:1;\r
2347             vuint32_t IREE15:1;\r
2348             vuint32_t IREE14:1;\r
2349             vuint32_t IREE13:1;\r
2350             vuint32_t IREE12:1;\r
2351             vuint32_t IREE11:1;\r
2352             vuint32_t IREE10:1;\r
2353             vuint32_t IREE9:1;\r
2354             vuint32_t IREE8:1;\r
2355             vuint32_t IREE7:1;\r
2356             vuint32_t IREE6:1;\r
2357             vuint32_t IREE5:1;\r
2358             vuint32_t IREE4:1;\r
2359             vuint32_t IREE3:1;\r
2360             vuint32_t IREE2:1;\r
2361             vuint32_t IREE1:1;\r
2362             vuint32_t IREE0:1;\r
2363         } B;\r
2364     } IREER;\r
2365 \r
2366     union { /* Interrupt Falling-Edge Event Enable (+0x002C)*/\r
2367         vuint32_t R;\r
2368         struct {\r
2369             vuint32_t :8;\r
2370             vuint32_t IFEE23:1;\r
2371             vuint32_t IFEE22:1;\r
2372             vuint32_t IFEE21:1;\r
2373             vuint32_t IFEE20:1;\r
2374             vuint32_t IFEE19:1;\r
2375             vuint32_t IFEE18:1;\r
2376             vuint32_t IFEE17:1;\r
2377             vuint32_t IFEE16:1;\r
2378             vuint32_t IFEE15:1;\r
2379             vuint32_t IFEE14:1;\r
2380             vuint32_t IFEE13:1;\r
2381             vuint32_t IFEE12:1;\r
2382             vuint32_t IFEE11:1;\r
2383             vuint32_t IFEE10:1;\r
2384             vuint32_t IFEE9:1;\r
2385             vuint32_t IFEE8:1;\r
2386             vuint32_t IFEE7:1;\r
2387             vuint32_t IFEE6:1;\r
2388             vuint32_t IFEE5:1;\r
2389             vuint32_t IFEE4:1;\r
2390             vuint32_t IFEE3:1;\r
2391             vuint32_t IFEE2:1;\r
2392             vuint32_t IFEE1:1;\r
2393             vuint32_t IFEE0:1;\r
2394         } B;\r
2395     } IFEER;\r
2396 \r
2397     union { /* Interrupt Filter Enable (Base+0x0030) */\r
2398         vuint32_t R;\r
2399         struct {\r
2400             vuint32_t :8;\r
2401             vuint32_t IFE23:1;\r
2402             vuint32_t IFE22:1;\r
2403             vuint32_t IFE21:1;\r
2404             vuint32_t IFE20:1;\r
2405             vuint32_t IFE19:1;\r
2406             vuint32_t IFE18:1;\r
2407             vuint32_t IFE17:1;\r
2408             vuint32_t IFE16:1;\r
2409             vuint32_t IFE15:1;\r
2410             vuint32_t IFE14:1;\r
2411             vuint32_t IFE13:1;\r
2412             vuint32_t IFE12:1;\r
2413             vuint32_t IFE11:1;\r
2414             vuint32_t IFE10:1;\r
2415             vuint32_t IFE9:1;\r
2416             vuint32_t IFE8:1;\r
2417             vuint32_t IFE7:1;\r
2418             vuint32_t IFE6:1;\r
2419             vuint32_t IFE5:1;\r
2420             vuint32_t IFE4:1;\r
2421             vuint32_t IFE3:1;\r
2422             vuint32_t IFE2:1;\r
2423             vuint32_t IFE1:1;\r
2424             vuint32_t IFE0:1;\r
2425         } B;\r
2426     } IFER;\r
2427 \r
2428     vuint8_t SIU_reserved3[12]; /* Reserved 12 Bytes (Base+0x0034-0x003F) */\r
2429 \r
2430     union { /* Pad Configuration 0..148 (Base+0x0040-0x0168)*/\r
2431         vuint16_t R;\r
2432         struct {\r
2433                 vuint16_t:1;\r
2434                 vuint16_t SMC:1;\r
2435                 vuint16_t APC:1;\r
2436                 vuint16_t:1;\r
2437                 vuint16_t PA:2;\r
2438                 vuint16_t OBE:1;\r
2439                 vuint16_t IBE:1;\r
2440                 vuint16_t:2;\r
2441                 vuint16_t ODE:1;\r
2442                 vuint16_t:2;\r
2443                 vuint16_t SRC:1;\r
2444                 vuint16_t WPE:1;\r
2445                 vuint16_t WPS:1;\r
2446         } B;\r
2447     } PCR[149];\r
2448 \r
2449     vuint8_t SIU_reserved4[918]; /*Reserved 918 Bytes (Base+0x016A-0x04FF) */\r
2450 \r
2451     union { /* Pad Selection for Mux Input (0x0500-0x53C) */\r
2452         vuint8_t R;\r
2453         struct {\r
2454             vuint8_t :4;\r
2455             vuint8_t PADSEL:4;\r
2456         } B;\r
2457     } PSMI[64];\r
2458 \r
2459     vuint8_t SIU_reserved5[192]; /*Reserved 192 Bytes (Base+0x0540-0x05FF) */\r
2460 \r
2461     union { /* GPIO Pad Data Output (Base+0x0600-0x06A0) */\r
2462         vuint8_t R;\r
2463         struct {\r
2464             vuint8_t :7;\r
2465             vuint8_t PDO:1;\r
2466         } B;\r
2467     } GPDO[152];\r
2468 \r
2469     vuint8_t SIU_reserved6[348]; /*Reserved 348 Bytes (Base+0x06A4-0x07FF) */\r
2470 \r
2471     union { /* GPIO Pad Data Input (Base+0x0800-0x08A0) */\r
2472         vuint8_t R;\r
2473         struct {\r
2474             vuint8_t :7;\r
2475             vuint8_t PDI:1;\r
2476         } B;\r
2477     } GPDI[152];\r
2478 \r
2479     vuint8_t SIU_reserved7[860]; /*Reserved 860 Bytes (Base+0x08A4-0x0BFF) */\r
2480 \r
2481     union { /* Parallel GPIO Pad Data Out 0-4 (0x0C00-0xC010) */\r
2482         vuint32_t R;\r
2483         struct {\r
2484             vuint32_t PPD0:32;\r
2485         } B;\r
2486     } PGPDO[5];\r
2487 \r
2488     vuint8_t SIU_reserved8[44]; /* Reserved 44 Bytes (Base+0x0C14-0x0C3F) */\r
2489 \r
2490     union { /* Parallel GPIO Pad Data In 0-4 (0x0C40-0x0C50) */\r
2491         vuint32_t R;\r
2492         struct {\r
2493             vuint32_t PPDI:32;\r
2494         } B;\r
2495     } PGPDI[5];\r
2496 \r
2497     vuint8_t SIU_reserved9[44]; /* Reserved 44 Bytes (Base+0x0C54-0x0C7F) */\r
2498 \r
2499     union { /* Masked Parallel GPIO Pad Data Out 0-9 (0x0C80-0x0CA4) */\r
2500         vuint32_t R;\r
2501         struct {\r
2502             vuint32_t MASK:16;\r
2503             vuint32_t MPPDO:16;\r
2504         } B;\r
2505     } MPGPDO[9];\r
2506 \r
2507     vuint8_t SIU_reserved10[856]; /*Reserved 844 Bytes (Base+0x0CA8-0x0FFF)*/\r
2508 \r
2509     union { /* Interrupt Filter Max Counter 0..23 (+0x1000-0x105C) */\r
2510         vuint32_t R;\r
2511         struct {\r
2512             vuint32_t :28;\r
2513             vuint32_t MAXCNT:4;\r
2514         } B;\r
2515     } IFMC[24];\r
2516 \r
2517     vuint8_t SIU_reserved11[32]; /* Reserved 32 Bytes (Base+0x1060-0x107F)*/\r
2518 \r
2519     union { /* Interrupt Filter Clock Prescaler (Base+0x1080) */\r
2520         vuint32_t R;\r
2521         struct {\r
2522             vuint32_t :28;\r
2523             vuint32_t IFCP:4;\r
2524         } B;\r
2525     } IFCPR;\r
2526 \r
2527     vuint8_t SIU_reserved12[12156]; /* Reserved 12156 Bytes (+0x1084-0x3FFF)*/\r
2528 \r
2529 }; /* end of SIU_tag */\r
2530 /****************************************************************************/\r
2531 /*                          MODULE : SSCM                                    */\r
2532 /****************************************************************************/\r
2533 struct SSCM_tag{\r
2534 \r
2535     union { /* Status (Base+0x0000) */\r
2536         vuint16_t R;\r
2537         struct {\r
2538             vuint16_t:4;\r
2539             vuint16_t NXEN:1;\r
2540             vuint16_t:3;\r
2541             vuint16_t BMODE:3;\r
2542             vuint16_t :1;\r
2543             vuint16_t ABD:1;\r
2544             vuint16_t:3;\r
2545         } B;\r
2546     } STATUS;\r
2547 \r
2548     union { /* System Memory Configuration (Base+0x002) */\r
2549         vuint16_t R;\r
2550         struct {\r
2551                                 vuint16_t:5;\r
2552                 vuint16_t PRSZ:5;\r
2553                 vuint16_t PVLB:1;\r
2554                 vuint16_t DTSZ:4;\r
2555                 vuint16_t DVLD:1;\r
2556         } B;\r
2557     } MEMCONFIG;\r
2558 \r
2559     vuint8_t SSCM_reserved0[2]; /* Reserved 2 bytes (Base+0x0004-0x0005) */\r
2560 \r
2561     union { /* Error Configuration (Base+0x0006) */\r
2562         vuint16_t R;\r
2563         struct {\r
2564             vuint16_t :14;\r
2565             vuint16_t PAE:1;\r
2566             vuint16_t RAE:1;\r
2567         } B;\r
2568     } ERROR;\r
2569 \r
2570    union { /* Debug Status Port (Base+0x0008) */\r
2571         vuint16_t R;\r
2572         struct {\r
2573             vuint16_t :13;\r
2574             vuint16_t DEBUG_MODE:3;\r
2575         } B;\r
2576     } DEBUGPORT;\r
2577 \r
2578     vuint8_t SSCM_reserved1[2]; /* Reserved 2 bytes (Base+0x000A-0x000B) */\r
2579 \r
2580     union { /* Password Comparison High Word (Base+0x000C) */\r
2581       vuint32_t R;\r
2582       struct {\r
2583             vuint32_t PWD_HI:32;\r
2584         } B;\r
2585     } PWCMPH;\r
2586 \r
2587     union { /* Password Comparison Low Word (Base+0x0010)*/\r
2588         vuint32_t R;\r
2589         struct {\r
2590             vuint32_t PWD_LO:32;\r
2591         } B;\r
2592     } PWCMPL;\r
2593 \r
2594 }; /* end of SSCM_tag */\r
2595 /****************************************************************************/\r
2596 /*                          MODULE : STM                                   */\r
2597 /****************************************************************************/\r
2598   struct STM_CHANNEL_tag{\r
2599 \r
2600     union { /* STM Channel Control 0..3 */\r
2601         vuint32_t R;\r
2602         struct {\r
2603             vuint32_t :31;\r
2604             vuint32_t CEN:1;\r
2605         } B;\r
2606     } CCR;\r
2607 \r
2608     union { /* STM Channel Interrupt 0..3 */\r
2609         vuint32_t R;\r
2610         struct {\r
2611             vuint32_t :31;\r
2612             vuint32_t CIF:1;\r
2613         } B;\r
2614     } CIR;\r
2615 \r
2616     union { /* STM Channel Compare 0..3 */\r
2617         vuint32_t R;\r
2618         struct {\r
2619             vuint32_t CMP:32;\r
2620         } B;\r
2621     } CMP;\r
2622 \r
2623     vuint8_t STM_CHANNEL_reserved0[4]; /* Reserved 4 bytes between ch reg's */\r
2624 \r
2625   }; /* end of STM_CHANNEL_tag */\r
2626 \r
2627 \r
2628 struct STM_tag{\r
2629 \r
2630     union { /* STM Control (Base+0x0000) */\r
2631         vuint32_t R;\r
2632         struct {\r
2633             vuint32_t :16;\r
2634             vuint32_t CPS:8;\r
2635             vuint32_t :6;\r
2636             vuint32_t FRZ:1;\r
2637             vuint32_t TEN:1;\r
2638         } B;\r
2639     } CR;\r
2640 \r
2641     union { /* STM Count (Base+0x0004) */\r
2642         vuint32_t R;\r
2643     } CNT;\r
2644 \r
2645     vuint8_t STM_reserved1[8]; /* Reserved 8 bytes (Base+0x0008-0x000F) */\r
2646 \r
2647     struct STM_CHANNEL_tag CH[4]; /*STM Channels 0..3 (Base+0x0010-0x0048) */\r
2648 \r
2649 }; /* end of STM_tag */\r
2650 /****************************************************************************/\r
2651 /*                          MODULE : SWT                                   */\r
2652 /****************************************************************************/\r
2653 struct SWT_tag{\r
2654 \r
2655     union { /* SWT Control (Base+0x0000) */\r
2656         vuint32_t R;\r
2657         struct {\r
2658             vuint32_t MAP0:1;\r
2659             vuint32_t MAP1:1;\r
2660             vuint32_t MAP2:1;\r
2661             vuint32_t MAP3:1;\r
2662             vuint32_t MAP4:1;\r
2663             vuint32_t MAP5:1;\r
2664             vuint32_t MAP6:1;\r
2665             vuint32_t MAP7:1;\r
2666             vuint32_t :14;\r
2667             vuint32_t KEY:1;\r
2668             vuint32_t RIA:1;\r
2669             vuint32_t WND:1;\r
2670             vuint32_t ITR:1;\r
2671             vuint32_t HLK:1;\r
2672             vuint32_t SLK:1;\r
2673             vuint32_t CSL:1;\r
2674             vuint32_t STP:1;\r
2675             vuint32_t FRZ:1;\r
2676             vuint32_t WEN:1;\r
2677         } B;\r
2678     } CR;\r
2679 \r
2680     union { /* SWT Interrupt (Base+0x0004) */\r
2681         vuint32_t R;\r
2682         struct {\r
2683             vuint32_t :31;\r
2684             vuint32_t TIF:1;\r
2685         } B;\r
2686     } IR;\r
2687 \r
2688     union { /* SWT Time-Out (Base+0x0008) */\r
2689         vuint32_t R;\r
2690         struct {\r
2691             vuint32_t WTO:32;\r
2692         } B;\r
2693     } TO;\r
2694 \r
2695     union { /* SWT Window (Base+0x000C) */\r
2696         vuint32_t R;\r
2697         struct {\r
2698             vuint32_t WST:32;\r
2699         } B;\r
2700     } WN;\r
2701 \r
2702     union { /* SWT Service (Base+0x0010) */\r
2703         vuint32_t R;\r
2704         struct {\r
2705             vuint32_t :16;\r
2706             vuint32_t WSC:16;\r
2707         } B;\r
2708     } SR;\r
2709 \r
2710     union { /* SWT Counter Output (Base+0x0014) */\r
2711         vuint32_t R;\r
2712         struct {\r
2713             vuint32_t CNT:32;\r
2714         } B;\r
2715     } CO;\r
2716 \r
2717 }; /* end of SWT_tag */   \r
2718 /****************************************************************************/\r
2719 /*                          MODULE : WKUP                                   */\r
2720 /****************************************************************************/\r
2721 struct WKUP_tag{\r
2722 \r
2723     union { /* NMI Status Flag (Base+0x0000) */\r
2724         vuint32_t R;\r
2725         struct {\r
2726                         vuint32_t NIF0:1;  \r
2727                         vuint32_t NOVF0:1;\r
2728                         vuint32_t :30;\r
2729         } B;\r
2730     } NSR;\r
2731 \r
2732     vuint8_t WKUP_reserved0[4]; /* Reserved 4 Bytes (Base+0x0004-0x0007) */\r
2733 \r
2734     union { /* NMI Configuration (Base+0x0008) */\r
2735         vuint32_t R;\r
2736         struct {\r
2737             vuint32_t NLOCK0:1;\r
2738             vuint32_t NDSS0:2;\r
2739             vuint32_t NWRE0:1;\r
2740             vuint32_t :1;\r
2741             vuint32_t NREE0:1;\r
2742             vuint32_t NFEE0:1;\r
2743             vuint32_t NFE0:1;\r
2744             vuint32_t :24;\r
2745         } B;\r
2746     } NCR;\r
2747 \r
2748     vuint8_t WKUP_reserved1[8]; /* Reserved 8 Bytes (Base+0x000C-0x0013) */\r
2749 \r
2750     union { /* Wakeup/Interrup status flag (Base+0x0014) */\r
2751         vuint32_t R;\r
2752         struct {\r
2753             vuint32_t :3;\r
2754                         vuint32_t EIF:29;\r
2755         } B;\r
2756     } WISR;\r
2757 \r
2758     union { /* Interrupt Request Enable (Base+0x0018) */\r
2759         vuint32_t R;\r
2760         struct {\r
2761             vuint32_t :3;\r
2762                         vuint32_t EIRE:29; \r
2763         } B;\r
2764     } IRER;\r
2765 \r
2766     union { /* Wakeup Request Enable (Base+0x001C) */\r
2767         vuint32_t R;\r
2768         struct {\r
2769             vuint32_t :3;\r
2770                         vuint32_t WRE:29;\r
2771         } B;\r
2772     } WRER;\r
2773 \r
2774     vuint8_t WKUP_reserved2[8]; /* Reserved 8 Bytes (Base+0x0020-0x0027) */\r
2775 \r
2776     union { /* Wakeup/Interrupt Rising-Edge (Base+0x0028) */\r
2777         vuint32_t R;\r
2778         struct {\r
2779             vuint32_t :3;\r
2780                         vuint32_t IREE:29;\r
2781         } B;\r
2782     } WIREER;\r
2783 \r
2784     union { /* Wakeup/Interrupt Falling-Edge (Base+0x002C) */\r
2785         vuint32_t R;\r
2786         struct {\r
2787             vuint32_t :3;\r
2788                         vuint32_t IFEE:29;\r
2789         } B;\r
2790     } WIFEER;\r
2791 \r
2792     union { /* Wakeup/Interrupt Filter Enable (Base+0x0030) */\r
2793         vuint32_t R;\r
2794         struct {\r
2795             vuint32_t :3;\r
2796                         vuint32_t IFE:29;\r
2797         } B;\r
2798     } WIFER;\r
2799 \r
2800     union { /* Wakeup/Interrupt Pullup Enable (Base+0x0034) */\r
2801         vuint32_t R;\r
2802         struct {\r
2803             vuint32_t :3;\r
2804                         vuint32_t IPUE:29;\r
2805         } B;\r
2806     } WIPUER; /* Wakeup/Interrupt Pullup Enable Register */\r
2807 \r
2808     vuint8_t WKUP_reserved3[16328]; /* Reserved 16328 (Base+0x0038-0x3FFF) */\r
2809 \r
2810 }; /* end of WKUP_tag */\r
2811 /****************************************************************************/\r
2812 /*                          MODULE : LINFLEX                                */\r
2813 /****************************************************************************/\r
2814 struct LINFLEX_tag {\r
2815 \r
2816     union { /* LINFLEX LIN Control 1 (Base+0x0000) */\r
2817         vuint32_t R;\r
2818         struct {\r
2819             vuint32_t :16;\r
2820             vuint32_t CCD:1;\r
2821             vuint32_t CFD:1;\r
2822             vuint32_t LASE:1;\r
2823             vuint32_t AWUM:1;\r
2824             vuint32_t MBL:4;\r
2825             vuint32_t BF:1;\r
2826             vuint32_t SFTM:1;\r
2827             vuint32_t LBKM:1;\r
2828             vuint32_t MME:1;\r
2829             vuint32_t SBDT:1;\r
2830             vuint32_t RBLM:1;\r
2831             vuint32_t SLEEP:1;\r
2832             vuint32_t INIT:1;\r
2833         } B;\r
2834     } LINCR1;\r
2835 \r
2836     union { /* LINFLEX LIN Interrupt Enable (Base+0x0004) */\r
2837         vuint32_t R;\r
2838         struct {\r
2839             vuint32_t :16;\r
2840             vuint32_t SZIE:1;\r
2841             vuint32_t OCIE:1;\r
2842             vuint32_t BEIE:1;\r
2843             vuint32_t CEIE:1;\r
2844             vuint32_t HEIE:1;\r
2845             vuint32_t :2;\r
2846             vuint32_t FEIE:1;\r
2847             vuint32_t BOIE:1;\r
2848             vuint32_t LSIE:1;\r
2849             vuint32_t WUIE:1;\r
2850             vuint32_t DBFIE:1;\r
2851             vuint32_t DBEIE:1;\r
2852             vuint32_t DRIE:1;\r
2853             vuint32_t DTIE:1;\r
2854             vuint32_t HRIE:1;\r
2855         } B;\r
2856     } LINIER;\r
2857 \r
2858     union { /* LINFLEX LIN Status (Base+0x0008) */\r
2859         vuint32_t R;\r
2860         struct {\r
2861             vuint32_t :16;\r
2862             vuint32_t LINS:4;\r
2863             vuint32_t:2;\r
2864             vuint32_t RMB:1;\r
2865             vuint32_t:1;\r
2866             vuint32_t RBSY:1;\r
2867             vuint32_t RPS:1;\r
2868             vuint32_t WUF:1;\r
2869             vuint32_t DBFF:1;\r
2870             vuint32_t DBEF:1;\r
2871             vuint32_t DRF:1;\r
2872             vuint32_t DTF:1;\r
2873             vuint32_t HRF:1;\r
2874         } B;\r
2875     } LINSR;\r
2876 \r
2877     union { /* LINFLEX LIN Error Status (Base+0x000C) */\r
2878         vuint32_t R;\r
2879         struct {\r
2880             vuint32_t :16;\r
2881             vuint32_t SZF:1;\r
2882             vuint32_t OCF:1;\r
2883             vuint32_t BEF:1;\r
2884             vuint32_t CEF:1;\r
2885             vuint32_t SFEF:1;\r
2886             vuint32_t BDEF:1;\r
2887             vuint32_t IDPEF:1;\r
2888             vuint32_t FEF:1;\r
2889             vuint32_t BOF:1;\r
2890             vuint32_t:6;\r
2891             vuint32_t NF:1;\r
2892         } B;\r
2893     } LINESR;\r
2894 \r
2895     union { /* LINFLEX UART Mode Control (Base+0x0010) */\r
2896         vuint32_t R;\r
2897         struct {\r
2898             vuint32_t :16;\r
2899             vuint32_t:1;\r
2900             vuint32_t TDFL:2;\r
2901             vuint32_t:1;\r
2902             vuint32_t RDFL:2;\r
2903             vuint32_t:4;\r
2904             vuint32_t RXEN:1;\r
2905             vuint32_t TXEN:1;\r
2906             vuint32_t OP:1;\r
2907             vuint32_t PCE:1;\r
2908             vuint32_t WL:1;\r
2909             vuint32_t UART:1;\r
2910         } B;\r
2911     } UARTCR;\r
2912 \r
2913     union { /* LINFLEX UART Mode Status (Base+0x0014) */\r
2914         vuint32_t R;\r
2915         struct {\r
2916             vuint32_t :16;\r
2917             vuint32_t SZF:1;\r
2918             vuint32_t OCF:1;\r
2919             vuint32_t PE:4; /*Can check all 4 RX'd bytes at once with array*/\r
2920             vuint32_t RMB:1;\r
2921             vuint32_t FEF:1;\r
2922             vuint32_t BOF:1;\r
2923             vuint32_t RPS:1;\r
2924             vuint32_t WUF:1;\r
2925             vuint32_t:2;\r
2926             vuint32_t DRF:1;\r
2927             vuint32_t DTF:1;\r
2928             vuint32_t NF:1;\r
2929         } B;\r
2930     } UARTSR;\r
2931 \r
2932     union { /* LINFLEX TimeOut Control Status ((Base+0x0018)*/\r
2933         vuint32_t R;\r
2934         struct {\r
2935             vuint32_t :16;\r
2936             vuint32_t:5;\r
2937             vuint32_t LTOM:1;\r
2938             vuint32_t IOT:1;\r
2939             vuint32_t TOCE:1;\r
2940             vuint32_t CNT:8;\r
2941         } B;\r
2942     } LINTCSR;\r
2943 \r
2944     union { /* LINFLEX LIN Output Compare (Base+0x001C) */\r
2945         vuint32_t R;\r
2946         struct {\r
2947             vuint32_t :16;\r
2948             vuint32_t OC2:8;\r
2949             vuint32_t OC1:8;\r
2950         } B;\r
2951     } LINOCR;\r
2952 \r
2953     union { /* LINFLEX LIN Timeout Control (Base+0x0020) */\r
2954         vuint32_t R;\r
2955         struct {\r
2956             vuint32_t :20;\r
2957             vuint32_t RTO:4;\r
2958             vuint32_t:1;\r
2959             vuint32_t HTO:7;\r
2960         } B;\r
2961     } LINTOCR;\r
2962 \r
2963     union { /* LINFLEX LIN Fractional Baud Rate (+0x0024) */\r
2964         vuint32_t R;\r
2965         struct {\r
2966             vuint32_t:28;\r
2967             vuint32_t DIV_F:4;\r
2968         } B;\r
2969     } LINFBRR;\r
2970 \r
2971     union { /* LINFLEX LIN Integer Baud Rate (Base+0x0028) */\r
2972         vuint32_t R;\r
2973         struct {\r
2974             vuint32_t:19;\r
2975             vuint32_t DIV_M:13;\r
2976         } B;\r
2977     } LINIBRR;\r
2978 \r
2979     union { /* LINFLEX LIN Checksum Field (Base+0x002C) */\r
2980         vuint32_t R;\r
2981         struct {\r
2982             vuint32_t:24;\r
2983             vuint32_t CF:8;\r
2984         } B;\r
2985     } LINCFR;\r
2986 \r
2987     union { /* LINFLEX LIN Control 2 (Base+0x0030) */\r
2988         vuint32_t R;\r
2989         struct {\r
2990             vuint32_t:17;\r
2991             vuint32_t IOBE:1;\r
2992             vuint32_t IOPE:1;\r
2993             vuint32_t WURQ:1;\r
2994             vuint32_t DDRQ:1;\r
2995             vuint32_t DTRQ:1;\r
2996             vuint32_t ABRQ:1;\r
2997             vuint32_t HTRQ:1;\r
2998             vuint32_t:8;\r
2999         } B;\r
3000     } LINCR2;\r
3001 \r
3002     union { /* LINFLEX Buffer Identifier (Base+0x0034) */\r
3003         vuint32_t R;\r
3004         struct {\r
3005             vuint32_t:16;\r
3006             vuint32_t DFL:6;\r
3007             vuint32_t DIR:1;\r
3008             vuint32_t CCS:1;\r
3009             vuint32_t:2;\r
3010             vuint32_t ID:6;\r
3011         } B;\r
3012     } BIDR;\r
3013 \r
3014     union { /* LINFLEX Buffer Data LSB (Base+0x0038) */\r
3015         vuint32_t R;\r
3016         struct {\r
3017             vuint32_t DATA3:8;\r
3018             vuint32_t DATA2:8;\r
3019             vuint32_t DATA1:8;\r
3020             vuint32_t DATA0:8;\r
3021         } B;\r
3022     } BDRL;\r
3023 \r
3024     union { /* LINFLEX Buffer Data MSB (Base+0x003C */\r
3025         vuint32_t R;\r
3026         struct {\r
3027             vuint32_t DATA7:8;\r
3028             vuint32_t DATA6:8;\r
3029             vuint32_t DATA5:8;\r
3030             vuint32_t DATA4:8;\r
3031         } B;\r
3032     } BDRM;\r
3033 \r
3034     union { /* LINFLEX Identifier Filter Enable (+0x0040) */\r
3035         vuint32_t R;\r
3036         struct {\r
3037             vuint32_t:24;\r
3038             vuint32_t FACT:8;\r
3039         } B;\r
3040     } IFER;\r
3041 \r
3042     union { /* LINFLEX Identifier Filter Match Index (+0x0044)*/\r
3043         vuint32_t R;\r
3044         struct {\r
3045             vuint32_t:28;\r
3046             vuint32_t IFMI:4;\r
3047         } B;\r
3048     } IFMI;\r
3049 \r
3050     union { /* LINFLEX Identifier Filter Mode (Base+0x0048) */\r
3051         vuint32_t R;\r
3052         struct {\r
3053             vuint32_t:27;\r
3054             vuint32_t IFM:5;\r
3055         } B;\r
3056     } IFMR;\r
3057 \r
3058     union { /* LINFLEX Identifier Filter Control 0..15 (+0x004C-0x0088)*/\r
3059         vuint32_t R;\r
3060         struct {\r
3061             vuint32_t:16;\r
3062             vuint32_t:3;         /* for LINflexD no reseve here*/\r
3063             vuint32_t DFL:3; /* Linflex D - this field is 6 bits (0 and 1), Linflex - this field is 3 bits (2-9 B1.5M) (2-7 B1M) */ \r
3064             vuint32_t DIR:1;\r
3065             vuint32_t CCS:1;\r
3066             vuint32_t:2;\r
3067             vuint32_t ID:6;\r
3068         } B;\r
3069     } IFCR[16];\r
3070 \r
3071   \r
3072 }; /* end of LINFLEX_tag */\r
3073 \r
3074 \r
3075 /****************************************************************************/\r
3076 /*                          MODULE : LINFLEXD0                              */\r
3077 /****************************************************************************/\r
3078 struct LINFLEXD0_tag {\r
3079 \r
3080     union { /* LINFLEX LIN Control 1 (Base+0x0000) */\r
3081         vuint32_t R;\r
3082         struct {\r
3083             vuint32_t :16;\r
3084             vuint32_t CCD:1;\r
3085             vuint32_t CFD:1;\r
3086             vuint32_t LASE:1;\r
3087             vuint32_t AWUM:1;\r
3088             vuint32_t MBL:4;\r
3089             vuint32_t BF:1;\r
3090             vuint32_t SFTM:1;\r
3091             vuint32_t LBKM:1;\r
3092             vuint32_t MME:1;\r
3093             vuint32_t SBDT:1;\r
3094             vuint32_t RBLM:1;\r
3095             vuint32_t SLEEP:1;\r
3096             vuint32_t INIT:1;\r
3097         } B;\r
3098     } LINCR1;\r
3099 \r
3100     union { /* LINFLEX LIN Interrupt Enable (Base+0x0004) */\r
3101         vuint32_t R;\r
3102         struct {\r
3103             vuint32_t :16;\r
3104             vuint32_t SZIE:1;\r
3105             vuint32_t OCIE:1;\r
3106             vuint32_t BEIE:1;\r
3107             vuint32_t CEIE:1;\r
3108             vuint32_t HEIE:1;\r
3109             vuint32_t :2;\r
3110             vuint32_t FEIE:1;\r
3111             vuint32_t BOIE:1;\r
3112             vuint32_t LSIE:1;\r
3113             vuint32_t WUIE:1;\r
3114             vuint32_t DBFIE:1;\r
3115             vuint32_t DBEIE:1;\r
3116             vuint32_t DRIE:1;\r
3117             vuint32_t DTIE:1;\r
3118             vuint32_t HRIE:1;\r
3119         } B;\r
3120     } LINIER;\r
3121 \r
3122     union { /* LINFLEX LIN Status (Base+0x0008) */\r
3123         vuint32_t R;\r
3124         struct {\r
3125             vuint32_t :16;\r
3126             vuint32_t LINS:4;\r
3127             vuint32_t:2;\r
3128             vuint32_t RMB:1;\r
3129             vuint32_t:1;\r
3130             vuint32_t RBSY:1;\r
3131             vuint32_t RPS:1;\r
3132             vuint32_t WUF:1;\r
3133             vuint32_t DBFF:1;\r
3134             vuint32_t DBEF:1;\r
3135             vuint32_t DRF:1;\r
3136             vuint32_t DTF:1;\r
3137             vuint32_t HRF:1;\r
3138         } B;\r
3139     } LINSR;\r
3140 \r
3141     union { /* LINFLEX LIN Error Status (Base+0x000C) */\r
3142         vuint32_t R;\r
3143         struct {\r
3144             vuint32_t :16;\r
3145             vuint32_t SZF:1;\r
3146             vuint32_t OCF:1;\r
3147             vuint32_t BEF:1;\r
3148             vuint32_t CEF:1;\r
3149             vuint32_t SFEF:1;\r
3150             vuint32_t BDEF:1;\r
3151             vuint32_t IDPEF:1;\r
3152             vuint32_t FEF:1;\r
3153             vuint32_t BOF:1;\r
3154             vuint32_t:6;\r
3155             vuint32_t NF:1;\r
3156         } B;\r
3157     } LINESR;\r
3158 \r
3159     union { /* LINFLEX UART Mode Control (Base+0x0010) */\r
3160         vuint32_t R;\r
3161         struct {\r
3162             vuint32_t :16;\r
3163             vuint32_t:1;\r
3164             vuint32_t TDFL:2;\r
3165             vuint32_t:1;\r
3166             vuint32_t RDFL:2;\r
3167             vuint32_t:4;\r
3168             vuint32_t RXEN:1;\r
3169             vuint32_t TXEN:1;\r
3170             vuint32_t OP:1;\r
3171             vuint32_t PCE:1;\r
3172             vuint32_t WL:1;\r
3173             vuint32_t UART:1;\r
3174         } B;\r
3175     } UARTCR;\r
3176 \r
3177     union { /* LINFLEX UART Mode Status (Base+0x0014) */\r
3178         vuint32_t R;\r
3179         struct {\r
3180             vuint32_t :16;\r
3181             vuint32_t SZF:1;\r
3182             vuint32_t OCF:1;\r
3183             vuint32_t PE:4; /*Can check all 4 RX'd bytes at once with array*/\r
3184             vuint32_t RMB:1;\r
3185             vuint32_t FEF:1;\r
3186             vuint32_t BOF:1;\r
3187             vuint32_t RPS:1;\r
3188             vuint32_t WUF:1;\r
3189             vuint32_t:2;\r
3190             vuint32_t DRF:1;\r
3191             vuint32_t DTF:1;\r
3192             vuint32_t NF:1;\r
3193         } B;\r
3194     } UARTSR;\r
3195 \r
3196     union { /* LINFLEX TimeOut Control Status ((Base+0x0018)*/\r
3197         vuint32_t R;\r
3198         struct {\r
3199             vuint32_t :16;\r
3200             vuint32_t:5;\r
3201             vuint32_t LTOM:1;\r
3202             vuint32_t IOT:1;\r
3203             vuint32_t TOCE:1;\r
3204             vuint32_t CNT:8;\r
3205         } B;\r
3206     } LINTCSR;\r
3207 \r
3208     union { /* LINFLEX LIN Output Compare (Base+0x001C) */\r
3209         vuint32_t R;\r
3210         struct {\r
3211             vuint32_t :16;\r
3212             vuint32_t OC2:8;\r
3213             vuint32_t OC1:8;\r
3214         } B;\r
3215     } LINOCR;\r
3216 \r
3217     union { /* LINFLEX LIN Timeout Control (Base+0x0020) */\r
3218         vuint32_t R;\r
3219         struct {\r
3220             vuint32_t :20;\r
3221             vuint32_t RTO:4;\r
3222             vuint32_t:1;\r
3223             vuint32_t HTO:7;\r
3224         } B;\r
3225     } LINTOCR;\r
3226 \r
3227     union { /* LINFLEX LIN Fractional Baud Rate (+0x0024) */\r
3228         vuint32_t R;\r
3229         struct {\r
3230             vuint32_t:28;\r
3231             vuint32_t DIV_F:4;\r
3232         } B;\r
3233     } LINFBRR;\r
3234 \r
3235     union { /* LINFLEX LIN Integer Baud Rate (Base+0x0028) */\r
3236         vuint32_t R;\r
3237         struct {\r
3238             vuint32_t:19;\r
3239             vuint32_t DIV_M:13;\r
3240         } B;\r
3241     } LINIBRR;\r
3242 \r
3243     union { /* LINFLEX LIN Checksum Field (Base+0x002C) */\r
3244         vuint32_t R;\r
3245         struct {\r
3246             vuint32_t:24;\r
3247             vuint32_t CF:8;\r
3248         } B;\r
3249     } LINCFR;\r
3250 \r
3251     union { /* LINFLEX LIN Control 2 (Base+0x0030) */\r
3252         vuint32_t R;\r
3253         struct {\r
3254             vuint32_t:17;\r
3255             vuint32_t IOBE:1;\r
3256             vuint32_t IOPE:1;\r
3257             vuint32_t WURQ:1;\r
3258             vuint32_t DDRQ:1;\r
3259             vuint32_t DTRQ:1;\r
3260             vuint32_t ABRQ:1;\r
3261             vuint32_t HTRQ:1;\r
3262             vuint32_t:8;\r
3263         } B;\r
3264     } LINCR2;\r
3265 \r
3266     union { /* LINFLEX Buffer Identifier (Base+0x0034) */\r
3267         vuint32_t R;\r
3268         struct {\r
3269             vuint32_t:16;\r
3270             vuint32_t DFL:6;\r
3271             vuint32_t DIR:1;\r
3272             vuint32_t CCS:1;\r
3273             vuint32_t:2;\r
3274             vuint32_t ID:6;\r
3275         } B;\r
3276     } BIDR;\r
3277 \r
3278     union { /* LINFLEX Buffer Data LSB (Base+0x0038) */\r
3279         vuint32_t R;\r
3280         struct {\r
3281             vuint32_t DATA3:8;\r
3282             vuint32_t DATA2:8;\r
3283             vuint32_t DATA1:8;\r
3284             vuint32_t DATA0:8;\r
3285         } B;\r
3286     } BDRL;\r
3287 \r
3288     union { /* LINFLEX Buffer Data MSB (Base+0x003C */\r
3289         vuint32_t R;\r
3290         struct {\r
3291             vuint32_t DATA7:8;\r
3292             vuint32_t DATA6:8;\r
3293             vuint32_t DATA5:8;\r
3294             vuint32_t DATA4:8;\r
3295         } B;\r
3296     } BDRM;\r
3297 \r
3298     union { /* LINFLEX Identifier Filter Enable (+0x0040) */\r
3299         vuint32_t R;\r
3300         struct {\r
3301             vuint32_t:24;\r
3302             vuint32_t FACT:8;\r
3303         } B;\r
3304     } IFER;\r
3305 \r
3306     union { /* LINFLEX Identifier Filter Match Index (+0x0044)*/\r
3307         vuint32_t R;\r
3308         struct {\r
3309             vuint32_t:28;\r
3310             vuint32_t IFMI:4;\r
3311         } B;\r
3312     } IFMI;\r
3313 \r
3314     union { /* LINFLEX Identifier Filter Mode (Base+0x0048) */\r
3315         vuint32_t R;\r
3316         struct {\r
3317             vuint32_t:27;\r
3318             vuint32_t IFM:5;\r
3319         } B;\r
3320     } IFMR;\r
3321 \r
3322     union { /* LINFLEX Identifier Filter Control 0..15 (+0x004C-0x0088)*/\r
3323         vuint32_t R;\r
3324         struct {\r
3325             vuint32_t:16;\r
3326             vuint32_t DFL:6;\r
3327             vuint32_t DIR:1;\r
3328             vuint32_t CCS:1;\r
3329             vuint32_t:2;\r
3330             vuint32_t ID:6;\r
3331         } B;\r
3332     } IFCR[16];\r
3333 \r
3334     union { /* LINFLEX Global Counter (+0x008C) */\r
3335         vuint32_t R;\r
3336         struct {\r
3337             vuint32_t:26;\r
3338             vuint32_t TDFBM:1;\r
3339             vuint32_t RDFBM:1;\r
3340             vuint32_t TDLIS:1;\r
3341             vuint32_t RDLIS:1;\r
3342             vuint32_t STOP:1;\r
3343             vuint32_t SR:1;\r
3344         } B;\r
3345     } GCR;\r
3346 \r
3347     union { /* LINFLEX UART preset timeout (+0x0090) */\r
3348         vuint32_t R;\r
3349         struct {\r
3350             vuint32_t:20;\r
3351             vuint32_t PTO:12;\r
3352         } B;\r
3353     } UARTPTO;\r
3354 \r
3355     union { /* LINFLEX UART current timeout (+0x0094) */\r
3356         vuint32_t R;\r
3357         struct {\r
3358             vuint32_t:20;\r
3359             vuint32_t CTO:12;\r
3360         } B;\r
3361     } UARTCTO;\r
3362 \r
3363     union { /* LINFLEX DMA Tx Enable (+0x0098) */\r
3364         vuint32_t R;\r
3365         struct {\r
3366             vuint32_t:16;\r
3367             vuint32_t DTE15:1;\r
3368             vuint32_t DTE14:1;\r
3369             vuint32_t DTE13:1;\r
3370             vuint32_t DTE12:1;\r
3371             vuint32_t DTE11:1;\r
3372             vuint32_t DTE10:1;\r
3373             vuint32_t DTE9:1;\r
3374             vuint32_t DTE8:1;\r
3375             vuint32_t DTE7:1;\r
3376             vuint32_t DTE6:1;\r
3377             vuint32_t DTE5:1;\r
3378             vuint32_t DTE4:1;\r
3379             vuint32_t DTE3:1;\r
3380             vuint32_t DTE2:1;\r
3381             vuint32_t DTE1:1;\r
3382             vuint32_t DTE0:1;\r
3383         } B;\r
3384     } DMATXE;\r
3385 \r
3386     union { /* LINFLEX DMA RX Enable (+0x009C) */\r
3387         vuint32_t R;\r
3388         struct {\r
3389             vuint32_t:16;\r
3390             vuint32_t DRE15:1;\r
3391             vuint32_t DRE14:1;\r
3392             vuint32_t DRE13:1;\r
3393             vuint32_t DRE12:1;\r
3394             vuint32_t DRE11:1;\r
3395             vuint32_t DRE10:1;\r
3396             vuint32_t DRE9:1;\r
3397             vuint32_t DRE8:1;\r
3398             vuint32_t DRE7:1;\r
3399             vuint32_t DRE6:1;\r
3400             vuint32_t DRE5:1;\r
3401             vuint32_t DRE4:1;\r
3402             vuint32_t DRE3:1;\r
3403             vuint32_t DRE2:1;\r
3404             vuint32_t DRE1:1;\r
3405             vuint32_t DRE0:1;\r
3406         } B;\r
3407     } DMARXE;\r
3408 }; /* end of LINFLEXD0_tag */\r
3409 /****************************************************************************/\r
3410 /*                          MODULE : LINFLEXD1                                */\r
3411 /****************************************************************************/\r
3412 struct LINFLEXD1_tag {\r
3413 \r
3414     union { /* LINFLEX LIN Control 1 (Base+0x0000) */\r
3415         vuint32_t R;\r
3416         struct {\r
3417             vuint32_t :16;\r
3418             vuint32_t CCD:1;\r
3419             vuint32_t CFD:1;\r
3420             vuint32_t LASE:1;\r
3421             vuint32_t AWUM:1;\r
3422             vuint32_t MBL:4;\r
3423             vuint32_t BF:1;\r
3424             vuint32_t SFTM:1;\r
3425             vuint32_t LBKM:1;\r
3426             vuint32_t MME:1;\r
3427             vuint32_t SBDT:1;\r
3428             vuint32_t RBLM:1;\r
3429             vuint32_t SLEEP:1;\r
3430             vuint32_t INIT:1;\r
3431         } B;\r
3432     } LINCR1;\r
3433 \r
3434     union { /* LINFLEX LIN Interrupt Enable (Base+0x0004) */\r
3435         vuint32_t R;\r
3436         struct {\r
3437             vuint32_t :16;\r
3438             vuint32_t SZIE:1;\r
3439             vuint32_t OCIE:1;\r
3440             vuint32_t BEIE:1;\r
3441             vuint32_t CEIE:1;\r
3442             vuint32_t HEIE:1;\r
3443             vuint32_t :2;\r
3444             vuint32_t FEIE:1;\r
3445             vuint32_t BOIE:1;\r
3446             vuint32_t LSIE:1;\r
3447             vuint32_t WUIE:1;\r
3448             vuint32_t DBFIE:1;\r
3449             vuint32_t DBEIE:1;\r
3450             vuint32_t DRIE:1;\r
3451             vuint32_t DTIE:1;\r
3452             vuint32_t HRIE:1;\r
3453         } B;\r
3454     } LINIER;\r
3455 \r
3456     union { /* LINFLEX LIN Status (Base+0x0008) */\r
3457         vuint32_t R;\r
3458         struct {\r
3459             vuint32_t :16;\r
3460             vuint32_t LINS:4;\r
3461             vuint32_t:2;\r
3462             vuint32_t RMB:1;\r
3463             vuint32_t:1;\r
3464             vuint32_t RBSY:1;\r
3465             vuint32_t RPS:1;\r
3466             vuint32_t WUF:1;\r
3467             vuint32_t DBFF:1;\r
3468             vuint32_t DBEF:1;\r
3469             vuint32_t DRF:1;\r
3470             vuint32_t DTF:1;\r
3471             vuint32_t HRF:1;\r
3472         } B;\r
3473     } LINSR;\r
3474 \r
3475     union { /* LINFLEX LIN Error Status (Base+0x000C) */\r
3476         vuint32_t R;\r
3477         struct {\r
3478             vuint32_t :16;\r
3479             vuint32_t SZF:1;\r
3480             vuint32_t OCF:1;\r
3481             vuint32_t BEF:1;\r
3482             vuint32_t CEF:1;\r
3483             vuint32_t SFEF:1;\r
3484             vuint32_t BDEF:1;\r
3485             vuint32_t IDPEF:1;\r
3486             vuint32_t FEF:1;\r
3487             vuint32_t BOF:1;\r
3488             vuint32_t:6;\r
3489             vuint32_t NF:1;\r
3490         } B;\r
3491     } LINESR;\r
3492 \r
3493     union { /* LINFLEX UART Mode Control (Base+0x0010) */\r
3494         vuint32_t R;\r
3495         struct {\r
3496             vuint32_t :16;\r
3497             vuint32_t:1;\r
3498             vuint32_t TDFL:2;\r
3499             vuint32_t:1;\r
3500             vuint32_t RDFL:2;\r
3501             vuint32_t:4;\r
3502             vuint32_t RXEN:1;\r
3503             vuint32_t TXEN:1;\r
3504             vuint32_t OP:1;\r
3505             vuint32_t PCE:1;\r
3506             vuint32_t WL:1;\r
3507             vuint32_t UART:1;\r
3508         } B;\r
3509     } UARTCR;\r
3510 \r
3511     union { /* LINFLEX UART Mode Status (Base+0x0014) */\r
3512         vuint32_t R;\r
3513         struct {\r
3514             vuint32_t :16;\r
3515             vuint32_t SZF:1;\r
3516             vuint32_t OCF:1;\r
3517             vuint32_t PE:4; /*Can check all 4 RX'd bytes at once with array*/\r
3518             vuint32_t RMB:1;\r
3519             vuint32_t FEF:1;\r
3520             vuint32_t BOF:1;\r
3521             vuint32_t RPS:1;\r
3522             vuint32_t WUF:1;\r
3523             vuint32_t:2;\r
3524             vuint32_t DRF:1;\r
3525             vuint32_t DTF:1;\r
3526             vuint32_t NF:1;\r
3527         } B;\r
3528     } UARTSR;\r
3529 \r
3530     union { /* LINFLEX TimeOut Control Status ((Base+0x0018)*/\r
3531         vuint32_t R;\r
3532         struct {\r
3533             vuint32_t :16;\r
3534             vuint32_t:5;\r
3535             vuint32_t LTOM:1;\r
3536             vuint32_t IOT:1;\r
3537             vuint32_t TOCE:1;\r
3538             vuint32_t CNT:8;\r
3539         } B;\r
3540     } LINTCSR;\r
3541 \r
3542     union { /* LINFLEX LIN Output Compare (Base+0x001C) */\r
3543         vuint32_t R;\r
3544         struct {\r
3545             vuint32_t :16;\r
3546             vuint32_t OC2:8;\r
3547             vuint32_t OC1:8;\r
3548         } B;\r
3549     } LINOCR;\r
3550 \r
3551     union { /* LINFLEX LIN Timeout Control (Base+0x0020) */\r
3552         vuint32_t R;\r
3553         struct {\r
3554             vuint32_t :20;\r
3555             vuint32_t RTO:4;\r
3556             vuint32_t:1;\r
3557             vuint32_t HTO:7;\r
3558         } B;\r
3559     } LINTOCR;\r
3560 \r
3561     union { /* LINFLEX LIN Fractional Baud Rate (+0x0024) */\r
3562         vuint32_t R;\r
3563         struct {\r
3564             vuint32_t:28;\r
3565             vuint32_t DIV_F:4;\r
3566         } B;\r
3567     } LINFBRR;\r
3568 \r
3569     union { /* LINFLEX LIN Integer Baud Rate (Base+0x0028) */\r
3570         vuint32_t R;\r
3571         struct {\r
3572             vuint32_t:19;\r
3573             vuint32_t DIV_M:13;\r
3574         } B;\r
3575     } LINIBRR;\r
3576 \r
3577     union { /* LINFLEX LIN Checksum Field (Base+0x002C) */\r
3578         vuint32_t R;\r
3579         struct {\r
3580             vuint32_t:24;\r
3581             vuint32_t CF:8;\r
3582         } B;\r
3583     } LINCFR;\r
3584 \r
3585     union { /* LINFLEX LIN Control 2 (Base+0x0030) */\r
3586         vuint32_t R;\r
3587         struct {\r
3588             vuint32_t:17;\r
3589             vuint32_t IOBE:1;\r
3590             vuint32_t IOPE:1;\r
3591             vuint32_t WURQ:1;\r
3592             vuint32_t DDRQ:1;\r
3593             vuint32_t DTRQ:1;\r
3594             vuint32_t ABRQ:1;\r
3595             vuint32_t HTRQ:1;\r
3596             vuint32_t:8;\r
3597         } B;\r
3598     } LINCR2;\r
3599 \r
3600     union { /* LINFLEX Buffer Identifier (Base+0x0034) */\r
3601         vuint32_t R;\r
3602         struct {\r
3603             vuint32_t:16;\r
3604             vuint32_t DFL:6;\r
3605             vuint32_t DIR:1;\r
3606             vuint32_t CCS:1;\r
3607             vuint32_t:2;\r
3608             vuint32_t ID:6;\r
3609         } B;\r
3610     } BIDR;\r
3611 \r
3612     union { /* LINFLEX Buffer Data LSB (Base+0x0038) */\r
3613         vuint32_t R;\r
3614         struct {\r
3615             vuint32_t DATA3:8;\r
3616             vuint32_t DATA2:8;\r
3617             vuint32_t DATA1:8;\r
3618             vuint32_t DATA0:8;\r
3619         } B;\r
3620     } BDRL;\r
3621 \r
3622     union { /* LINFLEX Buffer Data MSB (Base+0x003C */\r
3623         vuint32_t R;\r
3624         struct {\r
3625             vuint32_t DATA7:8;\r
3626             vuint32_t DATA6:8;\r
3627             vuint32_t DATA5:8;\r
3628             vuint32_t DATA4:8;\r
3629         } B;\r
3630     } BDRM;\r
3631 \r
3632     union { /* LINFLEX Identifier Filter Enable (+0x0040) */\r
3633         vuint32_t R;\r
3634         struct {\r
3635             vuint32_t:24;\r
3636             vuint32_t FACT:8;\r
3637         } B;\r
3638     } IFER;\r
3639 \r
3640     union { /* LINFLEX Identifier Filter Match Index (+0x0044)*/\r
3641         vuint32_t R;\r
3642         struct {\r
3643             vuint32_t:28;\r
3644             vuint32_t IFMI:4;\r
3645         } B;\r
3646     } IFMI;\r
3647 \r
3648     union { /* LINFLEX Identifier Filter Mode (Base+0x0048) */\r
3649         vuint32_t R;\r
3650         struct {\r
3651             vuint32_t:27;\r
3652             vuint32_t IFM:5;\r
3653         } B;\r
3654     } IFMR;\r
3655 \r
3656 /* No IFCR registers on LinFlexD_1 */\r
3657 \r
3658     union { /* LINFLEX Global Counter (+0x004C) */\r
3659         vuint32_t R;\r
3660         struct {\r
3661             vuint32_t:26;\r
3662             vuint32_t TDFBM:1;\r
3663             vuint32_t RDFBM:1;\r
3664             vuint32_t TDLIS:1;\r
3665             vuint32_t RDLIS:1;\r
3666             vuint32_t STOP:1;\r
3667             vuint32_t SR:1;\r
3668         } B;\r
3669     } GCR;\r
3670 \r
3671     union { /* LINFLEX UART preset timeout (+0x0050) */\r
3672         vuint32_t R;\r
3673         struct {\r
3674             vuint32_t:20;\r
3675             vuint32_t PTO:12;\r
3676         } B;\r
3677     } UARTPTO;\r
3678 \r
3679     union { /* LINFLEX UART current timeout (+0x0054) */\r
3680         vuint32_t R;\r
3681         struct {\r
3682             vuint32_t:20;\r
3683             vuint32_t CTO:12;\r
3684         } B;\r
3685     } UARTCTO;\r
3686 \r
3687     union { /* LINFLEX DMA Tx Enable (+0x0058) */\r
3688         vuint32_t R;\r
3689         struct {\r
3690             vuint32_t:16;\r
3691             vuint32_t DTE15:1;\r
3692             vuint32_t DTE14:1;\r
3693             vuint32_t DTE13:1;\r
3694             vuint32_t DTE12:1;\r
3695             vuint32_t DTE11:1;\r
3696             vuint32_t DTE10:1;\r
3697             vuint32_t DTE9:1;\r
3698             vuint32_t DTE8:1;\r
3699             vuint32_t DTE7:1;\r
3700             vuint32_t DTE6:1;\r
3701             vuint32_t DTE5:1;\r
3702             vuint32_t DTE4:1;\r
3703             vuint32_t DTE3:1;\r
3704             vuint32_t DTE2:1;\r
3705             vuint32_t DTE1:1;\r
3706             vuint32_t DTE0:1;\r
3707         } B;\r
3708     } DMATXE;\r
3709 \r
3710     union { /* LINFLEX DMA RX Enable (+0x005C) */\r
3711         vuint32_t R;\r
3712         struct {\r
3713             vuint32_t:16;\r
3714             vuint32_t DRE15:1;\r
3715             vuint32_t DRE14:1;\r
3716             vuint32_t DRE13:1;\r
3717             vuint32_t DRE12:1;\r
3718             vuint32_t DRE11:1;\r
3719             vuint32_t DRE10:1;\r
3720             vuint32_t DRE9:1;\r
3721             vuint32_t DRE8:1;\r
3722             vuint32_t DRE7:1;\r
3723             vuint32_t DRE6:1;\r
3724             vuint32_t DRE5:1;\r
3725             vuint32_t DRE4:1;\r
3726             vuint32_t DRE3:1;\r
3727             vuint32_t DRE2:1;\r
3728             vuint32_t DRE1:1;\r
3729             vuint32_t DRE0:1;\r
3730         } B;\r
3731     } DMARXE;\r
3732 }; /* end of LINFLEXD1_tag */\r
3733        \r
3734 /****************************************************************************/\r
3735 /*                          MODULE : ME                                   */\r
3736 /****************************************************************************/\r
3737 struct ME_tag{\r
3738 \r
3739     union { /* Global Status (Base+0x0000) */\r
3740         vuint32_t R;\r
3741         struct {\r
3742             vuint32_t S_CURRENTMODE:4;\r
3743             vuint32_t S_MTRANS:1;\r
3744             vuint32_t S_DC:1;\r
3745             vuint32_t :2;\r
3746             vuint32_t S_PDO:1;\r
3747             vuint32_t :2;\r
3748             vuint32_t S_MVR:1;\r
3749             vuint32_t S_DFLA:2;\r
3750             vuint32_t S_CFLA:2;\r
3751             vuint32_t :9;\r
3752             vuint32_t S_FMPLL:1;\r
3753             vuint32_t S_FXOSC:1;\r
3754             vuint32_t S_FIRC:1;\r
3755             vuint32_t S_SYSCLK:4;\r
3756         } B;\r
3757     } GS;\r
3758 \r
3759     union { /* Mode Control (Base+0x004) */\r
3760         vuint32_t R;\r
3761         struct {\r
3762             vuint32_t TARGET_MODE:4;\r
3763             vuint32_t :12;\r
3764             vuint32_t KEY:16;\r
3765         } B;\r
3766     } MCTL;\r
3767 \r
3768     union { /* Mode Enable (Base+0x0008) */\r
3769         vuint32_t R;\r
3770         struct {\r
3771             vuint32_t :16;\r
3772             vuint32_t :2;\r
3773             vuint32_t STANDBY0:1;\r
3774             vuint32_t :2;\r
3775             vuint32_t STOP0:1;\r
3776             vuint32_t :1;\r
3777             vuint32_t HALT0:1;\r
3778             vuint32_t RUN3:1;\r
3779             vuint32_t RUN2:1;\r
3780             vuint32_t RUN1:1;\r
3781             vuint32_t RUN0:1;\r
3782             vuint32_t DRUN:1;\r
3783             vuint32_t SAFE:1;\r
3784             vuint32_t TEST:1;\r
3785             vuint32_t RESET:1;\r
3786         } B;\r
3787     } MER;\r
3788 \r
3789     union { /* Interrupt Status (Base+0x000C) */\r
3790         vuint32_t R;\r
3791         struct {\r
3792             vuint32_t :28;\r
3793             vuint32_t I_ICONF:1;\r
3794             vuint32_t I_IMODE:1;\r
3795             vuint32_t I_SAFE:1;\r
3796             vuint32_t I_MTC:1;\r
3797         } B;\r
3798     } IS;\r
3799 \r
3800     union { /* Interrupt Mask (Base+0x0010) */\r
3801         vuint32_t R;\r
3802         struct {\r
3803             vuint32_t :28;\r
3804             vuint32_t M_ICONF:1;\r
3805             vuint32_t M_IMODE:1;\r
3806             vuint32_t M_SAFE:1;\r
3807             vuint32_t M_MTC:1;\r
3808         } B;\r
3809     } IM;\r
3810 \r
3811     union { /* Invalid Mode Transition Status (Base+0x0014) */\r
3812         vuint32_t R;\r
3813         struct {\r
3814             vuint32_t :27;\r
3815             vuint32_t S_MTI:1;\r
3816             vuint32_t S_MRI:1;\r
3817             vuint32_t S_DMA:1;\r
3818             vuint32_t S_NMA:1;\r
3819             vuint32_t S_SEA:1;\r
3820         } B;\r
3821     } IMTS;\r
3822 \r
3823     union { /* Debug Mode Transition Status (Base+0x0018) */\r
3824         vuint32_t R;\r
3825         struct {\r
3826             vuint32_t :8;\r
3827             vuint32_t MPH_BUSY:1;\r
3828             vuint32_t :2;\r
3829             vuint32_t PMC_PROG:1;\r
3830             vuint32_t CORE_DBG:1;\r
3831             vuint32_t :2;\r
3832             vuint32_t SMR:1;\r
3833             vuint32_t :1;\r
3834             vuint32_t FMPLL_SC:1;\r
3835             vuint32_t FXOSC_SC:1;\r
3836             vuint32_t FIRC_SC:1;\r
3837             vuint32_t :1;\r
3838             vuint32_t SYSCLK_SW:1;\r
3839             vuint32_t DFLASH_SC:1;\r
3840             vuint32_t CFLASH_SC:1;\r
3841             vuint32_t CDP_PRPH_0_143:1;\r
3842             vuint32_t :3;\r
3843             vuint32_t CDP_PRPH_96_127:1;\r
3844             vuint32_t CDP_PRPH_64_95:1;\r
3845             vuint32_t CDP_PRPH_32_63:1;\r
3846             vuint32_t CDP_PRPH_0_31:1;\r
3847         } B;\r
3848     } DMTS;\r
3849 \r
3850     vuint8_t ME_reserved0[4]; /* reserved 4 bytes (Base+0x001C-0x001F) */\r
3851 \r
3852     union { /* Reset Mode Configuration (Base+0x0020) */\r
3853         vuint32_t R;\r
3854         struct {\r
3855             vuint32_t :8;\r
3856             vuint32_t PDO:1;\r
3857             vuint32_t :2;\r
3858             vuint32_t MVRON:1;\r
3859             vuint32_t DFLAON:2;\r
3860             vuint32_t CFLAON:2;\r
3861             vuint32_t :9;\r
3862             vuint32_t FMPLLON:1;\r
3863             vuint32_t FXOSC0ON:1;\r
3864             vuint32_t FIRCON:1;\r
3865             vuint32_t SYSCLK:4;\r
3866         } B;\r
3867     } RESET;\r
3868 \r
3869     union { /* Test Mode Configuration (Base+0x0024) */\r
3870         vuint32_t R;\r
3871         struct {\r
3872             vuint32_t :8;\r
3873             vuint32_t PDO:1;\r
3874             vuint32_t :2;\r
3875             vuint32_t MVRON:1;\r
3876             vuint32_t DFLAON:2;\r
3877             vuint32_t CFLAON:2;\r
3878             vuint32_t :9;\r
3879             vuint32_t FMPLLON:1;\r
3880             vuint32_t FXOSC0ON:1;\r
3881             vuint32_t FIRCON:1;\r
3882             vuint32_t SYSCLK:4;\r
3883         } B;\r
3884     } TEST;\r
3885 \r
3886     union { /* Safe Mode Configuration (Base+0x0028) */\r
3887         vuint32_t R;\r
3888         struct {\r
3889             vuint32_t :8;\r
3890             vuint32_t PDO:1;\r
3891             vuint32_t :2;\r
3892             vuint32_t MVRON:1;\r
3893             vuint32_t DFLAON:2;\r
3894             vuint32_t CFLAON:2;\r
3895             vuint32_t :9;\r
3896             vuint32_t FMPLLON:1;\r
3897             vuint32_t FXOSC0ON:1;\r
3898             vuint32_t FIRCON:1;\r
3899             vuint32_t SYSCLK:4;\r
3900         } B;\r
3901     } SAFE;\r
3902 \r
3903     union { /* DRUN Mode Configuration (Base+0x002C) */\r
3904         vuint32_t R;\r
3905         struct {\r
3906             vuint32_t :8;\r
3907             vuint32_t PDO:1;\r
3908             vuint32_t :2;\r
3909             vuint32_t MVRON:1;\r
3910             vuint32_t DFLAON:2;\r
3911             vuint32_t CFLAON:2;\r
3912             vuint32_t :9;\r
3913             vuint32_t FMPLLON:1;\r
3914             vuint32_t FXOSCON:1;\r
3915             vuint32_t FIRCON:1;\r
3916             vuint32_t SYSCLK:4;\r
3917         } B;\r
3918     } DRUN;\r
3919 \r
3920     union { /* RUN 0->4 Mode Configuration (+0x0030-0x003C) */\r
3921         vuint32_t R;\r
3922         struct {\r
3923             vuint32_t :8;\r
3924             vuint32_t PDO:1;\r
3925             vuint32_t :2;\r
3926             vuint32_t MVRON:1;\r
3927             vuint32_t DFLAON:2;\r
3928             vuint32_t CFLAON:2;\r
3929             vuint32_t :9;\r
3930             vuint32_t FMPLLON:1;\r
3931             vuint32_t FXOSC0ON:1;\r
3932             vuint32_t FIRCON:1;\r
3933             vuint32_t SYSCLK:4;\r
3934         } B;\r
3935     } RUN[4];\r
3936 \r
3937     union { /* HALT0 Mode Configuration (Base+0x0040) */\r
3938         vuint32_t R;\r
3939         struct {\r
3940             vuint32_t :8;\r
3941             vuint32_t PDO:1;\r
3942             vuint32_t :2;\r
3943             vuint32_t MVRON:1;\r
3944             vuint32_t DFLAON:2;\r
3945             vuint32_t CFLAON:2;\r
3946             vuint32_t :9;\r
3947             vuint32_t FMPLLON:1;\r
3948             vuint32_t FXOSC0ON:1;\r
3949             vuint32_t FIRCON:1;\r
3950             vuint32_t SYSCLK:4;\r
3951         } B;\r
3952     } HALT0;\r
3953 \r
3954     vuint8_t ME_reserved1[4]; /* reserved 4 bytes (Base+0x0044-0x0047) */\r
3955 \r
3956     union { /* STOP0 Mode Configuration (Base+0x0048) */\r
3957         vuint32_t R;\r
3958         struct {\r
3959             vuint32_t :8;\r
3960             vuint32_t PDO:1;\r
3961             vuint32_t :2;\r
3962             vuint32_t MVRON:1;\r
3963             vuint32_t DFLAON:2;\r
3964             vuint32_t CFLAON:2;\r
3965             vuint32_t :9;\r
3966             vuint32_t FMPLLON:1;\r
3967             vuint32_t FXOSC0ON:1;\r
3968             vuint32_t FIRCON:1;\r
3969             vuint32_t SYSCLK:4;\r
3970         } B;\r
3971     } STOP0;\r
3972 \r
3973     vuint8_t ME_reserved2[8]; /* reserved 8 bytes (Base+0x004C-0x0053) */\r
3974 \r
3975     union { /* STANDBY0 Mode Configuration (Base+0x0054) */\r
3976         vuint32_t R;\r
3977         struct {\r
3978             vuint32_t :8;\r
3979             vuint32_t PDO:1;\r
3980             vuint32_t :2;\r
3981             vuint32_t MVRON:1;\r
3982             vuint32_t DFLAON:2;\r
3983             vuint32_t CFLAON:2;\r
3984             vuint32_t :9;\r
3985             vuint32_t FMPLLON:1;\r
3986             vuint32_t FXOSC0ON:1;\r
3987             vuint32_t FIRCON:1;\r
3988             vuint32_t SYSCLK:4;\r
3989         } B;\r
3990     } STANDBY0;\r
3991 \r
3992     vuint8_t ME_reserved3[8]; /* reserved 8 bytes (Base+0x0058-0x005F) */\r
3993 \r
3994     union {\r
3995         vuint32_t R;\r
3996         struct { /* Peripheral Status 0 (Base+0x0060) */\r
3997             vuint32_t :8;\r
3998             vuint32_t S_DMA_CH_MUX:1;\r
3999             vuint32_t :1;\r
4000             vuint32_t S_FLEXCAN5:1;\r
4001             vuint32_t S_FLEXCAN4:1;\r
4002             vuint32_t S_FLEXCAN3:1;\r
4003             vuint32_t S_FLEXCAN2:1;\r
4004             vuint32_t S_FLEXCAN1:1;\r
4005             vuint32_t S_FLEXCAN0:1;\r
4006             vuint32_t :2;\r
4007             vuint32_t :1; /* S_LINFLEX9:1; // not present on B1M */\r
4008             vuint32_t :1; /* S_LINFLEX8:1; // not present on B1M */\r
4009                         vuint32_t :2;\r
4010             vuint32_t S_DSPI5:1;\r
4011             vuint32_t S_DSPI4:1;\r
4012             vuint32_t S_DSPI3:1;\r
4013             vuint32_t S_DSPI2:1;\r
4014             vuint32_t S_DSPI1:1;\r
4015             vuint32_t S_DSPI0:1;\r
4016             vuint32_t :4;\r
4017         } B;\r
4018     } PS0;\r
4019 \r
4020     union { /* Peripheral Status 1 (Base+0x0064)*/\r
4021         vuint32_t R;\r
4022         struct {\r
4023             vuint32_t :3;\r
4024             vuint32_t S_CANSAMPLER:1;\r
4025             vuint32_t :2;\r
4026             vuint32_t S_CTUL:1;\r
4027             vuint32_t :1;\r
4028             vuint32_t S_LINFLEX7:1;\r
4029             vuint32_t S_LINFLEX6:1;\r
4030             vuint32_t S_LINFLEX5:1;\r
4031             vuint32_t S_LINFLEX4:1;\r
4032             vuint32_t S_LINFLEX3:1;\r
4033             vuint32_t S_LINFLEX2:1;\r
4034             vuint32_t S_LINFLEX1:1;\r
4035             vuint32_t S_LINFLEX0:1;\r
4036             vuint32_t :3;\r
4037             vuint32_t S_I2C0:1;\r
4038             vuint32_t :10;\r
4039             vuint32_t S_ADC1:1;\r
4040             vuint32_t S_ADC0:1;\r
4041         } B;\r
4042     } PS1;\r
4043 \r
4044     union { /* Peripheral Status 2 (Base+0x0068) */\r
4045         vuint32_t R;\r
4046         struct {\r
4047             vuint32_t :3;\r
4048             vuint32_t S_PIT_RTI:1;\r
4049             vuint32_t S_RTC_API:1;\r
4050             vuint32_t :16;\r
4051             vuint32_t S_EMIOS1:1;\r
4052             vuint32_t S_EMIOS0:1;\r
4053             vuint32_t :2;\r
4054             vuint32_t S_WKPU:1; \r
4055             vuint32_t S_SIUL:1;\r
4056             vuint32_t :4;\r
4057         } B;\r
4058     } PS2;\r
4059 \r
4060     union { /* Peripheral Status 3 (Base+0x006C) */\r
4061         vuint32_t R;\r
4062         struct {\r
4063             vuint32_t :23;\r
4064             vuint32_t S_CMU:1;\r
4065             vuint32_t :8;\r
4066         } B;\r
4067     } PS3;\r
4068 \r
4069     vuint8_t ME_reserved4[16]; /* reserved 16 bytes (Base+0x0070-0x007F) */\r
4070 \r
4071     union { /* RUN Peripheral Config 0..7 (+0x0080-009C) */\r
4072         vuint32_t R;\r
4073         struct {\r
4074             vuint32_t :24;\r
4075             vuint32_t RUN3:1;\r
4076             vuint32_t RUN2:1;\r
4077             vuint32_t RUN1:1;\r
4078             vuint32_t RUN0:1;\r
4079             vuint32_t DRUN:1;\r
4080             vuint32_t SAFE:1;\r
4081             vuint32_t TEST:1;\r
4082             vuint32_t RESET:1;\r
4083         } B;\r
4084     } RUNPC[8];\r
4085 \r
4086     union { /* Low Pwr Periph Config 0..7 (+0x00A0-0x00BC) */\r
4087       vuint32_t R;\r
4088       struct {\r
4089             vuint32_t :18;\r
4090             vuint32_t STANDBY0:1;\r
4091             vuint32_t :2;\r
4092             vuint32_t STOP0:1;\r
4093             vuint32_t :1;\r
4094             vuint32_t HALT0:1;\r
4095             vuint32_t :8;\r
4096         } B;\r
4097     } LPPC[8];\r
4098 \r
4099 \r
4100     /* Note on PCTL registers: There are only some PCTL implemented in      */\r
4101     /*  Bolero 1.5M/1M. In order to make the PCTL easily addressable, these      */\r
4102     /*  are defined as an array (ie ME.PCTL[x].R). This means you have      */\r
4103     /*  to be careful when addressing these registers in order not to       */\r
4104     /*  access a PCTL that is not implemented. Following are available:     */\r
4105     /*  104, 92, 91, 73, 72, 69, 68, 60, 57, 55, 53, 51, 50, 49,48,                     */\r
4106         /*   44, 33, 32, 23, 21-16, 13, 12, 9-4                                         */\r
4107 \r
4108     union { /* Peripheral Control 0..143 (+0x00C0-0x014F) */\r
4109         vuint8_t R;\r
4110         struct {\r
4111             vuint8_t :1;\r
4112             vuint8_t DBG_F:1;\r
4113             vuint8_t LP_CFG:3;\r
4114             vuint8_t RUN_CFG:3;\r
4115         } B;\r
4116     } PCTL[105];\r
4117 \r
4118 }; /* end of ME_tag */\r
4119    \r
4120 /****************************************************************************/\r
4121 /*                          MODULE : CGM                                   */\r
4122 /****************************************************************************/\r
4123 struct CGM_tag{\r
4124     /*\r
4125     The "CGM" has fairly wide coverage and essentially includes everything in\r
4126 \r
4127     chapter 9 of the Bolero Reference Manual:\r
4128 \r
4129         Base Address | Clock Sources\r
4130 \r
4131        -----------------------------        \r
4132 \r
4133         0xC3FE0000   | FXOSC_CTL\r
4134 \r
4135         0xC3FE0040   | SXOSC_CTL\r
4136 \r
4137         0xC3FE0060   | FIRC_CTL\r
4138 \r
4139         0xC3FE0080   | SIRC_CTL\r
4140 \r
4141         0xC3FE00A0   | FMPLL\r
4142 \r
4143         0xC3FE00C0   | CGM Block 1\r
4144 \r
4145         0xC3FE0100   | CMU    \r
4146 \r
4147         0xC3FE0120   | CGM Block 2\r
4148 \r
4149 \r
4150 \r
4151         In this header file, "Base" referrs to the 1st address, 0xC3FE_0000 \r
4152 \r
4153     */\r
4154     /* FXOSC - 0xC3FE_0000*/\r
4155     union { /* Fast OSC Control (Base+0x0000) */\r
4156         vuint32_t R;\r
4157         struct {\r
4158             vuint32_t OSCBYP:1;\r
4159             vuint32_t :7;\r
4160             vuint32_t EOCV:8;\r
4161             vuint32_t M_OSC:1;\r
4162             vuint32_t :2;\r
4163             vuint32_t OSCDIV:5;\r
4164             vuint32_t I_OSC:1;\r
4165             vuint32_t:7;\r
4166         } B;\r
4167     } FXOSC_CTL;\r
4168 \r
4169 \r
4170     /* Reserved Space between end of FXOSC and start SXOSC */\r
4171     vuint8_t CGM_reserved0[60]; /* Reserved 60 bytes (Base+0x0004-0x003F) */\r
4172 \r
4173 \r
4174     /* SXOSC - 0xC3FE_0040*/\r
4175     union { /* Slow Osc Control (Base+0x0040) */\r
4176         vuint32_t R;\r
4177         struct {\r
4178             vuint32_t OSCBYP:1;\r
4179             vuint32_t :7;\r
4180             vuint32_t EOCV:8;\r
4181             vuint32_t M_OSC:1;\r
4182             vuint32_t :2;\r
4183             vuint32_t OSCDIV:5;\r
4184             vuint32_t I_OSC:1;\r
4185             vuint32_t :5;\r
4186             vuint32_t S_OSC:1;\r
4187             vuint32_t OSCON:1;\r
4188         } B;\r
4189     } SXOSC_CTL;\r
4190 \r
4191 \r
4192     /* Reserved space between end of SXOSC and start of FIRC */\r
4193     vuint8_t CGM_reserved1[28]; /*Reserved 28 bytes (Base+0x0044-0x005F) */\r
4194 \r
4195 \r
4196     /* FIRC - 0xC3FE_0060 */\r
4197     union { /* Fast IRC Control (Base+0x0060) */\r
4198         vuint32_t R;\r
4199         struct {\r
4200             vuint32_t :10;\r
4201             vuint32_t RCTRIM:6;\r
4202             vuint32_t :3;\r
4203             vuint32_t RCDIV:5;\r
4204                         vuint32_t :2;\r
4205                         vuint32_t FIRCON_STDBY:1;\r
4206             vuint32_t :5;\r
4207         } B;\r
4208     } FIRC_CTL;\r
4209 \r
4210 \r
4211     /* Reserved space between end of FIRC and start of SIRC */\r
4212     vuint8_t CGM_reserved2[28]; /*Reserved 28 bytes (Base+0x0064-0x007F) */\r
4213 \r
4214 \r
4215     /* SIRC - 0xC3FE_0080 */\r
4216     union { /* Slow IRC Control (Base+0x0080) */\r
4217         vuint32_t R;\r
4218         struct {\r
4219             vuint32_t :11;\r
4220             vuint32_t SIRCTRIM:5;\r
4221             vuint32_t :3;\r
4222             vuint32_t SIRCDIV:5;\r
4223             vuint32_t :3;\r
4224             vuint32_t S_SIRC:1;\r
4225             vuint32_t :3;\r
4226             vuint32_t SIRCON_STDBY:1;\r
4227         } B;\r
4228     } SIRC_CTL;\r
4229 \r
4230 \r
4231     /* Reserved space between end of SIRC and start of FMPLL */\r
4232     vuint8_t CGM_reserved3[28]; /*Reserved 28 bytes (Base+0x0084-0x009F) */\r
4233 \r
4234 \r
4235     /* FMPLL - 0xC3FE_00A0 */\r
4236     union { /* FMPLL Control (Base+0x00A0) */\r
4237         vuint32_t R;\r
4238         struct {\r
4239                         vuint32_t:2;\r
4240                         vuint32_t IDF:4;\r
4241                         vuint32_t ODF:2;\r
4242                         vuint32_t:1;\r
4243                         vuint32_t NDIV:7;\r
4244                         vuint32_t:7;\r
4245                         vuint32_t EN_PLL_SW:1;\r
4246                         vuint32_t MODE:1;\r
4247                         vuint32_t UNLOCK_ONCE:1;\r
4248                         vuint32_t:1;\r
4249                         vuint32_t I_LOCK:1;\r
4250                         vuint32_t S_LOCK:1;\r
4251                         vuint32_t PLL_FAIL_MASK:1;\r
4252                         vuint32_t PLL_FAIL_FLAG:1;\r
4253                         vuint32_t:1;\r
4254         } B;\r
4255     } FMPLL_CR;\r
4256 \r
4257     union { /* FMPLL Modulation (Base+0x00A4) */\r
4258         vuint32_t R;\r
4259         struct {\r
4260             vuint32_t STRB_BYPASS:1;\r
4261             vuint32_t :1;\r
4262             vuint32_t SPRD_SEL:1;\r
4263             vuint32_t MOD_PERIOD:13;\r
4264             vuint32_t FM_EN:1;\r
4265             vuint32_t INC_STEP:15;\r
4266         } B;\r
4267     } FMPLL_MR;\r
4268 \r
4269 \r
4270     /* Reserved space between end of FMPLL and start of CGM Block 1 */\r
4271     vuint8_t CGM_reserved4[88]; /*Reserved 88 bytes (Base+0x00A8-0x00FF) */\r
4272 \r
4273     /* CMU - 0xC3FE_0100 */\r
4274     union { /* CMU Control Status (Base+0x0100) */\r
4275         vuint32_t R;\r
4276         struct {\r
4277             vuint32_t :8;\r
4278             vuint32_t SFM:1;\r
4279             vuint32_t :13;\r
4280             vuint32_t CLKSEL1:2;\r
4281             vuint32_t :5;\r
4282             vuint32_t RCDIV:2;\r
4283             vuint32_t CME_A:1;\r
4284         } B;\r
4285     } CMU_CSR;\r
4286 \r
4287     union { /* CMU Frequency Display (Base+0x0104) */\r
4288         vuint32_t R;\r
4289         struct {\r
4290             vuint32_t :12;\r
4291             vuint32_t FD:20;\r
4292         } B;\r
4293     } CMU_FDR;\r
4294 \r
4295     union { /* CMU High Freq Reference FMPLL (Base+0x0108) */\r
4296         vuint32_t R;\r
4297         struct {\r
4298             vuint32_t :20;\r
4299             vuint32_t HFREF:12;\r
4300         } B;\r
4301     } CMU_HFREFR;\r
4302 \r
4303     union { /* CMU Low Freq Reference FMPLL (Base+0x010C) */\r
4304         vuint32_t R;\r
4305         struct {\r
4306             vuint32_t :20;\r
4307             vuint32_t LFREF:12;\r
4308         } B;\r
4309     } CMU_LFREFR;\r
4310 \r
4311     union { /* CMU Interrupt Status (Base+0x0110) */\r
4312         vuint32_t R;\r
4313         struct {\r
4314             vuint32_t :29;\r
4315             vuint32_t FHHI:1;  // *_A not present in RM\r
4316             vuint32_t FLLI:1;  // *_A not present in RM\r
4317             vuint32_t OLRI:1;\r
4318         } B;\r
4319     } CMU_ISR;\r
4320 \r
4321     /* Reserved space where IMR was previously positioned */\r
4322     vuint8_t CGM_reserved5[4]; /*Reserved 4 bytes (Base+0x0114-0x0117) */\r
4323 \r
4324     union { /* CMU Measurement Duration (Base+0x0118) */\r
4325         vuint32_t R;\r
4326         struct {\r
4327             vuint32_t :12;\r
4328             vuint32_t MD:20;\r
4329         } B;\r
4330     } CMU_MDR;\r
4331 \r
4332 \r
4333     /* Reserved space between end of CMU and start of CGM Block 2 */\r
4334     vuint8_t CGM_reserved6[596]; /*Reserved 596 bytes (Base+0x011C-0x036F) */\r
4335 \r
4336     union { /* GCM Output Clock Enable (Base+0x0370) */\r
4337         vuint32_t R;\r
4338         struct {\r
4339             vuint32_t :31;\r
4340             vuint32_t EN:1;\r
4341         } B;\r
4342     } OC_EN;\r
4343 \r
4344     union { /* CGM Output Clock Division Sel (Base+0x0374) */\r
4345         vuint32_t R;\r
4346         struct {\r
4347             vuint32_t :2;\r
4348             vuint32_t SELDIV:2;\r
4349             vuint32_t SELCTL:4;\r
4350                         vuint32_t :24;\r
4351         } B;\r
4352     } OCDS_SC;\r
4353 \r
4354     union { /* CGM System Clock Select Status (Base+0x0378) */\r
4355         vuint32_t R;\r
4356         struct {\r
4357             vuint32_t :4;\r
4358             vuint32_t SELSTAT:4;\r
4359             vuint32_t :24;\r
4360         } B;\r
4361     } SC_SS;\r
4362 \r
4363     union { /* CGM Sys Clk Div Config 0.2 (0x037C-0x037E) */\r
4364         vuint8_t R;\r
4365         struct {\r
4366             vuint8_t DE:1;\r
4367             vuint8_t :3;\r
4368             vuint8_t DIV:4;\r
4369         } B;\r
4370     } SC_DC[3];\r
4371 \r
4372    // vuint8_t CGM_reserved7[15489]; /*Reserved 1 byte (Base+0x037F - 0x3FFF) */\r
4373 \r
4374 }; /* end of CGM_tag */\r
4375    \r
4376 /****************************************************************************/\r
4377 /*                          MODULE : RGM  base address - 0xC3FE_4000        */\r
4378 /****************************************************************************/\r
4379 struct RGM_tag{\r
4380 \r
4381     union { /* Functional Event Status (Base+0x0000) */\r
4382         vuint16_t R;\r
4383         struct {\r
4384             vuint16_t F_EXR:1;\r
4385             vuint16_t :6;\r
4386             vuint16_t F_FLASH:1;\r
4387             vuint16_t F_LVD45:1;\r
4388             vuint16_t F_CMU_FHL:1;\r
4389             vuint16_t F_CMU_OLR:1;\r
4390             vuint16_t F_FMPLL:1;\r
4391             vuint16_t F_CHKSTOP:1;\r
4392             vuint16_t F_SOFT:1;\r
4393             vuint16_t F_CORE:1;\r
4394             vuint16_t F_JTAG:1;\r
4395         } B;\r
4396     } FES;\r
4397 \r
4398     union { /* Destructive Event Status (Base+0x0002) */\r
4399         vuint16_t R;\r
4400         struct {\r
4401             vuint16_t F_POR:1;\r
4402             vuint16_t :10;\r
4403             vuint16_t F_LVD27_VREG:1;\r
4404                         vuint16_t F_LVD27:1;\r
4405             vuint16_t F_SWT:1;\r
4406             vuint16_t F_LVD12_PD1:1;\r
4407             vuint16_t F_LVD12_PD0:1;\r
4408         } B;\r
4409     } DES;\r
4410 \r
4411     union { /* Functional Event Reset Disable (+0x0004) */\r
4412         vuint16_t R;\r
4413         struct {\r
4414             vuint16_t D_EXR:1;\r
4415             vuint16_t :6;\r
4416             vuint16_t D_FLASH:1;\r
4417             vuint16_t D_LVD45:1;\r
4418             vuint16_t D_CMU_FHL:1;\r
4419             vuint16_t D_CMU_OLR:1;\r
4420             vuint16_t D_FMPLL:1;\r
4421             vuint16_t D_CHKSTOP:1;\r
4422             vuint16_t D_SOFT:1;\r
4423             vuint16_t D_CORE:1;\r
4424             vuint16_t D_JTAG:1;\r
4425         } B;\r
4426     } FERD;\r
4427 \r
4428     union { /* Destructive Event Reset Disable (Base+0x0006)*/\r
4429         vuint16_t R;\r
4430         struct {\r
4431             vuint16_t :11;\r
4432             vuint16_t D_LVD27_VREG:1;\r
4433                         vuint16_t D_LVD27:1;\r
4434             vuint16_t D_SWT:1;\r
4435             vuint16_t D_LVD12_PD1:1;\r
4436             vuint16_t D_LVD12_PD0:1;\r
4437         } B;\r
4438     } DERD;\r
4439 \r
4440     vuint8_t RGM_reserved0[8]; /*Reserved 8 bytes (Base+0x008-0x000F) */\r
4441 \r
4442     union { /* Functional Event Alt Request (Base+0x0010) */\r
4443         vuint16_t R;\r
4444         struct {\r
4445                         vuint16_t AR_EXR:1;\r
4446                         vuint16_t:6;\r
4447                         vuint16_t AR_FLASH:1;\r
4448                         vuint16_t AR_LVD45:1;\r
4449                         vuint16_t AR_CMU_FHL:1;\r
4450                         vuint16_t AR_CMU_OLR:1;\r
4451                         vuint16_t AR_FMPLL:1;\r
4452                         vuint16_t AR_CHKSTOP:1;\r
4453                         vuint16_t AR_SOFT:1;\r
4454                         vuint16_t AR_CORE:1;\r
4455                         vuint16_t AR_JTAG:1;\r
4456         } B;\r
4457     } FEAR;\r
4458         \r
4459         union { /* Destructive Event Alt Request (Base+0x0012) */\r
4460                 vuint16_t R;\r
4461                 struct {\r
4462                         vuint16_t:11;\r
4463                         vuint16_t AR_LVD27_VREG:1;\r
4464                         vuint16_t AR_LVD27:1;\r
4465                         vuint16_t AR_SWT:1;\r
4466                         vuint16_t AR_LVD12_PD1:1;\r
4467                         vuint16_t AR_LVD12_PD0:1;\r
4468             } B;\r
4469         } DEAR;                 /* Destructive Event Alternate Request */\r
4470 \r
4471     vuint8_t RGM_reserved1[4]; /*Reserved 4 bytes (Base+0x0014-0x0017) */\r
4472 \r
4473     union { /* Functional Event Short Sequence (+0x0018) */\r
4474         vuint16_t R;\r
4475         struct {\r
4476             vuint16_t SS_EXR:1;\r
4477             vuint16_t :6;\r
4478             vuint16_t SS_FLASH:1;\r
4479             vuint16_t SS_LVD45:1;\r
4480             vuint16_t SS_CMU_FHL:1;\r
4481             vuint16_t SS_CMU_OLR:1;\r
4482             vuint16_t SS_FMPLL:1;\r
4483             vuint16_t SS_CHKSTOP:1;\r
4484             vuint16_t SS_SOFT:1;\r
4485             vuint16_t SS_CORE:1;\r
4486             vuint16_t SS_JTAG:1;\r
4487         } B;\r
4488     } FESS;\r
4489 \r
4490     union { /* STANDBY reset sequence (Base+0x001A) */\r
4491         vuint16_t R;\r
4492         struct {\r
4493             vuint16_t :8;\r
4494             vuint16_t BOOT_FROM_BKP_RAM:1;\r
4495             vuint16_t :7;\r
4496         } B;\r
4497     } STDBY;\r
4498 \r
4499     union { /* Functional Bidirectional Reset En (+0x001C) */\r
4500         vuint16_t R;\r
4501         struct {\r
4502             vuint16_t BE_EXR:1;\r
4503             vuint16_t :6;\r
4504             vuint16_t BE_FLASH:1;\r
4505             vuint16_t BE_LVD45:1;\r
4506             vuint16_t BE_CMU_FHL:1;\r
4507             vuint16_t BE_CMU_OLR:1;\r
4508             vuint16_t BE_FMPLL:1;\r
4509             vuint16_t BE_CHKSTOP:1;\r
4510             vuint16_t BE_SOFT:1;\r
4511             vuint16_t BE_CORE:1;\r
4512             vuint16_t BE_JTAG:1;\r
4513         } B;\r
4514     } FBRE;\r
4515 \r
4516 }; /* end of RGM_tag */\r
4517 /****************************************************************************/\r
4518 /*                          MODULE : PCU  (base address 0xC3FE_8000)        */\r
4519 /****************************************************************************/\r
4520 struct PCU_tag{\r
4521 \r
4522     union { /* PCU Power domain 0-3 config (+0x0000-0x000C) */\r
4523         vuint32_t R;\r
4524         struct {\r
4525             vuint32_t :18;\r
4526             vuint32_t STBY0:1;\r
4527             vuint32_t :2;\r
4528             vuint32_t STOP0:1;\r
4529             vuint32_t :1;\r
4530             vuint32_t HALT0:1;\r
4531             vuint32_t RUN3:1;\r
4532             vuint32_t RUN2:1;\r
4533             vuint32_t RUN1:1;\r
4534             vuint32_t RUN0:1;\r
4535             vuint32_t DRUN:1;\r
4536             vuint32_t SAFE:1;\r
4537             vuint32_t TEST:1;\r
4538             vuint32_t RST:1;\r
4539         } B;\r
4540     } PCONF[4];\r
4541 \r
4542     vuint8_t PCU_reserved0[48]; /* Reserved 48 bytes (Base+0x0010-0x003F) */\r
4543 \r
4544     union { /* PCU Power Domain Status (Base+0x0040) */\r
4545         vuint32_t R;\r
4546         struct {\r
4547             vuint32_t :28;\r
4548             vuint32_t PD3:1;\r
4549             vuint32_t PD2:1;\r
4550             vuint32_t PD1:1;\r
4551             vuint32_t PD0:1;\r
4552         } B;\r
4553     } PSTAT;\r
4554 \r
4555     vuint8_t PCU_reserved1[60]; /* Reserved 60 bytes (Base+0x0044-0x007F) */\r
4556 \r
4557 \r
4558  /* Following register is from Voltage Regulators chapter of RM */\r
4559 \r
4560     union { /* PCU Voltage Regulator Control (Base+0x0080) */\r
4561         vuint32_t R;\r
4562         struct {\r
4563             vuint32_t :31;\r
4564             vuint32_t MASK_LVDHV5:1;\r
4565         } B;\r
4566     } VREG_CTL; /* Changed from VCTL for consistency with other regs here */\r
4567 \r
4568         }; /* end of PCU_tag */\r
4569         \r
4570 /****************************************************************************/\r
4571 /*                          MODULE : CTU Lite(base address - 0xFFE6_4000)   */\r
4572 /****************************************************************************/\r
4573 struct CTUL_tag{\r
4574 \r
4575    // union { /* CTU Control Status Register (Base+0x0000)NOT PRESENT WITHIN RM*/\r
4576     //    vuint32_t R;\r
4577    //     struct {\r
4578    //         vuint32_t :24;\r
4579    //         vuint32_t TRGIEN:1;\r
4580     //        vuint32_t TRGI:1;\r
4581    //         vuint32_t :6;\r
4582    //     } B;\r
4583    // } CSR;\r
4584 \r
4585     vuint8_t CTU_reserved[48]; /* Reserved 48 bytes (Base+0x0000-0x002F) */\r
4586 \r
4587     union { /* Event Config 0..63 (Base+0x0030-0x012C) */\r
4588         vuint32_t R;\r
4589         struct {\r
4590             vuint32_t :16;\r
4591             vuint32_t TM:1;\r
4592             vuint32_t CLR_FLAG:1;\r
4593             vuint32_t :5;\r
4594             vuint32_t ADC_SEL:1;\r
4595             vuint32_t :1;\r
4596             vuint32_t CHANNEL_VALUE:7;\r
4597         } B;\r
4598     } EVTCFGR[64];\r
4599 \r
4600 \r
4601 }; /* end of CTUL_tag */\r
4602 \r
4603 /****************************************************************************/\r
4604 /* MODULE : EMIOS (base address - eMIOS0 0xC3FA_0000; eMIOS1 0xC3FA_4000)   */\r
4605 /****************************************************************************/\r
4606 \r
4607 struct EMIOS_CHANNEL_tag{\r
4608 \r
4609     union { /* Channel A Data (UCn Base+0x0000) */\r
4610         vuint32_t R;\r
4611         struct {\r
4612             vuint32_t :16;\r
4613             vuint32_t A:16;\r
4614         } B;\r
4615     } CADR;\r
4616 \r
4617     union { /* Channel B Data (UCn Base+0x0004) */\r
4618         vuint32_t R;\r
4619         struct {\r
4620             vuint32_t :16;\r
4621             vuint32_t B:16;\r
4622         } B;\r
4623     } CBDR;\r
4624 \r
4625     union { /* Channel Counter (UCn Base+0x0008) */\r
4626         vuint32_t R;\r
4627         struct {\r
4628             vuint32_t :16;\r
4629             vuint32_t C:16;\r
4630         } B;\r
4631     } CCNTR;\r
4632 \r
4633     union { /* Channel Control (UCn Base+0x000C) */\r
4634         vuint32_t R;\r
4635         struct {\r
4636             vuint32_t FREN:1;\r
4637             vuint32_t :3;\r
4638             vuint32_t UCPRE:2;\r
4639             vuint32_t UCPEN:1;\r
4640             vuint32_t DMA:1;\r
4641             vuint32_t :1;\r
4642             vuint32_t IF:4;\r
4643             vuint32_t FCK:1;\r
4644             vuint32_t FEN:1;\r
4645             vuint32_t :3;\r
4646             vuint32_t FORCMA:1;\r
4647             vuint32_t FORCMB:1;\r
4648             vuint32_t :1;\r
4649             vuint32_t BSL:2;\r
4650             vuint32_t EDSEL:1;\r
4651             vuint32_t EDPOL:1;\r
4652             vuint32_t MODE:7;\r
4653         } B;\r
4654     } CCR;\r
4655 \r
4656     union { /* Channel Status (UCn Base+0x0010) */\r
4657         vuint32_t R;\r
4658         struct {\r
4659             vuint32_t OVR:1;\r
4660             vuint32_t :15;\r
4661             vuint32_t OVFL:1;\r
4662             vuint32_t :12;\r
4663             vuint32_t UCIN:1;\r
4664             vuint32_t UCOUT:1;\r
4665             vuint32_t FLAG:1;\r
4666         } B;\r
4667     } CSR;\r
4668 \r
4669     union { /* Alternate Channel A Data (UCn Base+0x0014) */\r
4670         vuint32_t R;\r
4671         struct {\r
4672             vuint32_t :16;\r
4673             vuint32_t ALTA:16;\r
4674         } B;\r
4675     } ALTCADR;\r
4676 \r
4677     vuint8_t EMIOS_CHANNEL_reserved0[8]; /* (UCn Base + (0x0018-0x001F) */\r
4678 \r
4679 }; /* end of EMIOS_CHANNEL_tag */\r
4680 \r
4681 \r
4682 struct EMIOS_tag{\r
4683 \r
4684     union { /* Module Configuration (Base+0x0000) */\r
4685         vuint32_t R;\r
4686         struct {\r
4687             vuint32_t :1;\r
4688             vuint32_t MDIS:1;\r
4689             vuint32_t FRZ:1;\r
4690             vuint32_t GTBE:1;\r
4691             vuint32_t :1;\r
4692             vuint32_t GPREN:1;\r
4693             vuint32_t :10;\r
4694             vuint32_t GPRE:8;\r
4695             vuint32_t :8;\r
4696         } B;\r
4697     } MCR;\r
4698 \r
4699     union { /* Global Flag (Base+0x0004) */\r
4700         vuint32_t R;\r
4701         struct {\r
4702             vuint32_t F31:1;\r
4703             vuint32_t F30:1;\r
4704             vuint32_t F29:1;\r
4705             vuint32_t F28:1;\r
4706             vuint32_t F27:1;\r
4707             vuint32_t F26:1;\r
4708             vuint32_t F25:1;\r
4709             vuint32_t F24:1;\r
4710             vuint32_t F23:1;\r
4711             vuint32_t F22:1;\r
4712             vuint32_t F21:1;\r
4713             vuint32_t F20:1;\r
4714             vuint32_t F19:1;\r
4715             vuint32_t F18:1;\r
4716             vuint32_t F17:1;\r
4717             vuint32_t F16:1;\r
4718             vuint32_t F15:1;\r
4719             vuint32_t F14:1;\r
4720             vuint32_t F13:1;\r
4721             vuint32_t F12:1;\r
4722             vuint32_t F11:1;\r
4723             vuint32_t F10:1;\r
4724             vuint32_t F9:1;\r
4725             vuint32_t F8:1;\r
4726             vuint32_t F7:1;\r
4727             vuint32_t F6:1;\r
4728             vuint32_t F5:1;\r
4729             vuint32_t F4:1;\r
4730             vuint32_t F3:1;\r
4731             vuint32_t F2:1;\r
4732             vuint32_t F1:1;\r
4733             vuint32_t F0:1;\r
4734         } B;\r
4735     } GFR;\r
4736 \r
4737     union { /* Output Update Disable (Base+0x0008) */\r
4738         vuint32_t R;\r
4739         struct {\r
4740             vuint32_t OU31:1;\r
4741             vuint32_t OU30:1;\r
4742             vuint32_t OU29:1;\r
4743             vuint32_t OU28:1;\r
4744             vuint32_t OU27:1;\r
4745             vuint32_t OU26:1;\r
4746             vuint32_t OU25:1;\r
4747             vuint32_t OU24:1;\r
4748             vuint32_t OU23:1;\r
4749             vuint32_t OU22:1;\r
4750             vuint32_t OU21:1;\r
4751             vuint32_t OU20:1;\r
4752             vuint32_t OU19:1;\r
4753             vuint32_t OU18:1;\r
4754             vuint32_t OU17:1;\r
4755             vuint32_t OU16:1;\r
4756             vuint32_t OU15:1;\r
4757             vuint32_t OU14:1;\r
4758             vuint32_t OU13:1;\r
4759             vuint32_t OU12:1;\r
4760             vuint32_t OU11:1;\r
4761             vuint32_t OU10:1;\r
4762             vuint32_t OU9:1;\r
4763             vuint32_t OU8:1;\r
4764             vuint32_t OU7:1;\r
4765             vuint32_t OU6:1;\r
4766             vuint32_t OU5:1;\r
4767             vuint32_t OU4:1;\r
4768             vuint32_t OU3:1;\r
4769             vuint32_t OU2:1;\r
4770             vuint32_t OU1:1;\r
4771             vuint32_t OU0:1;\r
4772         } B;\r
4773     } OUDR;\r
4774 \r
4775     union { /* Disable Channel (Base+0x000F) */\r
4776         vuint32_t R;\r
4777         struct {\r
4778             vuint32_t CHDIS31:1;\r
4779             vuint32_t CHDIS30:1;\r
4780             vuint32_t CHDIS29:1;\r
4781             vuint32_t CHDIS28:1;\r
4782             vuint32_t CHDIS27:1;\r
4783             vuint32_t CHDIS26:1;\r
4784             vuint32_t CHDIS25:1;\r
4785             vuint32_t CHDIS24:1;\r
4786             vuint32_t CHDIS23:1;\r
4787             vuint32_t CHDIS22:1;\r
4788             vuint32_t CHDIS21:1;\r
4789             vuint32_t CHDIS20:1;\r
4790             vuint32_t CHDIS19:1;\r
4791             vuint32_t CHDIS18:1;\r
4792             vuint32_t CHDIS17:1;\r
4793             vuint32_t CHDIS16:1;\r
4794             vuint32_t CHDIS15:1;\r
4795             vuint32_t CHDIS14:1;\r
4796             vuint32_t CHDIS13:1;\r
4797             vuint32_t CHDIS12:1;\r
4798             vuint32_t CHDIS11:1;\r
4799             vuint32_t CHDIS10:1;\r
4800             vuint32_t CHDIS9:1;\r
4801             vuint32_t CHDIS8:1;\r
4802             vuint32_t CHDIS7:1;\r
4803             vuint32_t CHDIS6:1;\r
4804             vuint32_t CHDIS5:1;\r
4805             vuint32_t CHDIS4:1;\r
4806             vuint32_t CHDIS3:1;\r
4807             vuint32_t CHDIS2:1;\r
4808             vuint32_t CHDIS1:1;\r
4809             vuint32_t CHDIS0:1;\r
4810         } B;\r
4811     } UCDIS;\r
4812 \r
4813     vuint8_t EMIOS_reserved0[16]; /* Reserved 16 Bytes (Base+0x0010-0x001F) */\r
4814 \r
4815     struct EMIOS_CHANNEL_tag CH[32]; /* Add in 32 unified channels */\r
4816 \r
4817     vuint8_t EMIOS_reserved1[3040]; /* 3040 bytes (Base+0x0420-0x0FFF) */\r
4818 \r
4819 }; /* end of EMIOS_tag */\r
4820 \r
4821 /****************************************************************************/\r
4822 /*                          MODULE : PIT  (base address - 0xC3FF_FFFF)      */\r
4823 /****************************************************************************/\r
4824   struct PIT_tag {\r
4825 \r
4826     union { /* PIT Module Control (Base+0x0000) */\r
4827         vuint32_t R;\r
4828         struct {\r
4829             vuint32_t:30;\r
4830             vuint32_t MDIS:1;\r
4831             vuint32_t FRZ:1;\r
4832         } B;\r
4833     } PITMCR;\r
4834 \r
4835     vuint8_t PIT_reserved0[252]; /* Reserved 252 Bytes (Base+0x0004-0x00FF) */\r
4836 \r
4837     /* PIT Timer Channels 0..7 (Base+0x0100-0x017C) */\r
4838     struct {\r
4839 \r
4840         union { /* PIT Timer Load Value (Offset+0x0000) */\r
4841             vuint32_t R;\r
4842             struct {\r
4843                 vuint32_t TSV:32;\r
4844             } B;\r
4845         } LDVAL;\r
4846 \r
4847         union { /* PIT Current Timer Value (Offset+0x0004) */\r
4848             vuint32_t R;\r
4849             struct {\r
4850                 vuint32_t TVL:32;\r
4851             } B;\r
4852         } CVAL;\r
4853 \r
4854         union { /* PIT Timer Control (Offset+0x0008) */\r
4855             vuint32_t R;\r
4856             struct {\r
4857                 vuint32_t :30;\r
4858                 vuint32_t TIE:1;\r
4859                 vuint32_t TEN:1;\r
4860             } B;\r
4861         } TCTRL;\r
4862 \r
4863         union { /* PIT Timer Control (Offset+0x0008) */\r
4864             vuint32_t R;\r
4865             struct {\r
4866                 vuint32_t :31;\r
4867                 vuint32_t TIF:1;\r
4868             } B;\r
4869         } TFLG;\r
4870 \r
4871     }CH[8]; /* End of PIT Timer Channels */\r
4872 \r
4873 }; /* end of PIT_tag */\r
4874 /****************************************************************************/\r
4875 /*                          MODULE : I2C (base address - 0xFFE3_0000)       */\r
4876 /****************************************************************************/\r
4877 struct I2C_tag{\r
4878 \r
4879     union { /* I2C Bus Address (Base+0x0000) */\r
4880         vuint8_t R;\r
4881         struct {\r
4882             vuint8_t ADR:7;\r
4883             vuint8_t :1;\r
4884         } B;\r
4885     } IBAD;\r
4886 \r
4887     union { /* I2C Bus Frequency Divider (Base+0x0001) */\r
4888         vuint8_t R;\r
4889         struct {\r
4890             vuint8_t IBC:8;\r
4891         } B;\r
4892     } IBFD;\r
4893 \r
4894     union { /* I2C Bus Control (Base+0x0002) */\r
4895         vuint8_t R;\r
4896         struct {\r
4897             vuint8_t MDIS:1;\r
4898             vuint8_t IBIE:1;\r
4899             vuint8_t MS:1; /*different from RM for backward compatiblity MSSL in RM*/  \r
4900             vuint8_t TX:1;\r
4901             vuint8_t NOACK:1;\r
4902             vuint8_t RSTA:1;\r
4903             vuint8_t DMAEN:1;\r
4904             vuint8_t :1;\r
4905         } B;\r
4906     } IBCR;\r
4907 \r
4908     union { /* I2C Bus Status (Base+0x0003) */\r
4909         vuint8_t R;\r
4910         struct {\r
4911             vuint8_t TCF:1;\r
4912             vuint8_t IAAS:1;\r
4913             vuint8_t IBB:1;\r
4914             vuint8_t IBAL:1;\r
4915             vuint8_t :1;\r
4916             vuint8_t SRW:1;\r
4917             vuint8_t IBIF:1;\r
4918             vuint8_t RXAK:1;\r
4919         } B;\r
4920     } IBSR;\r
4921 \r
4922     union { /* I2C Bus Data I/O (Base+0x0004) */\r
4923         vuint8_t R;\r
4924         struct {\r
4925             vuint8_t DATA:8;\r
4926         } B;\r
4927     } IBDR;\r
4928 \r
4929     union { /* I2C Interrupt Configuration (Base+0x0005) */\r
4930         vuint8_t R;\r
4931         struct {\r
4932             vuint8_t BIIE:1;\r
4933             vuint8_t :7;\r
4934         } B;\r
4935     } IBIC;\r
4936 \r
4937     vuint8_t I2C_reserved0[16378]; /* Reserved 16378 (Base+0x0006-0x3FFF) */\r
4938 \r
4939 }; /* end of i2c_tag */\r
4940 /****************************************************************************/\r
4941 /*                          MODULE : MPU (base address - 0xFFF1_0000)       */\r
4942 /****************************************************************************/\r
4943  struct MPU_tag {\r
4944 \r
4945     union { /* Control/Error Status (Base+0x0000) */\r
4946         vuint32_t R;\r
4947         struct {\r
4948                         vuint32_t :5;\r
4949                         vuint32_t SPERR:3;\r
4950                         vuint32_t:4;\r
4951                         vuint32_t HRL:4;\r
4952                         vuint32_t NSP:4;\r
4953                         vuint32_t NGRD:4;\r
4954                         vuint32_t :7;\r
4955                         vuint32_t VLD:1;\r
4956         } B;\r
4957     } CESR;\r
4958 \r
4959     vuint8_t MPU_reserved0[12]; /* Reserved 12 Bytes (Base+0x0004-0x000F) */\r
4960 \r
4961 \r
4962    union { /* Error Address Slave Port0 (Base+0x0010) */\r
4963         vuint32_t R;\r
4964         struct {\r
4965             vuint32_t EADDR:32;\r
4966         } B;\r
4967     } EAR0;\r
4968 \r
4969     union { /* Error Detail Slave Port0 (Base+0x0014) */\r
4970         vuint32_t R;\r
4971         struct {\r
4972             vuint32_t :8;\r
4973                         vuint32_t EACD:8;\r
4974             vuint32_t EPID:8;\r
4975             vuint32_t EMN:4;\r
4976             vuint32_t EATTR:3;\r
4977             vuint32_t ERW:1;\r
4978         } B;\r
4979     } EDR0;\r
4980 \r
4981 \r
4982     union { /* Error Address Slave Port1 (Base+0x0018) */\r
4983         vuint32_t R;\r
4984         struct {\r
4985             vuint32_t EADDR:32;\r
4986         } B;\r
4987     } EAR1;\r
4988 \r
4989     union { /* Error Detail Slave Port1 (Base+0x001C) */\r
4990         vuint32_t R;\r
4991         struct {\r
4992             vuint32_t :8;\r
4993                         vuint32_t EACD:8;\r
4994             vuint32_t EPID:8;\r
4995             vuint32_t EMN:4;\r
4996             vuint32_t EATTR:3;\r
4997             vuint32_t ERW:1;\r
4998         } B;\r
4999     } EDR1;\r
5000 \r
5001 \r
5002     union { /* Error Address Slave Port2 (Base+0x0020) */\r
5003         vuint32_t R;\r
5004         struct {\r
5005             vuint32_t EADDR:32;\r
5006         } B;\r
5007     } EAR2;\r
5008 \r
5009     union { /* Error Detail Slave Port2 (Base+0x0024) */\r
5010         vuint32_t R;\r
5011         struct {\r
5012             vuint32_t :8;\r
5013                         vuint32_t EACD:8;\r
5014             vuint32_t EPID:8;\r
5015             vuint32_t EMN:4;\r
5016             vuint32_t EATTR:3;\r
5017             vuint32_t ERW:1;\r
5018         } B;\r
5019     } EDR2;\r
5020 \r
5021     vuint8_t MPU_reserved1[984]; /* Reserved 984 Bytes (Base+0x0028-0x03FF) */\r
5022 \r
5023     struct { /* Region Descriptor 0..15 (Base+0x0400-0x0470) */\r
5024 \r
5025         union { /* - Word 0 */\r
5026             vuint32_t R;\r
5027             struct {\r
5028                 vuint32_t SRTADDR:27;\r
5029                 vuint32_t :5;\r
5030             } B;\r
5031         } WORD0;\r
5032 \r
5033         union { /* - Word 1 */\r
5034             vuint32_t R;\r
5035             struct {\r
5036                 vuint32_t ENDADDR:27;\r
5037                 vuint32_t :5;\r
5038             } B;\r
5039         } WORD1;\r
5040 \r
5041        union { /* - Word 2 */\r
5042             vuint32_t R;\r
5043             struct {\r
5044                 vuint32_t M7RE:1;\r
5045                 vuint32_t M7WE:1;\r
5046                 vuint32_t M6RE:1;\r
5047                 vuint32_t M6WE:1;\r
5048                 vuint32_t M5RE:1;\r
5049                 vuint32_t M5WE:1;\r
5050                 vuint32_t M4RE:1;\r
5051                 vuint32_t M4WE:1;\r
5052                 vuint32_t M3PE:1;\r
5053                 vuint32_t M3SM:2;\r
5054                 vuint32_t M3UM:3;\r
5055                 vuint32_t M2PE:1;\r
5056                 vuint32_t M2SM:2;\r
5057                 vuint32_t M2UM:2;\r
5058                                 vuint32_t :7;     \r
5059                 vuint32_t M0PE:1;\r
5060                 vuint32_t M0SM:2;\r
5061                 vuint32_t M0UM:3;\r
5062             } B;\r
5063         } WORD2;\r
5064 \r
5065         union { /* - Word 3 */\r
5066             vuint32_t R;\r
5067             struct {\r
5068                 vuint32_t PID:8;\r
5069                 vuint32_t PIDMASK:8;\r
5070                 vuint32_t :15;\r
5071                 vuint32_t VLD:1;\r
5072             } B;\r
5073         } WORD3;\r
5074 \r
5075     }RGD[8]; /* End of Region Descriptor Structure) */\r
5076 \r
5077     vuint8_t MPU_reserved2[896]; /* Reserved 896 Bytes (Base+0x0480-0x07FF) */\r
5078 \r
5079     union { /* Region Descriptor Alt 0..15 (0x0800-0x081C) */\r
5080         vuint32_t R;\r
5081         struct {\r
5082                         vuint32_t M7RE:1;\r
5083                         vuint32_t M7WE:1;\r
5084                         vuint32_t M6RE:1;\r
5085                         vuint32_t M6WE:1;\r
5086                         vuint32_t M5RE:1;\r
5087                         vuint32_t M5WE:1;\r
5088                         vuint32_t M4RE:1;\r
5089                         vuint32_t M4WE:1;\r
5090                         vuint32_t M3PE:1;\r
5091                         vuint32_t M3SM:2;\r
5092                         vuint32_t M3UM:3;\r
5093                         vuint32_t M2PE:1;\r
5094                         vuint32_t M2SM:2;\r
5095                         vuint32_t M2UM:2;\r
5096                         vuint32_t :7;     \r
5097                         vuint32_t M0PE:1;\r
5098                         vuint32_t M0SM:2;\r
5099                         vuint32_t M0UM:3;\r
5100         } B;\r
5101     } RGDAAC[8];\r
5102 \r
5103     vuint8_t MPU_reserved3[14304]; /* Reserved 14304 Bytes (+0x0820-0x03FFF) */\r
5104 \r
5105 }; /* end of MPU_tag */\r
5106 /****************************************************************************/\r
5107 /*                          MODULE : eDMA (base address - 0xFFF4_4000)      */\r
5108 /****************************************************************************/\r
5109 \r
5110     /*for "standard" format TCD (when EDMA.TCD[x].CITERE_LINK==BITERE_LINK=0) */\r
5111     struct EDMA_TCD_STD_tag {\r
5112 \r
5113         vuint32_t SADDR; /* source address */\r
5114 \r
5115         vuint16_t SMOD:5; /* source address modulo */\r
5116         vuint16_t SSIZE:3; /* source transfer size */\r
5117         vuint16_t DMOD:5; /* destination address modulo */\r
5118         vuint16_t DSIZE:3; /* destination transfer size */\r
5119         vint16_t SOFF; /* signed source address offset */\r
5120 \r
5121         vuint32_t NBYTES; /* inner (?minor?) byte count */\r
5122 \r
5123         vint32_t SLAST; /* last destination address adjustment, or scatter/gather address (if e_sg = 1) */\r
5124         vuint32_t DADDR; /* destination address */\r
5125 \r
5126         vuint16_t CITERE_LINK:1;\r
5127         vuint16_t CITER:15;\r
5128 \r
5129         vint16_t DOFF; /* signed destination address offset */\r
5130 \r
5131         vint32_t DLAST_SGA;\r
5132 \r
5133         vuint16_t BITERE_LINK:1; /* beginning ("major") iteration count */\r
5134         vuint16_t BITER:15;\r
5135 \r
5136         vuint16_t BWC:2; /* bandwidth control */\r
5137         vuint16_t MAJORLINKCH:6; /* enable channel-to-channel link */\r
5138         vuint16_t DONE:1; /* channel done */\r
5139         vuint16_t ACTIVE:1; /* channel active */\r
5140         vuint16_t MAJORE_LINK:1; /* enable channel-to-channel link */\r
5141         vuint16_t E_SG:1; /* enable scatter/gather descriptor */\r
5142         vuint16_t D_REQ:1; /* disable ipd_req when done */\r
5143         vuint16_t INT_HALF:1; /* interrupt on citer = (biter >> 1) */\r
5144         vuint16_t INT_MAJ:1; /* interrupt on major loop completion */\r
5145         vuint16_t START:1; /* explicit channel start */\r
5146 \r
5147     }; /* end of EDMA_TCD_STD_tag */\r
5148 \r
5149     /*for "channel link" format TCD (when EDMA.TCD[x].CITERE_LINK==BITERE_LINK=1)*/\r
5150     struct EDMA_TCD_CHLINK_tag {\r
5151 \r
5152         vuint32_t SADDR; /* source address */\r
5153 \r
5154         vuint16_t SMOD:5; /* source address modulo */\r
5155         vuint16_t SSIZE:3; /* source transfer size */\r
5156         vuint16_t DMOD:5; /* destination address modulo */\r
5157         vuint16_t DSIZE:3; /* destination transfer size */\r
5158         vint16_t SOFF; /* signed source address offset */\r
5159 \r
5160         vuint32_t NBYTES; /* inner (?minor?) byte count */\r
5161 \r
5162         vint32_t SLAST; /* last destination address adjustment, or\r
5163 \r
5164                                    scatter/gather address (if e_sg = 1) */\r
5165         vuint32_t DADDR; /* destination address */\r
5166 \r
5167         vuint16_t CITERE_LINK:1;\r
5168         vuint16_t CITERLINKCH:6;\r
5169         vuint16_t CITER:9;\r
5170 \r
5171         vint16_t DOFF; /* signed destination address offset */\r
5172 \r
5173         vint32_t DLAST_SGA;\r
5174 \r
5175         vuint16_t BITERE_LINK:1; /* beginning (?major?) iteration count */\r
5176         vuint16_t BITERLINKCH:6;\r
5177         vuint16_t BITER:9;\r
5178 \r
5179         vuint16_t BWC:2; /* bandwidth control */\r
5180         vuint16_t MAJORLINKCH:6; /* enable channel-to-channel link */\r
5181         vuint16_t DONE:1; /* channel done */\r
5182         vuint16_t ACTIVE:1; /* channel active */\r
5183         vuint16_t MAJORE_LINK:1; /* enable channel-to-channel link */\r
5184         vuint16_t E_SG:1; /* enable scatter/gather descriptor */\r
5185         vuint16_t D_REQ:1; /* disable ipd_req when done */\r
5186         vuint16_t INT_HALF:1; /* interrupt on citer = (biter >> 1) */\r
5187         vuint16_t INT_MAJ:1; /* interrupt on major loop completion */\r
5188         vuint16_t START:1; /* explicit channel start */\r
5189 \r
5190     }; /* end of EDMA_TCD_CHLINK_tag */\r
5191 \r
5192 \r
5193 \r
5194 struct EDMA_tag {\r
5195 \r
5196     union { /* Control (Base+0x0000) */\r
5197         vuint32_t R;\r
5198         struct {\r
5199             vuint32_t :14;\r
5200             vuint32_t CX:1;\r
5201             vuint32_t ECX:1;\r
5202             vuint32_t :6; \r
5203             vuint32_t GRP0PRI:2;\r
5204             vuint32_t EMLM:1;\r
5205             vuint32_t CLM:1;\r
5206             vuint32_t HALT:1;\r
5207             vuint32_t HOE:1;\r
5208             vuint32_t ERGA:1;\r
5209             vuint32_t ERCA:1;\r
5210             vuint32_t EDBG:1;\r
5211             vuint32_t EBW:1;\r
5212         } B;\r
5213     } CR;\r
5214 \r
5215     union { /* Error Status (Base+0x0004) */\r
5216         vuint32_t R;\r
5217         struct {\r
5218             vuint32_t VLD:1;\r
5219             vuint32_t :16;\r
5220             vuint32_t CPE:1;\r
5221             vuint32_t ERRCHN:6;\r
5222             vuint32_t SAE:1;\r
5223             vuint32_t SOE:1;\r
5224             vuint32_t DAE:1;\r
5225             vuint32_t DOE:1;\r
5226             vuint32_t NCE:1;\r
5227             vuint32_t SGE:1;\r
5228             vuint32_t SBE:1;\r
5229             vuint32_t DBE:1;\r
5230         } B;\r
5231     } ESR;\r
5232 \r
5233     vuint8_t eDMA_reserved0[4]; /* Reserved 4 bytes (Base+0x0008-0x000B)*/\r
5234 \r
5235     union { /* Enable Request Low Ch15..0 (Base+0x000C) */\r
5236         vuint32_t R;\r
5237         struct {\r
5238             vuint32_t :16;\r
5239                         vuint32_t ERQ15:1;\r
5240             vuint32_t ERQ14:1;\r
5241             vuint32_t ERQ13:1;\r
5242             vuint32_t ERQ12:1;\r
5243             vuint32_t ERQ11:1;\r
5244             vuint32_t ERQ10:1;\r
5245             vuint32_t ERQ09:1;\r
5246             vuint32_t ERQ08:1;\r
5247             vuint32_t ERQ07:1;\r
5248             vuint32_t ERQ06:1;\r
5249             vuint32_t ERQ05:1;\r
5250             vuint32_t ERQ04:1;\r
5251             vuint32_t ERQ03:1;\r
5252             vuint32_t ERQ02:1;\r
5253             vuint32_t ERQ01:1;\r
5254             vuint32_t ERQ00:1;\r
5255         } B;\r
5256     } ERQRL;\r
5257 \r
5258     vuint8_t eDMA_reserved1[4]; /* Reserved 4 bytes (Base+0x0010-0x0013)*/\r
5259 \r
5260     union { /* Enable Error Interrupt Low (Base+0x0014) */\r
5261         vuint32_t R;\r
5262         struct {\r
5263             vuint32_t :16;\r
5264                         vuint32_t EEI15:1;\r
5265             vuint32_t EEI14:1;\r
5266             vuint32_t EEI13:1;\r
5267             vuint32_t EEI12:1;\r
5268             vuint32_t EEI11:1;\r
5269             vuint32_t EEI10:1;\r
5270             vuint32_t EEI09:1;\r
5271             vuint32_t EEI08:1;\r
5272             vuint32_t EEI07:1;\r
5273             vuint32_t EEI06:1;\r
5274             vuint32_t EEI05:1;\r
5275             vuint32_t EEI04:1;\r
5276             vuint32_t EEI03:1;\r
5277             vuint32_t EEI02:1;\r
5278             vuint32_t EEI01:1;\r
5279             vuint32_t EEI00:1;\r
5280         } B;\r
5281     } EEIRL;\r
5282 \r
5283     union { /* DMA Set Enable Request (Base+0x0018) */\r
5284         vuint8_t R;\r
5285         struct {\r
5286             vuint8_t :1;\r
5287             vuint8_t SERQ:7;\r
5288         } B;\r
5289     } SERQR;\r
5290 \r
5291     union { /* DMA Clear Enable Request (Base+0x0019) */\r
5292         vuint8_t R;\r
5293         struct {\r
5294             vuint8_t :1;\r
5295             vuint8_t CERQ:7;\r
5296         } B;\r
5297     } CERQR;\r
5298 \r
5299     union { /* DMA Set Enable Error Interrupt (Base+0x001A) */\r
5300         vuint8_t R;\r
5301         struct {\r
5302             vuint8_t :1;\r
5303             vuint8_t SEEI:7;\r
5304         } B;\r
5305     } SEEIR;\r
5306 \r
5307     union { /* DMA Clr Enable Error Interrupt (Base+0x001B) */\r
5308         vuint8_t R;\r
5309         struct {\r
5310             vuint8_t:1;\r
5311             vuint8_t CEEI:7;\r
5312         } B;\r
5313     } CEEIR;\r
5314 \r
5315     union { /* DMA Clear Interrupt Request (Base+0x001C) */\r
5316         vuint8_t R;\r
5317         struct {\r
5318             vuint8_t :1;\r
5319             vuint8_t CINT:7;\r
5320         } B;\r
5321     } CIRQR;\r
5322 \r
5323     union { /* DMA Clear error (Base+0x001D) */\r
5324         vuint8_t R;\r
5325         struct {\r
5326             vuint8_t :1;\r
5327             vuint8_t CERR:7;\r
5328         } B;\r
5329     } CER;\r
5330 \r
5331     union { /* DMA Set Start Bit (Base+0x001E) */\r
5332         vuint8_t R;\r
5333         struct {\r
5334             vuint8_t NOP:1;\r
5335             vuint8_t SSB:7;\r
5336         } B;\r
5337     } SSBR;\r
5338 \r
5339     union { /* DMA Clear Done Status Bit (Base+0x001F) */\r
5340         vuint8_t R;\r
5341         struct {\r
5342             vuint8_t :1;\r
5343             vuint8_t CDSB:7;\r
5344         } B;\r
5345     } CDSBR;\r
5346 \r
5347     vuint8_t eDMA_reserved2[4]; /* Reserved 4 bytes (Base+0x0020-0x0023)*/\r
5348 \r
5349     union { /* DMA Interrupt Req Low Ch15..0 (+0x0024) */\r
5350         vuint32_t R;\r
5351         struct {\r
5352             vuint32_t :16;\r
5353                         vuint32_t INT15:1;\r
5354             vuint32_t INT14:1;\r
5355             vuint32_t INT13:1;\r
5356             vuint32_t INT12:1;\r
5357             vuint32_t INT11:1;\r
5358             vuint32_t INT10:1;\r
5359             vuint32_t INT09:1;\r
5360             vuint32_t INT08:1;\r
5361             vuint32_t INT07:1;\r
5362             vuint32_t INT06:1;\r
5363             vuint32_t INT05:1;\r
5364             vuint32_t INT04:1;\r
5365             vuint32_t INT03:1;\r
5366             vuint32_t INT02:1;\r
5367             vuint32_t INT01:1;\r
5368             vuint32_t INT00:1;\r
5369         } B;\r
5370     } IRQRL;\r
5371 \r
5372     vuint8_t eDMA_reserved3[4]; /* Reserved 4 bytes (Base+0x0028-0x002B)*/\r
5373 \r
5374     union { /* DMA Error Low Ch15..0 (Base+0x002C)*/\r
5375         vuint32_t R;\r
5376         struct {\r
5377             vuint32_t :16;\r
5378                         vuint32_t ERR15:1;\r
5379             vuint32_t ERR14:1;\r
5380             vuint32_t ERR13:1;\r
5381             vuint32_t ERR12:1;\r
5382             vuint32_t ERR11:1;\r
5383             vuint32_t ERR10:1;\r
5384             vuint32_t ERR09:1;\r
5385             vuint32_t ERR08:1;\r
5386             vuint32_t ERR07:1;\r
5387             vuint32_t ERR06:1;\r
5388             vuint32_t ERR05:1;\r
5389             vuint32_t ERR04:1;\r
5390             vuint32_t ERR03:1;\r
5391             vuint32_t ERR02:1;\r
5392             vuint32_t ERR01:1;\r
5393             vuint32_t ERR00:1;\r
5394         } B;\r
5395     } ERL;\r
5396 \r
5397     vuint8_t eDMA_reserved4[4]; /* Reserved 4 bytes (Base+0x0030-0x0033)*/\r
5398 \r
5399     union { /* DMA Hardware Request Stat Low (Base+0x0034) */\r
5400         vuint32_t R;\r
5401         struct {\r
5402             vuint32_t :16;\r
5403                         vuint32_t HRS15:1;\r
5404             vuint32_t HRS14:1;\r
5405             vuint32_t HRS13:1;\r
5406             vuint32_t HRS12:1;\r
5407             vuint32_t HRS11:1;\r
5408             vuint32_t HRS10:1;\r
5409             vuint32_t HRS09:1;\r
5410             vuint32_t HRS08:1;\r
5411             vuint32_t HRS07:1;\r
5412             vuint32_t HRS06:1;\r
5413             vuint32_t HRS05:1;\r
5414             vuint32_t HRS04:1;\r
5415             vuint32_t HRS03:1;\r
5416             vuint32_t HRS02:1;\r
5417             vuint32_t HRS01:1;\r
5418             vuint32_t HRS00:1;\r
5419         } B;\r
5420     } HRSL;\r
5421 \r
5422     vuint8_t eDMA_reserved5[200]; /* Reserved 200 bytes (Base+0x0038-0x00FF)*/\r
5423 \r
5424     union { /* Channel n Priority (Base+0x0100-0x010F)*/\r
5425         vuint8_t R;\r
5426         struct {\r
5427             vuint8_t ECP:1;\r
5428             vuint8_t DPA:1;\r
5429             vuint8_t GRPPRI:2;\r
5430             vuint8_t CHPRI:4;\r
5431         } B;\r
5432     } CPR[16];\r
5433 \r
5434         vuint8_t eDMA_reserved6[3824]; /* Reserved 3808 bytes (+0x0110-0x0FFF) */\r
5435 \r
5436     /* Transfer Control Descriptors 0..16 (Base+0x1000-0x11E0) */\r
5437     struct EDMA_TCD_STD_tag TCD[16];\r
5438     \r
5439     /* or change to following if using channel linking */\r
5440     /* Struct EDMA_TCD_CHLINK_tag TCD[16]; */\r
5441         \r
5442         vuint8_t eDMA_reserved7[28160]; /* Reserved 28160 bytes (+0x1200-0x7FFF) */\r
5443 \r
5444 }; /* end of EDMA_tag */\r
5445 /*************************************************************************/\r
5446 /*             MODULE : INTC (base address - 0xFFF4_8000)                        */\r
5447 /*************************************************************************/\r
5448 struct INTC_tag {\r
5449 \r
5450     union { /* INTC Module Configuration (Base+0x0000) */\r
5451         vuint32_t R;\r
5452         struct {\r
5453                         vuint32_t:26;\r
5454                         vuint32_t VTES:1;\r
5455                         vuint32_t:4;\r
5456                         vuint32_t HVEN:1;\r
5457         } B;\r
5458     } MCR;\r
5459 \r
5460     vuint8_t INTC_reserved0[4]; /* reserved 4 bytes (Base+0x0004-0x0007) */\r
5461 \r
5462     union { /* INTC Current Priority (Base+0x0008) */\r
5463         vuint32_t R;\r
5464         struct {\r
5465             vuint32_t:28;\r
5466             vuint32_t PRI:4;\r
5467         } B;\r
5468     } CPR;\r
5469         \r
5470         vuint8_t INTC_reserved1[4]; /* reserved 4 bytes (Base+0x000C-0x000F) */\r
5471 \r
5472     union { /* INTC Interrupt Acknowledge (Base+0x0010) */\r
5473         vuint32_t R;\r
5474         struct {\r
5475             vuint32_t VTBA_PRC0:21;\r
5476             vuint32_t INTVEC_PRC0:9;\r
5477             vuint32_t:2;\r
5478         } B;\r
5479     } IACKR;\r
5480 \r
5481         vuint8_t INTC_reserved2[4]; /* Reserved 4 bytes (Base+0x0014-0x0017) */\r
5482         \r
5483     union { /* INTC End Of Interrupt (Base+0x0018) */\r
5484         vuint32_t R;\r
5485         struct {\r
5486             vuint32_t:32;\r
5487         } B;\r
5488     } EOIR;\r
5489 \r
5490         vuint8_t INTC_reserved3[4]; /* reserved 4 bytes (Base+0x001C-0x0019) */\r
5491         \r
5492     union { /* INTC Software Set/Clear Interrupt0-7 (+0x0020-0x0027) */\r
5493         vuint8_t R;\r
5494         struct {\r
5495             vuint8_t:6;\r
5496             vuint8_t SET:1;\r
5497             vuint8_t CLR:1;\r
5498         } B;\r
5499     } SSCIR[8];\r
5500 \r
5501     vuint8_t INTC_reserved4[24]; /* Reserved 24 bytes (Base+0x0028-0x003F) */\r
5502 \r
5503     union { /* INTC Priority Select (Base+0x0040-0x0128) */\r
5504             vuint8_t R;\r
5505             struct {\r
5506                 vuint8_t:4;\r
5507                 vuint8_t PRI:4;\r
5508             } B;\r
5509         } PSR[234]; \r
5510 \r
5511 }; /* end of INTC_tag */\r
5512 /****************************************************************************/\r
5513 /*                          MODULE : DSPI                                                               */\r
5514 /* Base Addresses:                                                                                                                      */\r
5515 /* DSPI_0 - 0xFFF9_0000                                                                         */\r
5516 /* DSPI_1 - 0xFFF9_4000                                                                         */\r
5517 /* DSPI_2 - 0xFFF9_8000                                                                         */\r
5518 /* DSPI_3 - 0xFFF9_C000                                                                         */\r
5519 /* DSPI_4 - 0xFFFA_0000                                                                         */\r
5520 /* DSPI_5 - 0xFFFA_4000                                                                         */\r
5521 /****************************************************************************/\r
5522 struct DSPI_tag{\r
5523 \r
5524     union { /* DSPI Module Configuraiton (Base+0x0000) */\r
5525         vuint32_t R;\r
5526         struct {\r
5527             vuint32_t MSTR:1;\r
5528             vuint32_t CONT_SCKE:1;\r
5529             vuint32_t DCONF:2;\r
5530             vuint32_t FRZ:1;\r
5531             vuint32_t MTFE:1;\r
5532             vuint32_t PCSSE:1;\r
5533             vuint32_t ROOE:1;\r
5534             vuint32_t :2; \r
5535             vuint32_t PCSIS5:1;\r
5536             vuint32_t PCSIS4:1;\r
5537             vuint32_t PCSIS3:1;\r
5538             vuint32_t PCSIS2:1;\r
5539             vuint32_t PCSIS1:1;\r
5540             vuint32_t PCSIS0:1;\r
5541             vuint32_t DOZE:1; \r
5542             vuint32_t MDIS:1;\r
5543             vuint32_t DIS_TXF:1;\r
5544             vuint32_t DIS_RXF:1;\r
5545             vuint32_t CLR_TXF:1;\r
5546             vuint32_t CLR_RXF:1;\r
5547             vuint32_t SMPL_PT:2;\r
5548             vuint32_t :7;\r
5549             vuint32_t HALT:1;\r
5550         } B;\r
5551     } MCR;\r
5552 \r
5553         vuint8_t DSPI_reserved0[4]; /* Reserved 4 bytes (Base+0x0004-0x0007) */\r
5554 \r
5555     union { /* DSPI Transfer Count (Base+0x0008) */\r
5556         vuint32_t R;\r
5557         struct {\r
5558             vuint32_t TCNT:16;\r
5559             vuint32_t :16;\r
5560         } B;\r
5561     } TCR;\r
5562 \r
5563     union { /* DSPI Clock & Tranfer Attrib 0-5 (+0x000C-0x0020) */\r
5564         vuint32_t R;\r
5565         struct {\r
5566             vuint32_t DBR:1;\r
5567             vuint32_t FMSZ:4;\r
5568             vuint32_t CPOL:1;\r
5569             vuint32_t CPHA:1;\r
5570             vuint32_t LSBFE:1;\r
5571             vuint32_t PCSSCK:2;\r
5572             vuint32_t PASC:2;\r
5573             vuint32_t PDT:2;\r
5574             vuint32_t PBR:2;\r
5575             vuint32_t CSSCK:4;\r
5576             vuint32_t ASC:4;\r
5577             vuint32_t DT:4;\r
5578             vuint32_t BR:4;\r
5579         } B;\r
5580     } CTAR[6];\r
5581 \r
5582     vuint8_t DSPI_reserved1[8]; /* Reserved 4 bytes (Base+0x0024-0x002B) */\r
5583 \r
5584     union { /* DSPI Status (Base+0x002C) */\r
5585         vuint32_t R;\r
5586         struct {\r
5587             vuint32_t TCF:1;\r
5588             vuint32_t TXRXS:1;\r
5589             vuint32_t :1;\r
5590             vuint32_t EOQF:1;\r
5591             vuint32_t TFUF:1;\r
5592             vuint32_t :1;\r
5593             vuint32_t TFFF:1;\r
5594             vuint32_t :5;\r
5595             vuint32_t RFOF:1;\r
5596             vuint32_t :1;\r
5597             vuint32_t RFDF:1;\r
5598             vuint32_t :1;\r
5599             vuint32_t TXCTR:4;\r
5600             vuint32_t TXNXTPTR:4;\r
5601             vuint32_t RXCTR:4;\r
5602             vuint32_t POPNXTPTR:4;\r
5603         } B;\r
5604     } SR;\r
5605 \r
5606     union { /* DSPI DMA/Int Request Select & Enable (+0x0030) */\r
5607         vuint32_t R;\r
5608         struct {\r
5609             vuint32_t TCFRE:1;\r
5610             vuint32_t :2;\r
5611             vuint32_t EOQFRE:1;\r
5612             vuint32_t TFUFRE:1;\r
5613             vuint32_t :1;\r
5614             vuint32_t TFFFRE:1;\r
5615             vuint32_t TFFFDIRS:1;\r
5616             vuint32_t :4;\r
5617             vuint32_t RFOFRE:1;\r
5618             vuint32_t :1;\r
5619             vuint32_t RFDFRE:1;\r
5620             vuint32_t RFDFDIRS:1;\r
5621             vuint32_t :16;\r
5622         } B;\r
5623     } RSER;\r
5624 \r
5625     union { /* DSPI Push TX FIFO (Base+0x0034) */\r
5626         vuint32_t R;\r
5627         struct {\r
5628             vuint32_t CONT:1;\r
5629             vuint32_t CTAS:3;\r
5630             vuint32_t EOQ:1;\r
5631             vuint32_t CTCNT:1;\r
5632             vuint32_t :4; \r
5633             vuint32_t PCS5:1;\r
5634             vuint32_t PCS4:1;\r
5635             vuint32_t PCS3:1;\r
5636             vuint32_t PCS2:1;\r
5637             vuint32_t PCS1:1;\r
5638             vuint32_t PCS0:1;\r
5639             vuint32_t TXDATA:16;\r
5640         } B;\r
5641     } PUSHR;\r
5642 \r
5643     union { /* DSPI Pop RX FIFO (Base+0x0038)             */\r
5644         vuint32_t R;\r
5645         struct {\r
5646             vuint32_t :16; \r
5647                         vuint32_t RXDATA:16; \r
5648         } B;\r
5649     } POPR;\r
5650 \r
5651     union { /* DSPI Transmit FIFO 0-3 (Base+0x003C-0x0048)*/\r
5652         vuint32_t R;\r
5653         struct { \r
5654             vuint32_t TXCMD:16; \r
5655             vuint32_t TXDATA:16;\r
5656         } B;\r
5657     } TXFR[4];\r
5658 \r
5659     vuint8_t DSPI_reserved2[48]; /* Reserved 48 bytes (Base+0x004C-0x007B) */\r
5660 \r
5661     union { /* DSPI Receive FIFO 0-3 (Base+0x007C-0x0088) */\r
5662         vuint32_t R;\r
5663         struct {\r
5664             vuint32_t :16; \r
5665                         vuint32_t RXDATA:16; \r
5666         } B;\r
5667     } RXFR[4];\r
5668  };                          /* end of DSPI_tag */\r
5669  /****************************************************************************/\r
5670 /*                          MODULE : FlexCAN                                */\r
5671 /* Base Addresses:                                                                                                                      */\r
5672 /* FlexCAN_0 - 0xFFFC_0000                                                                                                      */\r
5673 /* FlexCAN_1 - 0xFFFC_4000                                                                                                      */\r
5674 /* FlexCAN_2 - 0xFFFC_8000                                                                                                      */\r
5675 /* FlexCAN_3 - 0xFFFC_C000                                                                                                      */\r
5676 /* FlexCAN_4 - 0xFFFD_0000                                                                                                      */\r
5677 /* FlexCAN_5 - 0xFFFD_4000                                                                                                      */\r
5678 /****************************************************************************/\r
5679 struct FLEXCAN_BUF_t{\r
5680 \r
5681     union { /* FLEXCAN MBx Control & Status (Offset+0x0080) */\r
5682         vuint32_t R;\r
5683         struct {\r
5684             vuint32_t :4;\r
5685             vuint32_t CODE:4;\r
5686             vuint32_t :1;\r
5687             vuint32_t SRR:1;\r
5688             vuint32_t IDE:1;\r
5689             vuint32_t RTR:1;\r
5690             vuint32_t LENGTH:4;\r
5691             vuint32_t TIMESTAMP:16;\r
5692         } B;\r
5693     } CS;\r
5694 \r
5695     union { /* FLEXCAN MBx Identifier (Offset+0x0084) */\r
5696         vuint32_t R;\r
5697         struct {\r
5698             vuint32_t PRIO:3;\r
5699             vuint32_t STD_ID:11;\r
5700             vuint32_t EXT_ID:18;\r
5701         } B;\r
5702     } ID;\r
5703 \r
5704     union { /* FLEXCAN MBx Data 0..7 (Offset+0x0088) */\r
5705         vuint8_t B[8]; /* Data buffer in Bytes (8 bits) */\r
5706         vuint16_t H[4]; /* Data buffer in Half-words (16 bits) */\r
5707         vuint32_t W[2]; /* Data buffer in words (32 bits) */\r
5708         vuint32_t R[2]; /* Data buffer in words (32 bits) */\r
5709     } DATA;\r
5710 \r
5711 }; /* end of FLEXCAN_BUF_t */\r
5712 \r
5713 \r
5714 struct FLEXCAN_RXFIFO_t{ /* RxFIFO Configuration */\r
5715 \r
5716     union { /* RxFIFO Control & Status (Offset+0x0080) */\r
5717         vuint32_t R;\r
5718         struct {\r
5719             vuint32_t :9;\r
5720             vuint32_t SRR:1;\r
5721             vuint32_t IDE:1;\r
5722             vuint32_t RTR:1;\r
5723             vuint32_t LENGTH:4;\r
5724             vuint32_t TIMESTAMP:16;\r
5725         } B;\r
5726     } CS;\r
5727 \r
5728     union { /* RxFIFO Identifier (Offset+0x0084) */\r
5729         vuint32_t R;\r
5730         struct {\r
5731             vuint32_t :3;\r
5732             vuint32_t STD_ID:11;\r
5733             vuint32_t EXT_ID:18;\r
5734         } B;\r
5735     } ID;\r
5736 \r
5737     union { /* RxFIFO Data 0..7 (Offset+0x0088) */\r
5738         vuint8_t B[8]; /* Data buffer in Bytes (8 bits) */\r
5739         vuint16_t H[4]; /* Data buffer in Half-words (16 bits) */\r
5740         vuint32_t W[2]; /* Data buffer in words (32 bits) */\r
5741         vuint32_t R[2]; /* Data buffer in words (32 bits) */\r
5742     } DATA;\r
5743 \r
5744     vuint8_t FLEXCAN_RX_reserved0[80]; /* Reserved 80 bytes (+0x0090-0x00DF)*/\r
5745 \r
5746     union { /* RxFIFO ID Table 0..7 (+0x00E0-0x00FC) */\r
5747         vuint32_t R;\r
5748     } IDTABLE[8];\r
5749 \r
5750 }; /* end of FLEXCAN_RXFIFO_t */\r
5751 \r
5752 \r
5753 struct FLEXCAN_tag{\r
5754 \r
5755     union { /* FLEXCAN Module Configuration (Base+0x0000) */\r
5756         vuint32_t R;\r
5757         struct {\r
5758                         vuint32_t MDIS:1;\r
5759                         vuint32_t FRZ:1;\r
5760                         vuint32_t FEN:1;\r
5761                         vuint32_t HALT:1;\r
5762                         vuint32_t NOTRDY:1;\r
5763                         vuint32_t WAKMSK:1;\r
5764                         vuint32_t SOFTRST:1;\r
5765                         vuint32_t FRZACK:1;\r
5766                         vuint32_t SUPV:1;\r
5767                         vuint32_t SLFWAK:1;  /*not present in RM*/\r
5768                         vuint32_t WRNEN:1;\r
5769                         vuint32_t LPMACK:1;\r
5770                         vuint32_t WAKSRC:1;\r
5771                         vuint32_t DOZE:1;       /*not present in RM*/\r
5772                         vuint32_t SRXDIS:1;\r
5773                         vuint32_t BCC:1;\r
5774                         vuint32_t:2;\r
5775                         vuint32_t LPRIO_EN:1;\r
5776                         vuint32_t AEN:1;\r
5777                         vuint32_t:2;\r
5778                         vuint32_t IDAM:2;\r
5779                         vuint32_t:2;\r
5780                         vuint32_t MAXMB:6;\r
5781         } B;\r
5782     } MCR;\r
5783 \r
5784     union { /* FLEXCAN Control (Base+0x0004) */\r
5785         vuint32_t R;\r
5786         struct {\r
5787             vuint32_t PRESDIV:8;\r
5788             vuint32_t RJW:2;\r
5789             vuint32_t PSEG1:3;\r
5790             vuint32_t PSEG2:3;\r
5791             vuint32_t BOFFMSK:1;\r
5792             vuint32_t ERRMSK:1;\r
5793             vuint32_t CLKSRC:1;\r
5794             vuint32_t LPB:1;\r
5795             vuint32_t TWRNMSK:1;\r
5796             vuint32_t RWRNMSK:1;\r
5797             vuint32_t :2;\r
5798             vuint32_t SMP:1;\r
5799             vuint32_t BOFFREC:1;\r
5800             vuint32_t TSYN:1;\r
5801             vuint32_t LBUF:1;\r
5802             vuint32_t LOM:1;\r
5803             vuint32_t PROPSEG:3;\r
5804         } B;\r
5805     } CR;\r
5806 \r
5807     union { /* FLEXCAN Free Running Timer (Base+0x0008) */\r
5808         vuint32_t R;\r
5809         struct {\r
5810             vuint32_t :16;\r
5811             vuint32_t TIMER:16;\r
5812         } B;\r
5813      } TIMER;\r
5814 \r
5815     vuint8_t FLEXCAN_reserved0[4]; /* reserved 4 bytes (Base+0x000C-0x000F) */\r
5816 \r
5817     union { /* FLEXCAN RX Global Mask (Base+0x0010) */\r
5818         vuint32_t R;\r
5819         struct {\r
5820             vuint32_t MI:32;\r
5821         } B;\r
5822      } RXGMASK;\r
5823 \r
5824     /*  --- Following 2 registers are included for legacy purposes only --- */\r
5825 \r
5826     union { /* FLEXCAN RX 14 Mask (Base+0x0014) */\r
5827         vuint32_t R;\r
5828         struct {\r
5829             vuint32_t MI:32;\r
5830         } B;\r
5831      } RX14MASK;\r
5832 \r
5833     union { /* FLEXCAN RX 15 Mask (Base+0x0018) */\r
5834         vuint32_t R;\r
5835         struct {\r
5836             vuint32_t MI:32;\r
5837         } B;\r
5838      } RX15MASK;\r
5839 \r
5840     /*  --- */\r
5841 \r
5842     union { /* FLEXCAN Error Counter (Base+0x001C) */\r
5843         vuint32_t R;\r
5844         struct {\r
5845             vuint32_t :16;\r
5846             vuint32_t RXECNT:8;\r
5847             vuint32_t TXECNT:8;\r
5848         } B;\r
5849     } ECR;\r
5850 \r
5851     union { /* FLEXCAN Error & Status (Base+0x0020) */\r
5852         vuint32_t R;\r
5853         struct {\r
5854             vuint32_t :14;\r
5855             vuint32_t TWRNINT:1;\r
5856             vuint32_t RWRNINT:1;\r
5857             vuint32_t BIT1ERR:1;\r
5858             vuint32_t BIT0ERR:1;\r
5859             vuint32_t ACKERR:1;\r
5860             vuint32_t CRCERR:1;\r
5861             vuint32_t FRMERR:1;\r
5862             vuint32_t STFERR:1;\r
5863             vuint32_t TXWRN:1;\r
5864             vuint32_t RXWRN:1;\r
5865             vuint32_t IDLE:1;\r
5866             vuint32_t TXRX:1;\r
5867             vuint32_t FLTCONF:2;\r
5868             vuint32_t :1;\r
5869             vuint32_t BOFFINT:1;\r
5870             vuint32_t ERRINT:1;\r
5871             vuint32_t :1;\r
5872         } B;\r
5873     } ESR;\r
5874 \r
5875     union { /* FLEXCAN Interruput Masks H (Base+0x0024) */\r
5876         vuint32_t R;\r
5877         struct {\r
5878             vuint32_t BUF63M:1;\r
5879             vuint32_t BUF62M:1;\r
5880             vuint32_t BUF61M:1;\r
5881             vuint32_t BUF60M:1;\r
5882             vuint32_t BUF59M:1;\r
5883             vuint32_t BUF58M:1;\r
5884             vuint32_t BUF57M:1;\r
5885             vuint32_t BUF56M:1;\r
5886             vuint32_t BUF55M:1;\r
5887             vuint32_t BUF54M:1;\r
5888             vuint32_t BUF53M:1;\r
5889             vuint32_t BUF52M:1;\r
5890             vuint32_t BUF51M:1;\r
5891             vuint32_t BUF50M:1;\r
5892             vuint32_t BUF49M:1;\r
5893             vuint32_t BUF48M:1;\r
5894             vuint32_t BUF47M:1;\r
5895             vuint32_t BUF46M:1;\r
5896             vuint32_t BUF45M:1;\r
5897             vuint32_t BUF44M:1;\r
5898             vuint32_t BUF43M:1;\r
5899             vuint32_t BUF42M:1;\r
5900             vuint32_t BUF41M:1;\r
5901             vuint32_t BUF40M:1;\r
5902             vuint32_t BUF39M:1;\r
5903             vuint32_t BUF38M:1;\r
5904             vuint32_t BUF37M:1;\r
5905             vuint32_t BUF36M:1;\r
5906             vuint32_t BUF35M:1;\r
5907             vuint32_t BUF34M:1;\r
5908             vuint32_t BUF33M:1;\r
5909             vuint32_t BUF32M:1;\r
5910         } B;\r
5911     } IMRH;\r
5912 \r
5913     union { /* FLEXCAN Interruput Masks L (Base+0x0028) */\r
5914         vuint32_t R;\r
5915         struct {\r
5916             vuint32_t BUF31M:1;\r
5917             vuint32_t BUF30M:1;\r
5918             vuint32_t BUF29M:1;\r
5919             vuint32_t BUF28M:1;\r
5920             vuint32_t BUF27M:1;\r
5921             vuint32_t BUF26M:1;\r
5922             vuint32_t BUF25M:1;\r
5923             vuint32_t BUF24M:1;\r
5924             vuint32_t BUF23M:1;\r
5925             vuint32_t BUF22M:1;\r
5926             vuint32_t BUF21M:1;\r
5927             vuint32_t BUF20M:1;\r
5928             vuint32_t BUF19M:1;\r
5929             vuint32_t BUF18M:1;\r
5930             vuint32_t BUF17M:1;\r
5931             vuint32_t BUF16M:1;\r
5932             vuint32_t BUF15M:1;\r
5933             vuint32_t BUF14M:1;\r
5934             vuint32_t BUF13M:1;\r
5935             vuint32_t BUF12M:1;\r
5936             vuint32_t BUF11M:1;\r
5937             vuint32_t BUF10M:1;\r
5938             vuint32_t BUF09M:1;\r
5939             vuint32_t BUF08M:1;\r
5940             vuint32_t BUF07M:1;\r
5941             vuint32_t BUF06M:1;\r
5942             vuint32_t BUF05M:1;\r
5943             vuint32_t BUF04M:1;\r
5944             vuint32_t BUF03M:1;\r
5945             vuint32_t BUF02M:1;\r
5946             vuint32_t BUF01M:1;\r
5947             vuint32_t BUF00M:1;\r
5948         } B;\r
5949     } IMRL;\r
5950 \r
5951     union { /* FLEXCAN Interruput Flag H (Base+0x002C) */\r
5952         vuint32_t R;\r
5953         struct {\r
5954             vuint32_t BUF63I:1;\r
5955             vuint32_t BUF62I:1;\r
5956             vuint32_t BUF61I:1;\r
5957             vuint32_t BUF60I:1;\r
5958             vuint32_t BUF59I:1;\r
5959             vuint32_t BUF58I:1;\r
5960             vuint32_t BUF57I:1;\r
5961             vuint32_t BUF56I:1;\r
5962             vuint32_t BUF55I:1;\r
5963             vuint32_t BUF54I:1;\r
5964             vuint32_t BUF53I:1;\r
5965             vuint32_t BUF52I:1;\r
5966             vuint32_t BUF51I:1;\r
5967             vuint32_t BUF50I:1;\r
5968             vuint32_t BUF49I:1;\r
5969             vuint32_t BUF48I:1;\r
5970             vuint32_t BUF47I:1;\r
5971             vuint32_t BUF46I:1;\r
5972             vuint32_t BUF45I:1;\r
5973             vuint32_t BUF44I:1;\r
5974             vuint32_t BUF43I:1;\r
5975             vuint32_t BUF42I:1;\r
5976             vuint32_t BUF41I:1;\r
5977             vuint32_t BUF40I:1;\r
5978             vuint32_t BUF39I:1;\r
5979             vuint32_t BUF38I:1;\r
5980             vuint32_t BUF37I:1;\r
5981             vuint32_t BUF36I:1;\r
5982             vuint32_t BUF35I:1;\r
5983             vuint32_t BUF34I:1;\r
5984             vuint32_t BUF33I:1;\r
5985             vuint32_t BUF32I:1;\r
5986         } B;\r
5987     } IFRH;\r
5988 \r
5989     union { /* FLEXCAN Interruput Flag l (Base+0x0030) */\r
5990         vuint32_t R;\r
5991         struct {\r
5992             vuint32_t BUF31I:1;\r
5993             vuint32_t BUF30I:1;\r
5994             vuint32_t BUF29I:1;\r
5995             vuint32_t BUF28I:1;\r
5996             vuint32_t BUF27I:1;\r
5997             vuint32_t BUF26I:1;\r
5998             vuint32_t BUF25I:1;\r
5999             vuint32_t BUF24I:1;\r
6000             vuint32_t BUF23I:1;\r
6001             vuint32_t BUF22I:1;\r
6002             vuint32_t BUF21I:1;\r
6003             vuint32_t BUF20I:1;\r
6004             vuint32_t BUF19I:1;\r
6005             vuint32_t BUF18I:1;\r
6006             vuint32_t BUF17I:1;\r
6007             vuint32_t BUF16I:1;\r
6008             vuint32_t BUF15I:1;\r
6009             vuint32_t BUF14I:1;\r
6010             vuint32_t BUF13I:1;\r
6011             vuint32_t BUF12I:1;\r
6012             vuint32_t BUF11I:1;\r
6013             vuint32_t BUF10I:1;\r
6014             vuint32_t BUF09I:1;\r
6015             vuint32_t BUF08I:1;\r
6016             vuint32_t BUF07I:1;\r
6017             vuint32_t BUF06I:1;\r
6018             vuint32_t BUF05I:1;\r
6019             vuint32_t BUF04I:1;\r
6020             vuint32_t BUF03I:1;\r
6021             vuint32_t BUF02I:1;\r
6022             vuint32_t BUF01I:1;\r
6023             vuint32_t BUF00I:1;\r
6024         } B;\r
6025     } IFRL; /* Interruput Flag Register */\r
6026 \r
6027     vuint8_t FLEXCAN_reserved1[76]; /*Reserved 76 bytes (Base+0x0034-0x007F)*/\r
6028 \r
6029 /****************************************************************************/\r
6030 /* Use either Standard Buffer Structure OR RX FIFO and Buffer Structure     */\r
6031 /****************************************************************************/\r
6032     /* Standard Buffer Structure */\r
6033     struct FLEXCAN_BUF_t BUF[64];\r
6034 \r
6035     /* RX FIFO and Buffer Structure */\r
6036     /*struct FLEXCAN_RXFIFO_t RXFIFO; */\r
6037     /*struct FLEXCAN_BUF_t BUF[56];   */\r
6038 /****************************************************************************/\r
6039 \r
6040     vuint8_t FLEXCAN_reserved2[1024]; /*Reserved 1024 (Base+0x0480-0x087F)*/\r
6041 \r
6042     union { /* FLEXCAN RX Individual Mask (Base+0x0880-0x097F) */\r
6043         vuint32_t R;\r
6044         struct {\r
6045           vuint32_t MI:32;\r
6046         } B;\r
6047     } RXIMR[64];\r
6048 \r
6049 }; /* end of FLEXCAN_tag */\r
6050 /****************************************************************************/\r
6051 /*            MODULE : DMAMUX (base address - 0xFFFD_C000)                  */\r
6052 /****************************************************************************/\r
6053     struct DMAMUX_tag {\r
6054     union { /* DMAMUX Channel Configuration (Base+0x0000-0x000F) */\r
6055         vuint8_t R;\r
6056         struct {\r
6057             vuint8_t ENBL:1;\r
6058             vuint8_t TRIG:1;\r
6059             vuint8_t SOURCE:6;\r
6060             } B;\r
6061         } CHCONFIG[16];         \r
6062 \r
6063     };                          /* end of DMAMUX_tag */\r
6064 /****************************************************************************/\r
6065 /*             MODULE : DFLASH (base address - 0x0080_0000)                 */\r
6066 /****************************************************************************/\r
6067     struct DFLASH_tag {\r
6068         union {     /* Module Configuration (Base+0x0000) */\r
6069             vuint32_t R;\r
6070             struct {\r
6071                 vuint32_t EDC:1;\r
6072                 vuint32_t:4;\r
6073                 vuint32_t SIZE:3;\r
6074                 vuint32_t:1;\r
6075                 vuint32_t LAS:3;\r
6076                 vuint32_t:3;\r
6077                 vuint32_t MAS:1;\r
6078                 vuint32_t EER:1;\r
6079                 vuint32_t RWE:1;\r
6080                 vuint32_t:2;\r
6081                 vuint32_t PEAS:1;\r
6082                 vuint32_t DONE:1;\r
6083                 vuint32_t PEG:1;\r
6084                 vuint32_t:4;\r
6085                 vuint32_t PGM:1;\r
6086                 vuint32_t PSUS:1;\r
6087                 vuint32_t ERS:1;\r
6088                 vuint32_t ESUS:1;\r
6089                 vuint32_t EHV:1;\r
6090             } B;\r
6091         } MCR;\r
6092 \r
6093         union {         /* Low/Mid address block locking (Base+0x0004) */\r
6094             vuint32_t R;\r
6095             struct {\r
6096                 vuint32_t LME:1;\r
6097                 vuint32_t:10;\r
6098                 vuint32_t TSLK:1;\r
6099                 vuint32_t:2;\r
6100                 vuint32_t MLK:2;\r
6101                 vuint32_t LLK:16;\r
6102             } B;\r
6103         } LML;\r
6104 \r
6105         union {    /* High address block locking (Base+0x0008) */\r
6106             vuint32_t R;\r
6107             struct {\r
6108                 vuint32_t HBE:1;\r
6109                 vuint32_t :25;\r
6110                 vuint32_t HBLOCK:6;\r
6111             } B;\r
6112         } HBL;\r
6113 \r
6114         union {   /* Secondary Low/mid block locking (Base+0x000C)*/\r
6115             vuint32_t R;\r
6116             struct {\r
6117                 vuint32_t SLE:1;\r
6118                 vuint32_t:10;\r
6119                 vuint32_t STSLK:1;\r
6120                 vuint32_t:2;\r
6121                 vuint32_t SMK:2;\r
6122                 vuint32_t SLK:16;\r
6123             } B;\r
6124         } SLL;\r
6125 \r
6126         union {   /* Low/Mid address space block sel (Base+0x0010)*/\r
6127             vuint32_t R;\r
6128             struct {\r
6129                 vuint32_t:14;\r
6130                 vuint32_t MSL:2;\r
6131                 vuint32_t LSL:16;\r
6132             } B;\r
6133         } LMS;\r
6134 \r
6135         union {   /* High address space block sel (Base+0x0014)*/\r
6136             vuint32_t R;\r
6137             struct {\r
6138                 vuint32_t:26;\r
6139                 vuint32_t HSL:6;\r
6140             } B;\r
6141         } HBS;\r
6142 \r
6143         union {    /* Address Register (Base+0x0018) */\r
6144             vuint32_t R;\r
6145             struct {\r
6146                 vuint32_t:9;\r
6147                 vuint32_t ADD:20;\r
6148                 vuint32_t:3;\r
6149             } B;\r
6150         } ADR;\r
6151 \r
6152                 vuint8_t DFLASH_reserved0[32]; /* Reserved 32 Bytes (+0x001C-0x003B) */\r
6153 \r
6154         union {        /* User Test 0 (Base+0x003C) */\r
6155             vuint32_t R;\r
6156             struct {\r
6157                 vuint32_t UTE:1;\r
6158                                 vuint32_t:7;\r
6159                 vuint32_t DSI:8;\r
6160                                 vuint32_t:10;\r
6161                 vuint32_t MRE:1;\r
6162                 vuint32_t MRV:1;\r
6163                 vuint32_t EIE:1;\r
6164                 vuint32_t AIS:1;\r
6165                 vuint32_t AIE:1;\r
6166                 vuint32_t AID:1;\r
6167             } B;\r
6168         } UT0;\r
6169 \r
6170         union {    /* User Test 1 (Base+0x0040) */\r
6171             vuint32_t R;\r
6172             struct {\r
6173                 vuint32_t DAI:32;\r
6174             } B;\r
6175         } UT1;\r
6176 \r
6177         union {    /* User Test 2 (Base+0x0044) */\r
6178             vuint32_t R;\r
6179             struct {\r
6180                 vuint32_t DAI:32;\r
6181             } B;\r
6182         } UT2;\r
6183 \r
6184         union {  /* User Multiple Input sig 0..1 (+0x0048-0x004F)*/\r
6185             vuint32_t R;\r
6186             struct {\r
6187                 vuint32_t MS:32;\r
6188             } B;\r
6189         } UMISR[5];\r
6190 \r
6191     }; /* end of Dflash_tag */\r
6192 /****************************************************************************/\r
6193 /*                     MODULE : CFLASH (base address - 0xC3F8_8000)         */\r
6194 /****************************************************************************/\r
6195     struct CFLASH_tag {\r
6196         union {     /* Module Configuration (Base+0x0000) */\r
6197             vuint32_t R;\r
6198             struct {\r
6199                 vuint32_t EDC:1;\r
6200                 vuint32_t:4;\r
6201                 vuint32_t SIZE:3;\r
6202                 vuint32_t:1;\r
6203                 vuint32_t LAS:3;\r
6204                 vuint32_t:3;\r
6205                 vuint32_t MAS:1;\r
6206                 vuint32_t EER:1;\r
6207                 vuint32_t RWE:1;\r
6208                 vuint32_t:1;\r
6209                 vuint32_t:1;\r
6210                 vuint32_t PEAS:1;\r
6211                 vuint32_t DONE:1;\r
6212                 vuint32_t PEG:1;\r
6213                 vuint32_t:4;\r
6214                 vuint32_t PGM:1;\r
6215                 vuint32_t PSUS:1;\r
6216                 vuint32_t ERS:1;\r
6217                 vuint32_t ESUS:1;\r
6218                 vuint32_t EHV:1;\r
6219             } B;\r
6220         } MCR;\r
6221 \r
6222         union {    /* Low/Mid address block locking (Base+0x0004) */\r
6223             vuint32_t R;\r
6224             struct {\r
6225                 vuint32_t LME:1;\r
6226                 vuint32_t:10;\r
6227                 vuint32_t TSLK:1;\r
6228                 vuint32_t:2;\r
6229                 vuint32_t MLK:2;\r
6230                 vuint32_t LLK:16;\r
6231             } B;\r
6232         } LML;\r
6233 \r
6234         union {  /* High address space block locking (Base+0x0008)*/\r
6235             vuint32_t R;\r
6236             struct {\r
6237                 vuint32_t HBE:1;\r
6238                 vuint32_t :19;\r
6239                 vuint32_t HBLOCK:12;\r
6240             } B;\r
6241         } HBL;\r
6242 \r
6243         union {    /* Secondary Low/Mid block lock (Base+0x000C)*/\r
6244             vuint32_t R;\r
6245             struct {\r
6246                 vuint32_t SLE:1;\r
6247                 vuint32_t:10;\r
6248                 vuint32_t STSLK:1;\r
6249                 vuint32_t:2;\r
6250                 vuint32_t SMK:2;\r
6251                 vuint32_t SLK:16;\r
6252             } B;\r
6253         } SLL;\r
6254 \r
6255         union {    /* Low/Mid address space block sel (Base+0x0010)*/\r
6256             vuint32_t R;\r
6257             struct {\r
6258                 vuint32_t:14;\r
6259                 vuint32_t MSL:2;\r
6260                 vuint32_t LSL:16;\r
6261             } B;\r
6262         } LMS;\r
6263 \r
6264         union {   /* High address Space block select (Base+0x0014)*/\r
6265             vuint32_t R;\r
6266             struct {\r
6267                 vuint32_t:20;\r
6268                 vuint32_t HSL:12;\r
6269             } B;\r
6270         } HBS;\r
6271 \r
6272         union {   /* Address Register (Base+0x0018) */\r
6273             vuint32_t R;\r
6274             struct {\r
6275                 vuint32_t:9;\r
6276                 vuint32_t ADD:20;\r
6277                 vuint32_t:3;\r
6278             } B;\r
6279         } ADR;\r
6280 \r
6281     /* Note the following 3 registers, BIU[0..2] are mirrored to */\r
6282     /*  the code flash configuraiton PFCR[0..2] registers        */\r
6283     /* To make it easier to code, the BIU registers have been    */\r
6284     /*  replaced with the PFCR registers in this header file!    */\r
6285     /* A commented out BIU register is shown for reference!      */\r
6286 \r
6287 \r
6288     union { /* CFLASH Configuration 0 (Base+0x001C) */\r
6289             vuint32_t R;\r
6290             struct {\r
6291                 vuint32_t BK0_APC:5;\r
6292                 vuint32_t BK0_WWSC:5;\r
6293                 vuint32_t BK0_RWSC:5;\r
6294                 vuint32_t BK0_RWWC2:1;\r
6295                 vuint32_t BK0_RWWC1:1;\r
6296              /* vuint32_t B0_P1_BCFG:2; // only has one port to the cross bar i.e. port 0 \r
6297                 vuint32_t B0_P1_DPFE:1;\r
6298                 vuint32_t B0_P1_IPFE:1;\r
6299                 vuint32_t B0_P1_PFLM:2;\r
6300                 vuint32_t B0_P1_BFE:1; */\r
6301                                 vuint32_t :7;\r
6302                 vuint32_t BK0_RWWC0:1;\r
6303                 vuint32_t B0_P0_BCFG:2;\r
6304                 vuint32_t B0_P0_DPFE:1;\r
6305                 vuint32_t B0_P0_IPFE:1;\r
6306                 vuint32_t B0_P0_PFLM:2;\r
6307                 vuint32_t B0_P0_BFE:1;\r
6308             } B;\r
6309         } PFCR0;\r
6310                 \r
6311 /* Commented out Bus Interface Unit 0 (Base+0x001C) */\r
6312     /*union {              \r
6313         vuint32_t R;\r
6314         struct {\r
6315             vuint32_t BI0:32;\r
6316         } B;\r
6317     } BIU0;  */\r
6318 \r
6319         union {   /* CFLASH Configuration Register 1 (Base+0x0020)*/\r
6320             vuint32_t R;\r
6321             struct {\r
6322                 vuint32_t BK1_APC:5;\r
6323                 vuint32_t BK1_WWSC:5;\r
6324                 vuint32_t BK1_RWSC:5;\r
6325                 vuint32_t BK1_RWWC2:1;\r
6326                 vuint32_t BK1_RWWC1:1;\r
6327                 vuint32_t:7;                     /* changed to 7 to suit comment below */\r
6328                 //vuint32_t B1_P1_BFE:1; /* should have no effect, there is only one XBAR port (no P1) to P-flash controller */ \r
6329                 vuint32_t BK1_RWWC0:1;\r
6330                 vuint32_t:6;\r
6331                 vuint32_t B1_P0_BFE:1;\r
6332             } B;\r
6333         } PFCR1;\r
6334                 \r
6335 /* Commented out Bus Interface Unit 1 (Base+0x0020) */\r
6336     /*union {                 \r
6337         vuint32_t R;\r
6338         struct {\r
6339             vuint32_t BI1:32;\r
6340         } B;\r
6341     } BIU1; */\r
6342 \r
6343         union {          /* CFLASH Access Protection (Base+0x0024) */\r
6344             vuint32_t R;\r
6345             struct {\r
6346                 vuint32_t:6;            /*incorrect - B1M/B1.5M does not have this many masters TBD*/ \r
6347                 vuint32_t ARBM:2;\r
6348                 vuint32_t M7PFD:1;\r
6349                 vuint32_t M6PFD:1;\r
6350                 vuint32_t M5PFD:1;\r
6351                 vuint32_t M4PFD:1;\r
6352                 vuint32_t M3PFD:1;\r
6353                 vuint32_t M2PFD:1;\r
6354                 vuint32_t M1PFD:1;\r
6355                 vuint32_t M0PFD:1;\r
6356                 vuint32_t M7AP:2;\r
6357                 vuint32_t M6AP:2;\r
6358                 vuint32_t M5AP:2;\r
6359                 vuint32_t M4AP:2;\r
6360                 vuint32_t M3AP:2;\r
6361                 vuint32_t M2AP:2;\r
6362                 vuint32_t M1AP:2;\r
6363                 vuint32_t M0AP:2;\r
6364             } B;\r
6365         } PFAPR;\r
6366                 \r
6367 /* Commented out Bus Interface Unit 2 (Base+0x0024) */\r
6368     /*union {                \r
6369         vuint32_t R;\r
6370         struct {\r
6371             vuint32_t BI2:32;\r
6372         } B;\r
6373     } BIU2; */\r
6374 \r
6375     vuint8_t CFLASH_reserved0[20]; /* Reserved 20 Bytes (Base+0x0028-0x003B) */\r
6376 \r
6377         union {     /* User Test 0 (Base+0x003C) */\r
6378             vuint32_t R;\r
6379             struct {\r
6380                 vuint32_t UTE:1;\r
6381                 vuint32_t:7;\r
6382                 vuint32_t DSI:8;\r
6383                 vuint32_t:10;\r
6384                 vuint32_t MRE:1;\r
6385                 vuint32_t MRV:1;\r
6386                 vuint32_t EIE:1;\r
6387                 vuint32_t AIS:1;\r
6388                 vuint32_t AIE:1;\r
6389                 vuint32_t AID:1;\r
6390             } B;\r
6391         } UT0;\r
6392 \r
6393         union {   /* User Test 1 (Base+0x0040) */\r
6394             vuint32_t R;\r
6395             struct {\r
6396                 vuint32_t DAI:32;\r
6397             } B;\r
6398         } UT1;\r
6399 \r
6400         union {   /* User Test 2 (Base+0x0044) */\r
6401             vuint32_t R;\r
6402             struct {\r
6403                 vuint32_t DAI:32;\r
6404             } B;\r
6405         } UT2;\r
6406 \r
6407         union {   /* User Multiple Input Sig 0..4 (Base+0x0048-0x005B) */\r
6408             vuint32_t R;\r
6409             struct {\r
6410                 vuint32_t MS:32;\r
6411             } B;\r
6412         } UMISR[5];\r
6413                 \r
6414                  vuint8_t CFLASH_reserved1[16292]; /* Reserved 16292 (Base+0x005C-0x3FFF)*/\r
6415 \r
6416     };                          /* end of CFLASH_tag */\r
6417 /****************************************************************** \r
6418 | defines and macros (scope: module-local) \r
6419 |-----------------------------------------------------------------*/\r
6420 /* Define instances of modules */\r
6421 \r
6422 #define ADC_0     (*(volatile struct ADC0_tag *)      0xFFE00000UL)\r
6423 #define ADC_1     (*(volatile struct ADC1_tag *)      0xFFE04000UL)\r
6424 #define CAN_0     (*(volatile struct FLEXCAN_tag *)   0xFFFC0000UL)\r
6425 #define CAN_1     (*(volatile struct FLEXCAN_tag *)   0xFFFC4000UL)\r
6426 #define CAN_2     (*(volatile struct FLEXCAN_tag *)   0xFFFC8000UL)\r
6427 #define CAN_3     (*(volatile struct FLEXCAN_tag *)   0xFFFCC000UL)\r
6428 #define CAN_4     (*(volatile struct FLEXCAN_tag *)   0xFFFD0000UL)\r
6429 #define CAN_5     (*(volatile struct FLEXCAN_tag *)   0xFFFD4000UL)\r
6430 #define CANSP     (*(volatile struct CANSP_tag *)     0xFFE70000UL)\r
6431 #define CFLASH    (*(volatile struct CFLASH_tag *)    0xC3F88000UL)\r
6432 #define CGM       (*(volatile struct CGM_tag *)       0xC3FE0000UL)\r
6433 #define CTUL      (*(volatile struct CTUL_tag *)      0xFFE64000UL)\r
6434 #define DFLASH    (*(volatile struct DFLASH_tag *)    0xC3F8C000UL)\r
6435 #define DMAMUX    (*(volatile struct DMAMUX_tag *)    0xFFFDC000UL)\r
6436 #define DSPI_0    (*(volatile struct DSPI_tag *)      0xFFF90000UL)\r
6437 #define DSPI_1    (*(volatile struct DSPI_tag *)      0xFFF94000UL)\r
6438 #define DSPI_2    (*(volatile struct DSPI_tag *)      0xFFF98000UL)\r
6439 #define DSPI_3    (*(volatile struct DSPI_tag *)      0xFFF9C000UL)\r
6440 #define DSPI_4    (*(volatile struct DSPI_tag *)      0xFFFA0000UL)\r
6441 #define DSPI_5    (*(volatile struct DSPI_tag *)      0xFFFA4000UL)\r
6442 #define EDMA      (*(volatile struct EDMA_tag *)      0xFFF44000UL) \r
6443 #define EMIOS_0   (*(volatile struct EMIOS_tag *)     0xC3FA0000UL)\r
6444 #define EMIOS_1   (*(volatile struct EMIOS_tag *)     0xC3FA4000UL)\r
6445 #define I2C_0     (*(volatile struct I2C_tag *)       0xFFE30000UL)\r
6446 #define INTC      (*(volatile struct INTC_tag *)      0xFFF48000UL)\r
6447 #define LINFLEX_0 (*(volatile struct LINFLEXD0_tag *) 0xFFE40000UL)\r
6448 #define LINFLEX_1 (*(volatile struct LINFLEXD1_tag *) 0xFFE44000UL)\r
6449 #define LINFLEX_2 (*(volatile struct LINFLEX_tag *)   0xFFE48000UL)\r
6450 #define LINFLEX_3 (*(volatile struct LINFLEX_tag *)   0xFFE4C000UL)\r
6451 #define LINFLEX_4 (*(volatile struct LINFLEX_tag *)   0xFFE50000UL)\r
6452 #define LINFLEX_5 (*(volatile struct LINFLEX_tag *)   0xFFE54000UL)\r
6453 #define LINFLEX_6 (*(volatile struct LINFLEX_tag *)   0xFFE58000UL)\r
6454 #define LINFLEX_7 (*(volatile struct LINFLEX_tag *)   0xFFE5C000UL)\r
6455 #define LINFLEX_8 (*(volatile struct LINFLEX_tag *)   0xFFFB0000UL)\r
6456 #define LINFLEX_9 (*(volatile struct LINFLEX_tag *)   0xFFFB4000UL)\r
6457 #define ECSM      (*(volatile struct ECSM_tag *)      0xFFF40000UL)\r
6458 #define ME        (*(volatile struct ME_tag *)        0xC3FDC000UL)\r
6459 #define MPU       (*(volatile struct MPU_tag *)       0xFFF10000UL)\r
6460 #define PCU       (*(volatile struct PCU_tag *)       0xC3FE8000UL)\r
6461 #define PIT       (*(volatile struct PIT_tag *)       0xC3FF0000UL)\r
6462 #define RGM       (*(volatile struct RGM_tag *)       0xC3FE4000UL)\r
6463 #define RTC       (*(volatile struct RTC_tag *)       0xC3FEC000UL)\r
6464 #define SIU       (*(volatile struct SIU_tag *)       0xC3F90000UL)\r
6465 #define SSCM      (*(volatile struct SSCM_tag *)      0xC3FD8000UL)\r
6466 #define STM       (*(volatile struct STM_tag *)       0xFFF3C000UL)\r
6467 #define SWT       (*(volatile struct SWT_tag *)       0xFFF38000UL)\r
6468 #define WKUP      (*(volatile struct WKUP_tag *)      0xC3F94000UL)\r
6469 \r
6470 #ifdef __MWERKS__\r
6471 #pragma pop\r
6472 #endif\r
6473 \r
6474 #ifdef  __cplusplus\r
6475 }\r
6476 #endif\r
6477 #endif                          \r
6478 /* End of file */\r