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