]> rtime.felk.cvut.cz Git - arc.git/blob - arch/ppc/mpc55xx/drivers/MPC5604B_0M27V_0102.h
Added SPI support to 5604b
[arc.git] / arch / ppc / mpc55xx / drivers / MPC5604B_0M27V_0102.h
1 /***************************************************************** \r
2  *\r
3  * FILE        : MPC5604B_0M27V_0100.h\r
4  * \r
5  * DESCRIPTION : This is the header file describing the register\r
6  *               set for:\r
7  *                   MPC5604B, mask set = 0M27V\r
8  *               SPC560B4, mask set = FB50X20B\r
9  * \r
10  * COPYRIGHT   :(c) 2009, Freescale & STMicroelectronics \r
11  * \r
12  * VERSION     : 01.02 \r
13  * DATE        : 08 MAY 2009 \r
14  * AUTHOR      : b04629 \r
15  * HISTORY     : Original source taken from jdp_0100.h. \r
16  *               Updated to be compatable with \r
17  *               - MPC5604B Mask ID 0M27V \r
18  *               - MPC5604B Reference Manual Rev 3 Draft A\r
19  *               - SPC560B4 Mask ID FB50X20B\r
20  *               - SPC560B4 Reference Manual Rev 3 Draft A\r
21  *\r
22  ******************************************************************/  \r
23     \r
24 /*>>>>NOTE! this file is auto-generated please do not edit it!<<<<*/ \r
25     \r
26 /***************************************************************** \r
27 * Example instantiation and use:            \r
28 *                                           \r
29 *  <MODULE>.<REGISTER>.B.<BIT> = 1;         \r
30 *  <MODULE>.<REGISTER>.R       = 0x10000000;\r
31 *                                           \r
32 ******************************************************************/ \r
33     \r
34 #ifndef _MPC5604B_H_\r
35 #define _MPC5604B_H_\r
36     \r
37 #include "Compiler.h"\r
38 #include "typedefs.h"\r
39     \r
40 #ifdef  __cplusplus\r
41 extern "C" {\r
42     \r
43 #endif  /* \r
44  */\r
45     \r
46 #ifdef __MWERKS__\r
47 #pragma push\r
48 #pragma ANSI_strict off\r
49 #endif  /* \r
50  */\r
51 /****************************************************************************/\r
52 /*                          MODULE : ADC                                   */\r
53 /****************************************************************************/\r
54         struct ADC_tag {\r
55 \r
56         union {\r
57             vuint32_t R;\r
58             struct {\r
59                 vuint32_t OWREN:1;\r
60                 vuint32_t WLSIDE:1;\r
61                 vuint32_t MODE:1;\r
62                   vuint32_t:4;\r
63                 vuint32_t NSTART:1;\r
64                   vuint32_t:1;\r
65                 vuint32_t JTRGEN:1;\r
66                 vuint32_t JEDGE:1;\r
67                 vuint32_t JSTART:1;\r
68                   vuint32_t:2;\r
69                 vuint32_t CTUEN:1;\r
70                   vuint32_t:8;\r
71                 vuint32_t ADCLKSEL:1;\r
72                 vuint32_t ABORTCHAIN:1;\r
73                 vuint32_t ABORT:1;\r
74                 vuint32_t ACK0:1;\r
75                   vuint32_t:4;\r
76                 vuint32_t PWDN:1;\r
77             } B;\r
78         } MCR;                  /* MAIN CONFIGURATION REGISTER */\r
79 \r
80         union {\r
81             vuint32_t R;\r
82             struct {\r
83                 vuint32_t:7;\r
84                 vuint32_t NSTART:1;\r
85                 vuint32_t JABORT:1;\r
86                   vuint32_t:2;\r
87                 vuint32_t JSTART:1;\r
88                   vuint32_t:3;\r
89                 vuint32_t CTUSTART:1;\r
90                 vuint32_t CHADDR:7;\r
91                   vuint32_t:3;\r
92                 vuint32_t ACK0:1;\r
93                   vuint32_t:2;\r
94                 vuint32_t ADCSTATUS:3;\r
95             } B;\r
96         } MSR;                  /* MAIN STATUS REGISTER */\r
97 \r
98         int32_t ADC_reserved1[2];       /* (0x010 - 0x008)/4 = 0x02 */\r
99 \r
100         union {\r
101             vuint32_t R;\r
102             struct {\r
103                 vuint32_t:27;\r
104                 vuint32_t EOCTU:1;\r
105                 vuint32_t JEOC:1;\r
106                 vuint32_t JECH:1;\r
107                 vuint32_t EOC:1;\r
108                 vuint32_t ECH:1;\r
109             } B;\r
110         } ISR;                  /* INTERRUPT STATUS REGISTER */\r
111 \r
112         union {\r
113             vuint32_t R;\r
114             struct {\r
115                 vuint32_t EOC_CH31:1;\r
116                 vuint32_t EOC_CH30:1;\r
117                 vuint32_t EOC_CH29:1;\r
118                 vuint32_t EOC_CH28:1;\r
119                 vuint32_t EOC_CH27:1;\r
120                 vuint32_t EOC_CH26:1;\r
121                 vuint32_t EOC_CH25:1;\r
122                 vuint32_t EOC_CH24:1;\r
123                 vuint32_t EOC_CH23:1;\r
124                 vuint32_t EOC_CH22:1;\r
125                 vuint32_t EOC_CH21:1;\r
126                 vuint32_t EOC_CH20:1;\r
127                 vuint32_t EOC_CH19:1;\r
128                 vuint32_t EOC_CH18:1;\r
129                 vuint32_t EOC_CH17:1;\r
130                 vuint32_t EOC_CH16:1;\r
131                 vuint32_t EOC_CH15:1;\r
132                 vuint32_t EOC_CH14:1;\r
133                 vuint32_t EOC_CH13:1;\r
134                 vuint32_t EOC_CH12:1;\r
135                 vuint32_t EOC_CH11:1;\r
136                 vuint32_t EOC_CH10:1;\r
137                 vuint32_t EOC_CH9:1;\r
138                 vuint32_t EOC_CH8:1;\r
139                 vuint32_t EOC_CH7:1;\r
140                 vuint32_t EOC_CH6:1;\r
141                 vuint32_t EOC_CH5:1;\r
142                 vuint32_t EOC_CH4:1;\r
143                 vuint32_t EOC_CH3:1;\r
144                 vuint32_t EOC_CH2:1;\r
145                 vuint32_t EOC_CH1:1;\r
146                 vuint32_t EOC_CH0:1;\r
147             } B;\r
148         } CEOCFR[3];            /* Channel Pending Register 0 */\r
149 \r
150         union {\r
151             vuint32_t R;\r
152             struct {\r
153                 vuint32_t:27;\r
154                 vuint32_t MSKEOCTU:1;\r
155                 vuint32_t MSKJEOC:1;\r
156                 vuint32_t MSKJECH:1;\r
157                 vuint32_t MSKEOC:1;\r
158                 vuint32_t MSKECH:1;\r
159             } B;\r
160         } IMR;                  /* INTERRUPT MASK REGISTER */\r
161 \r
162         union {\r
163             vuint32_t R;\r
164             struct {\r
165                 vuint32_t CIM31:1;\r
166                 vuint32_t CIM30:1;\r
167                 vuint32_t CIM29:1;\r
168                 vuint32_t CIM28:1;\r
169                 vuint32_t CIM27:1;\r
170                 vuint32_t CIM26:1;\r
171                 vuint32_t CIM25:1;\r
172                 vuint32_t CIM24:1;\r
173                 vuint32_t CIM23:1;\r
174                 vuint32_t CIM22:1;\r
175                 vuint32_t CIM21:1;\r
176                 vuint32_t CIM20:1;\r
177                 vuint32_t CIM19:1;\r
178                 vuint32_t CIM18:1;\r
179                 vuint32_t CIM17:1;\r
180                 vuint32_t CIM16:1;\r
181                 vuint32_t CIM15:1;\r
182                 vuint32_t CIM14:1;\r
183                 vuint32_t CIM13:1;\r
184                 vuint32_t CIM12:1;\r
185                 vuint32_t CIM11:1;\r
186                 vuint32_t CIM10:1;\r
187                 vuint32_t CIM9:1;\r
188                 vuint32_t CIM8:1;\r
189                 vuint32_t CIM7:1;\r
190                 vuint32_t CIM6:1;\r
191                 vuint32_t CIM5:1;\r
192                 vuint32_t CIM4:1;\r
193                 vuint32_t CIM3:1;\r
194                 vuint32_t CIM2:1;\r
195                 vuint32_t CIM1:1;\r
196                 vuint32_t CIM0:1;\r
197             } B;\r
198         } CIMR[3];              /* Channel Interrupt Mask Register 0 */\r
199 \r
200         union {\r
201             vuint32_t R;\r
202             struct {\r
203                 vuint32_t:24;\r
204                 vuint32_t WDG3H:1;\r
205                 vuint32_t WDG2H:1;\r
206                 vuint32_t WDG1H:1;\r
207                 vuint32_t WDG0H:1;\r
208                 vuint32_t WDG3L:1;\r
209                 vuint32_t WDG2L:1;\r
210                 vuint32_t WDG1L:1;\r
211                 vuint32_t WDG0L:1;\r
212             } B;\r
213         } WTISR;                /* WATCHDOG INTERRUPT THRESHOLD REGISTER */\r
214 \r
215         union {\r
216             vuint32_t R;\r
217             struct {\r
218                 vuint32_t:24;\r
219                 vuint32_t MSKWDG3H:1;\r
220                 vuint32_t MSKWDG2H:1;\r
221                 vuint32_t MSKWDG1H:1;\r
222                 vuint32_t MSKWDG0H:1;\r
223                 vuint32_t MSKWDG3L:1;\r
224                 vuint32_t MSKWDG2L:1;\r
225                 vuint32_t MSKWDG1L:1;\r
226                 vuint32_t MSKWDG0L:1;\r
227             } B;\r
228         } WTIMR;                /* WATCHDOG INTERRUPT MASK REGISTER */\r
229 \r
230         int32_t ADC_reserved2[6];       /* (0x050 - 0x038)/4 = 0x06 */\r
231 \r
232         union {\r
233             vuint32_t R;\r
234             struct {\r
235                 vuint32_t:16;\r
236                 vuint32_t THREN:1;\r
237                 vuint32_t THRINV:1;\r
238                   vuint32_t:7;\r
239                 vuint32_t THRCH:7;\r
240             } B;\r
241         } TRC[4];               /* ADC THRESHOLD REGISTER REGISTER */\r
242 \r
243         union {\r
244             vuint32_t R;\r
245             struct {\r
246                 vuint32_t:4;\r
247                 vuint32_t THRH:12;\r
248                   vuint32_t:4;\r
249                 vuint32_t THRL:12;\r
250             } B;\r
251         } THRHLR[4];            /* THRESHOLD REGISTER */\r
252 \r
253         int32_t ADC_reserved3[4];       /* (0x080 - 0x070)/4 = 0x04 */\r
254 \r
255         union {\r
256             vuint32_t R;\r
257             struct {\r
258                 vuint32_t:25;\r
259                 vuint32_t PREVAL2:2;\r
260                 vuint32_t PREVAL1:2;\r
261                 vuint32_t PREVAL0:2;\r
262                 vuint32_t PRECONV:1;\r
263             } B;\r
264         } PSCR;                 /* PRESAMPLING CONTROL REGISTER */\r
265 \r
266         union {\r
267             vuint32_t R;\r
268             struct {\r
269                 vuint32_t PRES31:1;\r
270                 vuint32_t PRES30:1;\r
271                 vuint32_t PRES29:1;\r
272                 vuint32_t PRES28:1;\r
273                 vuint32_t PRES27:1;\r
274                 vuint32_t PRES26:1;\r
275                 vuint32_t PRES25:1;\r
276                 vuint32_t PRES24:1;\r
277                 vuint32_t PRES23:1;\r
278                 vuint32_t PRES22:1;\r
279                 vuint32_t PRES21:1;\r
280                 vuint32_t PRES20:1;\r
281                 vuint32_t PRES19:1;\r
282                 vuint32_t PRES18:1;\r
283                 vuint32_t PRES17:1;\r
284                 vuint32_t PRES16:1;\r
285                 vuint32_t PRES15:1;\r
286                 vuint32_t PRES14:1;\r
287                 vuint32_t PRES13:1;\r
288                 vuint32_t PRES12:1;\r
289                 vuint32_t PRES11:1;\r
290                 vuint32_t PRES10:1;\r
291                 vuint32_t PRES9:1;\r
292                 vuint32_t PRES8:1;\r
293                 vuint32_t PRES7:1;\r
294                 vuint32_t PRES6:1;\r
295                 vuint32_t PRES5:1;\r
296                 vuint32_t PRES4:1;\r
297                 vuint32_t PRES3:1;\r
298                 vuint32_t PRES2:1;\r
299                 vuint32_t PRES1:1;\r
300                 vuint32_t PRES0:1;\r
301             } B;\r
302         } PSR[3];               /* PRESAMPLING REGISTER */\r
303 \r
304         int32_t ADC_reserved4[1];       /* (0x094 - 0x090)/4 = 0x01 */\r
305 \r
306         union {\r
307             vuint32_t R;\r
308             struct {\r
309                 vuint32_t:16;\r
310                 vuint32_t INPLATCH:1;\r
311                   vuint32_t:4;\r
312                 vuint32_t INPCMP:2;\r
313                   vuint32_t:1;\r
314                 vuint32_t INPSAMP:8;\r
315             } B;\r
316         } CTR[3];               /* CONVERSION TIMING REGISTER */\r
317 \r
318         int32_t ADC_reserved5[1];       /* (0x0A4 - 0x0A0)/4 = 0x01 */\r
319 \r
320         union {\r
321             vuint32_t R;\r
322             struct {\r
323                 vuint32_t CH31:1;\r
324                 vuint32_t CH30:1;\r
325                 vuint32_t CH29:1;\r
326                 vuint32_t CH28:1;\r
327                 vuint32_t CH27:1;\r
328                 vuint32_t CH26:1;\r
329                 vuint32_t CH25:1;\r
330                 vuint32_t CH24:1;\r
331                 vuint32_t CH23:1;\r
332                 vuint32_t CH22:1;\r
333                 vuint32_t CH21:1;\r
334                 vuint32_t CH20:1;\r
335                 vuint32_t CH19:1;\r
336                 vuint32_t CH18:1;\r
337                 vuint32_t CH17:1;\r
338                 vuint32_t CH16:1;\r
339                 vuint32_t CH15:1;\r
340                 vuint32_t CH14:1;\r
341                 vuint32_t CH13:1;\r
342                 vuint32_t CH12:1;\r
343                 vuint32_t CH11:1;\r
344                 vuint32_t CH10:1;\r
345                 vuint32_t CH9:1;\r
346                 vuint32_t CH8:1;\r
347                 vuint32_t CH7:1;\r
348                 vuint32_t CH6:1;\r
349                 vuint32_t CH5:1;\r
350                 vuint32_t CH4:1;\r
351                 vuint32_t CH3:1;\r
352                 vuint32_t CH2:1;\r
353                 vuint32_t CH1:1;\r
354                 vuint32_t CH0:1;\r
355             } B;\r
356         } NCMR[3];              /* NORMAL CONVERSION MASK REGISTER */\r
357 \r
358         int32_t ADC_reserved6[1];       /* (0x0B4 - 0x0B0)/4 = 0x01 */\r
359 \r
360         union {\r
361             vuint32_t R;\r
362             struct {\r
363                 vuint32_t CH31:1;\r
364                 vuint32_t CH30:1;\r
365                 vuint32_t CH29:1;\r
366                 vuint32_t CH28:1;\r
367                 vuint32_t CH27:1;\r
368                 vuint32_t CH26:1;\r
369                 vuint32_t CH25:1;\r
370                 vuint32_t CH24:1;\r
371                 vuint32_t CH23:1;\r
372                 vuint32_t CH22:1;\r
373                 vuint32_t CH21:1;\r
374                 vuint32_t CH20:1;\r
375                 vuint32_t CH19:1;\r
376                 vuint32_t CH18:1;\r
377                 vuint32_t CH17:1;\r
378                 vuint32_t CH16:1;\r
379                 vuint32_t CH15:1;\r
380                 vuint32_t CH14:1;\r
381                 vuint32_t CH13:1;\r
382                 vuint32_t CH12:1;\r
383                 vuint32_t CH11:1;\r
384                 vuint32_t CH10:1;\r
385                 vuint32_t CH9:1;\r
386                 vuint32_t CH8:1;\r
387                 vuint32_t CH7:1;\r
388                 vuint32_t CH6:1;\r
389                 vuint32_t CH5:1;\r
390                 vuint32_t CH4:1;\r
391                 vuint32_t CH3:1;\r
392                 vuint32_t CH2:1;\r
393                 vuint32_t CH1:1;\r
394                 vuint32_t CH0:1;\r
395             } B;\r
396         } JCMR[3];              /* Injected CONVERSION MASK REGISTER */\r
397 \r
398         int32_t ADC_reserved7[1];       /* (0x0C4 - 0x0C0)/4 = 0x01 */\r
399 \r
400         union {\r
401             vuint32_t R;\r
402             struct {\r
403                 vuint32_t:24;\r
404                 vuint32_t DSD:8;\r
405             } B;\r
406         } DSDR;                 /* DECODE SIGNALS DELAY REGISTER */\r
407 \r
408         union {\r
409             vuint32_t R;\r
410             struct {\r
411                 vuint32_t:24;\r
412                 vuint32_t PDED:8;\r
413             } B;\r
414         } PDEDR;                /* POWER DOWN DELAY REGISTER */\r
415 \r
416         int32_t ADC_reserved8[13];      /* (0x100 - 0x0CC)/4 = 0x0D */\r
417 \r
418         union {\r
419             vuint32_t R;\r
420             struct {\r
421                 vuint32_t:12;\r
422                 vuint32_t VALID:1;\r
423                 vuint32_t OVERW:1;\r
424                 vuint32_t RESULT:2;\r
425                   vuint32_t:6;\r
426                 vuint32_t CDATA:10;\r
427             } B;\r
428         } CDR[96];              /* Channel 0-95 Data REGISTER */\r
429 \r
430     };                          /* end of ADC_tag */\r
431 /****************************************************************************/\r
432 /*                          MODULE : CANSP                                   */\r
433 /****************************************************************************/\r
434     struct CANSP_tag {\r
435         union {\r
436             vuint32_t R;\r
437             struct {\r
438                 vuint32_t:16;\r
439                 vuint32_t RX_COMPLETE:1;\r
440                 vuint32_t BUSY:1;\r
441                 vuint32_t ACTIVE_CK:1;\r
442                   vuint32_t:3;\r
443                 vuint32_t MODE:1;\r
444                 vuint32_t CAN_RX_SEL:3;\r
445                 vuint32_t BRP:5;\r
446                 vuint32_t CAN_SMPLR_EN:1;\r
447             } B;\r
448         } CR;                   /* CANSP Control Register */\r
449 \r
450         union {\r
451             vuint32_t R;\r
452         } SR[12];               /* CANSP Sample Register 0 to 11 */\r
453 \r
454     };                          /* end of CANSP_tag */\r
455 /****************************************************************************/\r
456 /*                     MODULE : CFLASH                                       */\r
457 /****************************************************************************/\r
458     struct CFLASH_tag {\r
459         union {                 /* Module Configuration Register */\r
460             vuint32_t R;\r
461             struct {\r
462                 vuint32_t EDC:1;\r
463                   vuint32_t:4;\r
464                 vuint32_t SIZE:3;\r
465                   vuint32_t:1;\r
466                 vuint32_t LAS:3;\r
467                   vuint32_t:3;\r
468                 vuint32_t MAS:1;\r
469                 vuint32_t EER:1;\r
470                 vuint32_t RWE:1;\r
471                   vuint32_t:1;\r
472                   vuint32_t:1;\r
473                 vuint32_t PEAS:1;\r
474                 vuint32_t DONE:1;\r
475                 vuint32_t PEG:1;\r
476                   vuint32_t:4;\r
477                 vuint32_t PGM:1;\r
478                 vuint32_t PSUS:1;\r
479                 vuint32_t ERS:1;\r
480                 vuint32_t ESUS:1;\r
481                 vuint32_t EHV:1;\r
482             } B;\r
483         } MCR;\r
484 \r
485         union {                 /* LML Register */\r
486             vuint32_t R;\r
487             struct {\r
488                 vuint32_t LME:1;\r
489                   vuint32_t:10;\r
490                 vuint32_t TSLK:1;\r
491                   vuint32_t:2;\r
492                 vuint32_t MLK:2;\r
493                 vuint32_t LLK:16;\r
494             } B;\r
495         } LML;\r
496 \r
497         union {                 /* HBL Register */\r
498             vuint32_t R;\r
499             struct {\r
500                 vuint32_t HBE:1;\r
501                   vuint32_t:23;\r
502                 vuint32_t HBLOCK:8;\r
503             } B;\r
504         } HBL;\r
505 \r
506         union {                 /* SLML Register */\r
507             vuint32_t R;\r
508             struct {\r
509                 vuint32_t SLE:1;\r
510                   vuint32_t:10;\r
511                 vuint32_t STSLK:1;\r
512                   vuint32_t:2;\r
513                 vuint32_t SMK:2;\r
514                 vuint32_t SLK:16;\r
515             } B;\r
516         } SLL;\r
517 \r
518         union {                 /* LMS Register */\r
519             vuint32_t R;\r
520             struct {\r
521                 vuint32_t:14;\r
522                 vuint32_t MSL:2;\r
523                 vuint32_t LSL:16;\r
524             } B;\r
525         } LMS;\r
526 \r
527         union {                 /* High Address Space Block Select Register */\r
528             vuint32_t R;\r
529             struct {\r
530                 vuint32_t:26;\r
531                 vuint32_t HSL:6;\r
532             } B;\r
533         } HBS;\r
534 \r
535         union {                 /* Address Register */\r
536             vuint32_t R;\r
537             struct {\r
538                 vuint32_t:10;\r
539                 vuint32_t ADD:19;\r
540                   vuint32_t:3;\r
541             } B;\r
542         } ADR;\r
543 \r
544         union {                 /* CFLASH Configuration Register 0 */\r
545             vuint32_t R;\r
546             struct {\r
547                 vuint32_t BK0_APC:5;\r
548                 vuint32_t BK0_WWSC:5;\r
549                 vuint32_t BK0_RWSC:5;\r
550                 vuint32_t BK0_RWWC2:1;\r
551                 vuint32_t BK0_RWWC1:1;\r
552                 vuint32_t B0_P1_BCFG:2;\r
553                 vuint32_t B0_P1_DPFE:1;\r
554                 vuint32_t B0_P1_IPFE:1;\r
555                 vuint32_t B0_P1_PFLM:2;\r
556                 vuint32_t B0_P1_BFE:1;\r
557                 vuint32_t BK0_RWWC0:1;\r
558                 vuint32_t B0_P0_BCFG:2;\r
559                 vuint32_t B0_P0_DPFE:1;\r
560                 vuint32_t B0_P0_IPFE:1;\r
561                 vuint32_t B0_P0_PFLM:2;\r
562                 vuint32_t B0_P0_BFE:1;\r
563             } B;\r
564         } PFCR0;\r
565 \r
566         union {                 /* CFLASH Configuration Register 1 */\r
567             vuint32_t R;\r
568             struct {\r
569                 vuint32_t BK1_APC:5;\r
570                 vuint32_t BK1_WWSC:5;\r
571                 vuint32_t BK1_RWSC:5;\r
572                 vuint32_t BK1_RWWC2:1;\r
573                 vuint32_t BK1_RWWC1:1;\r
574                   vuint32_t:6;\r
575                 vuint32_t B0_P1_BFE:1;\r
576                 vuint32_t BK1_RWWC0:1;\r
577                   vuint32_t:6;\r
578                 vuint32_t B1_P0_BFE:1;\r
579             } B;\r
580         } PFCR1;\r
581 \r
582         union {                 /* cflash Access Protection Register */\r
583             vuint32_t R;\r
584             struct {\r
585                 vuint32_t:6;\r
586                 vuint32_t ARBM:2;\r
587                 vuint32_t M7PFD:1;\r
588                 vuint32_t M6PFD:1;\r
589                 vuint32_t M5PFD:1;\r
590                 vuint32_t M4PFD:1;\r
591                 vuint32_t M3PFD:1;\r
592                 vuint32_t M2PFD:1;\r
593                 vuint32_t M1PFD:1;\r
594                 vuint32_t M0PFD:1;\r
595                 vuint32_t M7AP:2;\r
596                 vuint32_t M6AP:2;\r
597                 vuint32_t M5AP:2;\r
598                 vuint32_t M4AP:2;\r
599                 vuint32_t M3AP:2;\r
600                 vuint32_t M2AP:2;\r
601                 vuint32_t M1AP:2;\r
602                 vuint32_t M0AP:2;\r
603             } B;\r
604         } FAPR;\r
605 \r
606         int32_t CFLASH_reserved0[5];    /* {0x003C-0x0028}/0x4 = 0x05 */\r
607 \r
608         union {                 /* User Test Register 0 */\r
609             vuint32_t R;\r
610             struct {\r
611                 vuint32_t UTE:1;\r
612                   vuint32_t:7;\r
613                 vuint32_t DSI:8;\r
614                   vuint32_t:10;\r
615                 vuint32_t MRE:1;\r
616                 vuint32_t MRV:1;\r
617                 vuint32_t EIE:1;\r
618                 vuint32_t AIS:1;\r
619                 vuint32_t AIE:1;\r
620                 vuint32_t AID:1;\r
621             } B;\r
622         } UT0;\r
623 \r
624         union {                 /* User Test Register 1 */\r
625             vuint32_t R;\r
626             struct {\r
627                 vuint32_t DAI:32;\r
628             } B;\r
629         } UT1;\r
630 \r
631         union {                 /* User Test Register 2 */\r
632             vuint32_t R;\r
633             struct {\r
634                 vuint32_t DAI:32;\r
635             } B;\r
636         } UT2;\r
637 \r
638         union {                 /* User Multiple Input Signature Register 0-4 */\r
639             vuint32_t R;\r
640             struct {\r
641                 vuint32_t MS:32;\r
642             } B;\r
643         } UMISR[5];\r
644 \r
645     };                          /* end of CFLASH_tag */\r
646 /****************************************************************************/\r
647 /*                          MODULE : CGM                                   */\r
648 /****************************************************************************/\r
649     struct CGM_tag {\r
650 \r
651         /* The CGM provides a unified register interface, enabling access to \r
652 \r
653            all clock sources:\r
654 \r
655            Base Address | Clock Sources\r
656 \r
657            -----------------------------\r
658 \r
659            0xC3FE0000   | FXOSC_CTL\r
660 \r
661            ----------   | Reserved\r
662 \r
663            0xC3FE0040   | SXOSC_CTL\r
664 \r
665            0xC3FE0060   | FIRC_CTL\r
666 \r
667            0xC3FE0080   | SIRC_CTL\r
668 \r
669            0xC3FE00A0   | FMPLL_0\r
670 \r
671            ----------   | Reserved \r
672 \r
673            0xC3FE0100   | CMU_0\r
674 \r
675          */\r
676     /************************************/\r
677         /* FXOSC_CTL @ CGM base address + 0x0000 */\r
678     /************************************/\r
679         union {\r
680             vuint32_t R;\r
681             struct {\r
682                 vuint32_t OSCBYP:1;\r
683                   vuint32_t:7;\r
684                 vuint32_t EOCV:8;\r
685                 vuint32_t M_OSC:1;\r
686                   vuint32_t:2;\r
687                 vuint32_t OSCDIV:5;\r
688                 vuint32_t I_OSC:1;\r
689                   vuint32_t:7;\r
690             } B;\r
691         } FXOSC_CTL;            /* Fast OSC Control Register */\r
692 \r
693     /************************************/\r
694         /* SXOSC_CTL @ CGM base address + 0x0040 */\r
695     /************************************/\r
696         int32_t CGM_reserved0[15];      /* (0x040 - 0x004)/4 = 0x0F */\r
697 \r
698         union {\r
699             vuint32_t R;\r
700             struct {\r
701                 vuint32_t OSCBYP:1;\r
702                   vuint32_t:7;\r
703                 vuint32_t EOCV:8;\r
704                 vuint32_t M_OSC:1;\r
705                   vuint32_t:2;\r
706                 vuint32_t OSCDIV:5;\r
707                 vuint32_t I_OSC:1;\r
708                   vuint32_t:5;\r
709                 vuint32_t S_OSC:1;\r
710                 vuint32_t OSCON:1;\r
711             } B;\r
712         } SXOSC_CTL;            /* Slow OSC Control Register */\r
713 \r
714     /************************************/\r
715         /* FIRC_CTL @ CGM base address + 0x0060 */\r
716     /************************************/\r
717         int32_t CGM_reserved1[7];       /* (0x060 - 0x044)/4 = 0x07 */\r
718 \r
719         union {\r
720             vuint32_t R;\r
721             struct {\r
722                 vuint32_t:10;\r
723                 vuint32_t RCTRIM:6;\r
724                   vuint32_t:3;\r
725                 vuint32_t RCDIV:5;\r
726                   vuint32_t:8;\r
727             } B;\r
728         } FIRC_CTL;             /* Fast IRC Control Register */\r
729 \r
730     /****************************************/\r
731         /* SIRC_CTL @ CGM base address + 0x0080 */\r
732     /****************************************/\r
733         int32_t CGM_reserved2[7];       /* (0x080 - 0x064)/4 = 0x07 */\r
734 \r
735         union {\r
736             vuint32_t R;\r
737             struct {\r
738                 vuint32_t:11;\r
739                 vuint32_t RCTRIM:5;\r
740                   vuint32_t:3;\r
741                 vuint32_t RCDIV:5;\r
742                   vuint32_t:3;\r
743                 vuint32_t S_SIRC:1;\r
744                   vuint32_t:3;\r
745                 vuint32_t SIRCON_STDBY:1;\r
746             } B;\r
747         } SIRC_CTL;             /* Slow IRC Control Register */\r
748 \r
749     /*************************************/\r
750         /* FMPLL @ CGM base address + 0x00A0 */\r
751     /*************************************/\r
752         int32_t CGM_reserved3[7];       /* (0x0A0 - 0x084)/4 = 0x07 */\r
753 \r
754         union {\r
755             vuint32_t R;\r
756             struct {\r
757                 vuint32_t:2;\r
758                 vuint32_t IDF:4;\r
759                 vuint32_t ODF:2;\r
760                   vuint32_t:1;\r
761                 vuint32_t NDIV:7;\r
762                   vuint32_t:7;\r
763                 vuint32_t EN_PLL_SW:1;\r
764                 vuint32_t MODE:1;\r
765                 vuint32_t UNLOCK_ONCE:1;\r
766                   vuint32_t:1;\r
767                 vuint32_t I_LOCK:1;\r
768                 vuint32_t S_LOCK:1;\r
769                 vuint32_t PLL_FAIL_MASK:1;\r
770                 vuint32_t PLL_FAIL_FLAG:1;\r
771                   vuint32_t:1;\r
772             } B;\r
773         } FMPLL_CR;             /* FMPLL Control Register */\r
774 \r
775         union {\r
776             vuint32_t R;\r
777             struct {\r
778                 vuint32_t STRB_BYPASS:1;\r
779                   vuint32_t:1;\r
780                 vuint32_t SPRD_SEL:1;\r
781                 vuint32_t MOD_PERIOD:13;\r
782                 vuint32_t FM_EN:1;\r
783                 vuint32_t INC_STEP:15;\r
784             } B;\r
785         } FMPLL_MR;             /* FMPLL Modulation Register */\r
786 \r
787     /************************************/\r
788         /* CMU @ CGM base address + 0x0100  */\r
789     /************************************/\r
790         int32_t CGM_reserved5[22];      /* (0x100 - 0x0A8)/4 = 0x16 */\r
791 \r
792         union {\r
793             vuint32_t R;\r
794             struct {\r
795                 vuint32_t:8;\r
796                 vuint32_t SFM:1;\r
797                   vuint32_t:13;\r
798                 vuint32_t CLKSEL1:2;\r
799                   vuint32_t:5;\r
800                 vuint32_t RCDIV:2;\r
801                 vuint32_t CME_A:1;\r
802             } B;\r
803         } CMU_CSR;              /* Control Status Register */\r
804 \r
805         union {\r
806             vuint32_t R;\r
807             struct {\r
808                 vuint32_t:12;\r
809                 vuint32_t FD:20;\r
810             } B;\r
811         } CMU_FDR;              /* Frequency Display Register */\r
812 \r
813         union {\r
814             vuint32_t R;\r
815             struct {\r
816                 vuint32_t:20;\r
817                 vuint32_t HFREF_A:12;\r
818             } B;\r
819         } CMU_HFREFR_A;         /* High Frequency Reference Register PLL_A Register */\r
820 \r
821         union {\r
822             vuint32_t R;\r
823             struct {\r
824                 vuint32_t:20;\r
825                 vuint32_t LFREF_A:12;\r
826             } B;\r
827         } CMU_LFREFR_A;         /* Low Frequency Reference Register PLL_A Register */\r
828 \r
829         union {\r
830             vuint32_t R;\r
831             struct {\r
832                 vuint32_t:28;\r
833                 vuint32_t FLCI_A:1;\r
834                 vuint32_t FHHI_A:1;\r
835                 vuint32_t FLLI_A:1;\r
836                 vuint32_t OLRI:1;\r
837             } B;\r
838         } CMU_ISR;              /* Interrupt Status Register */\r
839 \r
840         union {\r
841             vuint32_t R;\r
842             struct {\r
843                 vuint32_t:32;\r
844             } B;\r
845         } CMU_IMR;              /* Interrupt Mask Register */\r
846 \r
847         union {\r
848             vuint32_t R;\r
849             struct {\r
850                 vuint32_t:12;\r
851                 vuint32_t MD:20;\r
852             } B;\r
853         } CMU_MDR;              /* Measurement Duration Register */\r
854 \r
855     /************************************/\r
856         /* CGM General Registers @ CGM base address + 0x0370 */\r
857     /************************************/\r
858         int32_t CGM_reserved7[149];     /* (0x370 - 0x11C)/4 = 0x95 */\r
859 \r
860         union {\r
861             vuint32_t R;\r
862             struct {\r
863                 vuint32_t:31;\r
864                 vuint32_t EN:1;\r
865             } B;\r
866         } OC_EN;                /* Output Clock Enable Register */\r
867 \r
868         union {\r
869             vuint32_t R;\r
870             struct {\r
871                 vuint32_t:2;\r
872                 vuint32_t SELDIV:2;\r
873                 vuint32_t SELCTL:4;\r
874                   vuint32_t:24;\r
875             } B;\r
876         } OCDS_SC;              /* Output Clock Division Select Register */\r
877 \r
878         union {\r
879             vuint32_t R;\r
880             struct {\r
881                 vuint32_t:4;\r
882                 vuint32_t SELSTAT:4;\r
883                   vuint32_t:24;\r
884             } B;\r
885         } SC_SS;                /* System Clock Select Status */\r
886 \r
887         union {\r
888             vuint8_t R;\r
889             struct {\r
890                 vuint8_t DE:1;\r
891                   vuint8_t:3;\r
892                 vuint8_t DIV:4;\r
893             } B;\r
894         } SC_DC[3];             /* System Clock Divider Configuration 0->2 */\r
895 \r
896     };                          /* end of CGM_tag */\r
897 /****************************************************************************/\r
898 /*                          MODULE : CTU                                   */\r
899 /****************************************************************************/\r
900     struct CTU_tag {\r
901         union {\r
902             vuint32_t R;\r
903             struct {\r
904                 vuint32_t:24;\r
905                 vuint32_t TRGIEN:1;\r
906                 vuint32_t TRGI:1;\r
907                   vuint32_t:6;\r
908             } B;\r
909         } CSR;                  /* Control Status Register */\r
910 \r
911         int32_t CTU_reserved0[11];      /* (0x030 - 0x004)/4 = 0x0B */\r
912 \r
913         union {\r
914             vuint32_t R;\r
915             struct {\r
916                 vuint32_t:16;\r
917                 vuint32_t TM:1;\r
918                   vuint32_t:7;\r
919                 vuint32_t CLR_FLAG:1;\r
920                   vuint32_t:1;\r
921                 vuint32_t CHANNELVALUE:6;\r
922             } B;\r
923         } EVTCFGR[64];          /* Event Configuration Register */\r
924 \r
925     };                          /* end of CTU_tag */\r
926 /****************************************************************************/\r
927 /*                     MODULE : DFLASH                                       */\r
928 /****************************************************************************/\r
929     struct DFLASH_tag {\r
930         union {                 /* Module Configuration Register */\r
931             vuint32_t R;\r
932             struct {\r
933                 vuint32_t EDC:1;\r
934                   vuint32_t:4;\r
935                 vuint32_t SIZE:3;\r
936                   vuint32_t:1;\r
937                 vuint32_t LAS:3;\r
938                   vuint32_t:3;\r
939                 vuint32_t MAS:1;\r
940                 vuint32_t EER:1;\r
941                 vuint32_t RWE:1;\r
942                   vuint32_t:1;\r
943                   vuint32_t:1;\r
944                 vuint32_t PEAS:1;\r
945                 vuint32_t DONE:1;\r
946                 vuint32_t PEG:1;\r
947                   vuint32_t:4;\r
948                 vuint32_t PGM:1;\r
949                 vuint32_t PSUS:1;\r
950                 vuint32_t ERS:1;\r
951                 vuint32_t ESUS:1;\r
952                 vuint32_t EHV:1;\r
953             } B;\r
954         } MCR;\r
955 \r
956         union {                 /* LML Register */\r
957             vuint32_t R;\r
958             struct {\r
959                 vuint32_t LME:1;\r
960                   vuint32_t:10;\r
961                 vuint32_t TSLK:1;\r
962                   vuint32_t:2;\r
963                 vuint32_t MLK:2;\r
964                 vuint32_t LLK:16;\r
965             } B;\r
966         } LML;\r
967 \r
968         union {                 /* HBL Register */\r
969             vuint32_t R;\r
970             struct {\r
971                 vuint32_t HBE:1;\r
972                   vuint32_t:23;\r
973                 vuint32_t HBLOCK:8;\r
974             } B;\r
975         } HBL;\r
976 \r
977         union {                 /* SLML Register */\r
978             vuint32_t R;\r
979             struct {\r
980                 vuint32_t SLE:1;\r
981                   vuint32_t:10;\r
982                 vuint32_t STSLK:1;\r
983                   vuint32_t:2;\r
984                 vuint32_t SMK:2;\r
985                 vuint32_t SLK:16;\r
986             } B;\r
987         } SLL;\r
988 \r
989         union {                 /* LMS Register */\r
990             vuint32_t R;\r
991             struct {\r
992                 vuint32_t:14;\r
993                 vuint32_t MSL:2;\r
994                 vuint32_t LSL:16;\r
995             } B;\r
996         } LMS;\r
997 \r
998         union {                 /* High Address Space Block Select Register */\r
999             vuint32_t R;\r
1000             struct {\r
1001                 vuint32_t:26;\r
1002                 vuint32_t HSL:6;\r
1003             } B;\r
1004         } HBS;\r
1005 \r
1006         union {                 /* Address Register */\r
1007             vuint32_t R;\r
1008             struct {\r
1009                 vuint32_t:10;\r
1010                 vuint32_t ADD:19;\r
1011                   vuint32_t:3;\r
1012             } B;\r
1013         } ADR;\r
1014 \r
1015         int32_t Dflash_reserved0[8];    /* {0x003C-0x001C}/0x4 = 0x08 */\r
1016 \r
1017         union {                 /* User Test Register 0 */\r
1018             vuint32_t R;\r
1019             struct {\r
1020                 vuint32_t UTE:1;\r
1021                   vuint32_t:7;\r
1022                 vuint32_t DSI:8;\r
1023                   vuint32_t:10;\r
1024                 vuint32_t MRE:1;\r
1025                 vuint32_t MRV:1;\r
1026                 vuint32_t EIE:1;\r
1027                 vuint32_t AIS:1;\r
1028                 vuint32_t AIE:1;\r
1029                 vuint32_t AID:1;\r
1030             } B;\r
1031         } UT0;\r
1032 \r
1033         union {                 /* User Test Register 1 */\r
1034             vuint32_t R;\r
1035             struct {\r
1036                 vuint32_t DAI:32;\r
1037             } B;\r
1038         } UT1;\r
1039 \r
1040         union {                 /* User Test Register 2 */\r
1041             vuint32_t R;\r
1042             struct {\r
1043                 vuint32_t DAI:32;\r
1044             } B;\r
1045         } UT2;\r
1046 \r
1047         union {                 /* User Multiple Input Signature Register 0-4 */\r
1048             vuint32_t R;\r
1049             struct {\r
1050                 vuint32_t MS:32;\r
1051             } B;\r
1052         } UMISR[5];\r
1053 \r
1054     };                          /* end of Dflash_tag */\r
1055 /****************************************************************************/\r
1056 /*                          MODULE : DSPI                                   */\r
1057 /****************************************************************************/\r
1058 #include "ip_dspi.h"\r
1059 \r
1060 /****************************************************************************/\r
1061 /*                          MODULE : ECSM                                   */\r
1062 /****************************************************************************/\r
1063     struct ECSM_tag {\r
1064 \r
1065         union {\r
1066             vuint16_t R;\r
1067         } PCT;                  /* ECSM Processor Core Type Register */\r
1068 \r
1069         union {\r
1070             vuint16_t R;\r
1071         } REV;                  /* ECSM  Revision Register */\r
1072 \r
1073         int32_t ECSM_reserved1;\r
1074 \r
1075         union {\r
1076             vuint32_t R;\r
1077         } IMC;                  /* ECSM IPS Module Configuration Register */\r
1078 \r
1079         int8_t ECSM_reserved2[7];\r
1080 \r
1081         union {\r
1082             vuint8_t R;\r
1083             struct {\r
1084                 vuint8_t ENBWCR:1;\r
1085                   vuint8_t:3;\r
1086                 vuint8_t PRILVL:4;\r
1087             } B;\r
1088         } MWCR;                 /* ECSM Miscellaneous Wakeup Control Register */\r
1089 \r
1090         int32_t ECSM_reserved3[2];\r
1091         int8_t ECSM_reserved4[3];\r
1092 \r
1093         union {\r
1094             vuint8_t R;\r
1095             struct {\r
1096                 vuint8_t FB0AI:1;\r
1097                 vuint8_t FB0SI:1;\r
1098                 vuint8_t FB1AI:1;\r
1099                 vuint8_t FB1SI:1;\r
1100                   vuint8_t:4;\r
1101             } B;\r
1102         } MIR;                  /* ECSM Miscellaneous Interrupt Register */\r
1103 \r
1104         int32_t ECSM_reserved5;\r
1105 \r
1106         union {\r
1107             vuint32_t R;\r
1108         } MUDCR;                /* ECSM Miscellaneous User-Defined Control Register */\r
1109 \r
1110         int32_t ECSM_reserved6[6];      /* (0x040- 0x028)/4 = 0x06 */\r
1111         int8_t ECSM_reserved7[3];\r
1112 \r
1113         union {\r
1114             vuint8_t R;\r
1115             struct {\r
1116                 vuint8_t:2;\r
1117                 vuint8_t ER1BR:1;\r
1118                 vuint8_t EF1BR:1;\r
1119                   vuint8_t:2;\r
1120                 vuint8_t ERNCR:1;\r
1121                 vuint8_t EFNCR:1;\r
1122             } B;\r
1123         } ECR;                  /* ECSM ECC Configuration Register */\r
1124 \r
1125         int8_t ECSM_reserved8[3];\r
1126 \r
1127         union {\r
1128             vuint8_t R;\r
1129             struct {\r
1130                 vuint8_t:2;\r
1131                 vuint8_t R1BC:1;\r
1132                 vuint8_t F1BC:1;\r
1133                   vuint8_t:2;\r
1134                 vuint8_t RNCE:1;\r
1135                 vuint8_t FNCE:1;\r
1136             } B;\r
1137         } ESR;                  /* ECSM ECC Status Register */\r
1138 \r
1139         int16_t ECSM_reserved9;\r
1140 \r
1141         union {\r
1142             vuint16_t R;\r
1143             struct {\r
1144                 vuint16_t:2;\r
1145                 vuint16_t FRC1BI:1;\r
1146                 vuint16_t FR11BI:1;\r
1147                   vuint16_t:2;\r
1148                 vuint16_t FRCNCI:1;\r
1149                 vuint16_t FR1NCI:1;\r
1150                   vuint16_t:1;\r
1151                 vuint16_t ERRBIT:7;\r
1152             } B;\r
1153         } EEGR;                 /* ECSM ECC Error Generation Register */\r
1154 \r
1155         int32_t ECSM_reserved10;\r
1156 \r
1157         union {\r
1158             vuint32_t R;\r
1159         } FEAR;                 /* ECSM Flash ECC Address Register */\r
1160 \r
1161         int16_t ECSM_reserved11;\r
1162 \r
1163         union {\r
1164             vuint8_t R;\r
1165             struct {\r
1166                 vuint8_t:4;\r
1167                 vuint8_t FEMR:4;\r
1168             } B;\r
1169         } FEMR;                 /* ECSM Flash ECC Master Number Register */\r
1170 \r
1171         union {\r
1172             vuint8_t R;\r
1173             struct {\r
1174                 vuint8_t WRITE:1;\r
1175                 vuint8_t SIZE:3;\r
1176                 vuint8_t PROTECTION:4;\r
1177             } B;\r
1178         } FEAT;                 /* ECSM Flash ECC Attributes Register */\r
1179 \r
1180         int32_t ECSM_reserved12;\r
1181 \r
1182         union {\r
1183             vuint32_t R;\r
1184         } FEDR;                 /* ECSM Flash ECC Data Register */\r
1185 \r
1186         union {\r
1187             vuint32_t R;\r
1188         } REAR;                 /* ECSM RAM ECC Address Register */\r
1189 \r
1190         int8_t ECSM_reserved13;\r
1191 \r
1192         union {\r
1193             vuint8_t R;\r
1194         } RESR;                 /* ECSM RAM ECC Address Register */\r
1195 \r
1196         union {\r
1197             vuint8_t R;\r
1198             struct {\r
1199                 vuint8_t:4;\r
1200                 vuint8_t REMR:4;\r
1201             } B;\r
1202         } REMR;                 /* ECSM RAM ECC Master Number Register */\r
1203 \r
1204         union {\r
1205             vuint8_t R;\r
1206             struct {\r
1207                 vuint8_t WRITE:1;\r
1208                 vuint8_t SIZE:3;\r
1209                 vuint8_t PROTECTION:4;\r
1210             } B;\r
1211         } REAT;                 /* ECSM RAM ECC Attributes Register */\r
1212 \r
1213         int32_t ECSM_reserved14;\r
1214 \r
1215         union {\r
1216             vuint32_t R;\r
1217         } REDR;                 /* ECSM RAM ECC Data Register */\r
1218 \r
1219     };                          /* end of ECSM_tag */\r
1220 /****************************************************************************/\r
1221 /*                          MODULE : EMIOS                                  */\r
1222 /****************************************************************************/\r
1223     struct EMIOS_CHANNEL_tag {\r
1224         union {\r
1225             vuint32_t R;\r
1226             struct {\r
1227                 vuint32_t:16;\r
1228                 vuint32_t CADR:16;\r
1229             } B;\r
1230         } CADR;                 /* Channel A Data Register */\r
1231 \r
1232         union {\r
1233             vuint32_t R;\r
1234             struct {\r
1235                 vuint32_t:16;\r
1236                 vuint32_t CBDR:16;\r
1237             } B;\r
1238         } CBDR;                 /* Channel B Data Register */\r
1239 \r
1240         union {\r
1241             vuint32_t R;\r
1242             struct {\r
1243                 vuint32_t:16;\r
1244                 vuint32_t CCNTR:16;\r
1245             } B;\r
1246         } CCNTR;                /* Channel Counter Register */\r
1247 \r
1248         union {\r
1249             vuint32_t R;\r
1250             struct {\r
1251                 vuint32_t FREN:1;\r
1252                 vuint32_t ODIS:1;\r
1253                 vuint32_t ODISSL:2;\r
1254                 vuint32_t UCPRE:2;\r
1255                 vuint32_t UCPEN:1;\r
1256                 vuint32_t DMA:1;\r
1257                   vuint32_t:1;\r
1258                 vuint32_t IF:4;\r
1259                 vuint32_t FCK:1;\r
1260                 vuint32_t FEN:1;\r
1261                   vuint32_t:3;\r
1262                 vuint32_t FORCMA:1;\r
1263                 vuint32_t FORCMB:1;\r
1264                   vuint32_t:1;\r
1265                 vuint32_t BSL:2;\r
1266                 vuint32_t EDSEL:1;\r
1267                 vuint32_t EDPOL:1;\r
1268                 vuint32_t MODE:7;\r
1269             } B;\r
1270         } CCR;                  /* Channel Control Register */\r
1271 \r
1272         union {\r
1273             vuint32_t R;\r
1274             struct {\r
1275                 vuint32_t OVR:1;\r
1276                   vuint32_t:15;\r
1277                 vuint32_t OVFL:1;\r
1278                   vuint32_t:12;\r
1279                 vuint32_t UCIN:1;\r
1280                 vuint32_t UCOUT:1;\r
1281                 vuint32_t FLAG:1;\r
1282             } B;\r
1283         } CSR;                  /* Channel Status Register */\r
1284 \r
1285         union {\r
1286             vuint32_t R;        /* Alternate Channel A Data Register */\r
1287         } ALTCADR;\r
1288 \r
1289         uint32_t emios_channel_reserved[2];\r
1290 \r
1291     };                          /* end of EMIOS_CHANNEL_tag */\r
1292 \r
1293     struct EMIOS_tag {\r
1294         union {\r
1295             vuint32_t R;\r
1296             struct {\r
1297                 vuint32_t:1;\r
1298                 vuint32_t MDIS:1;\r
1299                 vuint32_t FRZ:1;\r
1300                 vuint32_t GTBE:1;\r
1301                 vuint32_t ETB:1;\r
1302                 vuint32_t GPREN:1;\r
1303                   vuint32_t:6;\r
1304                 vuint32_t SRV:4;\r
1305                 vuint32_t GPRE:8;\r
1306                   vuint32_t:8;\r
1307             } B;\r
1308         } MCR;                  /* Module Configuration Register */\r
1309 \r
1310         union {\r
1311             vuint32_t R;\r
1312             struct {\r
1313                 vuint32_t:8;\r
1314                 vuint32_t F23:1;\r
1315                 vuint32_t F22:1;\r
1316                 vuint32_t F21:1;\r
1317                 vuint32_t F20:1;\r
1318                 vuint32_t F19:1;\r
1319                 vuint32_t F18:1;\r
1320                 vuint32_t F17:1;\r
1321                 vuint32_t F16:1;\r
1322                 vuint32_t F15:1;\r
1323                 vuint32_t F14:1;\r
1324                 vuint32_t F13:1;\r
1325                 vuint32_t F12:1;\r
1326                 vuint32_t F11:1;\r
1327                 vuint32_t F10:1;\r
1328                 vuint32_t F9:1;\r
1329                 vuint32_t F8:1;\r
1330                 vuint32_t F7:1;\r
1331                 vuint32_t F6:1;\r
1332                 vuint32_t F5:1;\r
1333                 vuint32_t F4:1;\r
1334                 vuint32_t F3:1;\r
1335                 vuint32_t F2:1;\r
1336                 vuint32_t F1:1;\r
1337                 vuint32_t F0:1;\r
1338             } B;\r
1339         } GFR;                  /* Global FLAG Register */\r
1340 \r
1341         union {\r
1342             vuint32_t R;\r
1343             struct {\r
1344                 vuint32_t:8;\r
1345                 vuint32_t OU23:1;\r
1346                 vuint32_t OU22:1;\r
1347                 vuint32_t OU21:1;\r
1348                 vuint32_t OU20:1;\r
1349                 vuint32_t OU19:1;\r
1350                 vuint32_t OU18:1;\r
1351                 vuint32_t OU17:1;\r
1352                 vuint32_t OU16:1;\r
1353                 vuint32_t OU15:1;\r
1354                 vuint32_t OU14:1;\r
1355                 vuint32_t OU13:1;\r
1356                 vuint32_t OU12:1;\r
1357                 vuint32_t OU11:1;\r
1358                 vuint32_t OU10:1;\r
1359                 vuint32_t OU9:1;\r
1360                 vuint32_t OU8:1;\r
1361                 vuint32_t OU7:1;\r
1362                 vuint32_t OU6:1;\r
1363                 vuint32_t OU5:1;\r
1364                 vuint32_t OU4:1;\r
1365                 vuint32_t OU3:1;\r
1366                 vuint32_t OU2:1;\r
1367                 vuint32_t OU1:1;\r
1368                 vuint32_t OU0:1;\r
1369             } B;\r
1370         } OUDR;                 /* Output Update Disable Register */\r
1371 \r
1372         union {\r
1373             vuint32_t R;\r
1374             struct {\r
1375                 vuint32_t:8;\r
1376                 vuint32_t CHDIS23:1;\r
1377                 vuint32_t CHDIS22:1;\r
1378                 vuint32_t CHDIS21:1;\r
1379                 vuint32_t CHDIS20:1;\r
1380                 vuint32_t CHDIS19:1;\r
1381                 vuint32_t CHDIS18:1;\r
1382                 vuint32_t CHDIS17:1;\r
1383                 vuint32_t CHDIS16:1;\r
1384                 vuint32_t CHDIS15:1;\r
1385                 vuint32_t CHDIS14:1;\r
1386                 vuint32_t CHDIS13:1;\r
1387                 vuint32_t CHDIS12:1;\r
1388                 vuint32_t CHDIS11:1;\r
1389                 vuint32_t CHDIS10:1;\r
1390                 vuint32_t CHDIS9:1;\r
1391                 vuint32_t CHDIS8:1;\r
1392                 vuint32_t CHDIS7:1;\r
1393                 vuint32_t CHDIS6:1;\r
1394                 vuint32_t CHDIS5:1;\r
1395                 vuint32_t CHDIS4:1;\r
1396                 vuint32_t CHDIS3:1;\r
1397                 vuint32_t CHDIS2:1;\r
1398                 vuint32_t CHDIS1:1;\r
1399                 vuint32_t CHDIS0:1;\r
1400             } B;\r
1401         } UCDIS;                /* Disable Channel Register */\r
1402 \r
1403         uint32_t emios_reserved1[4];\r
1404 \r
1405         struct EMIOS_CHANNEL_tag CH[28];\r
1406 \r
1407     };                          /* end of EMIOS_tag */\r
1408 /****************************************************************************/\r
1409 /*                          MODULE : FlexCAN                                */\r
1410 /****************************************************************************/\r
1411 #include "ip_flexcan.h"\r
1412 \r
1413 /****************************************************************************/\r
1414 /*                          MODULE : i2c                                    */\r
1415 /****************************************************************************/\r
1416     struct I2C_tag {\r
1417         union {\r
1418             vuint8_t R;\r
1419             struct {\r
1420                 vuint8_t ADR:7;\r
1421                   vuint8_t:1;\r
1422             } B;\r
1423         } IBAD;                 /* Module Bus Address Register */\r
1424 \r
1425         union {\r
1426             vuint8_t R;\r
1427             struct {\r
1428                 vuint8_t IBC:8;\r
1429             } B;\r
1430         } IBFD;                 /* Module Bus Frequency Register */\r
1431 \r
1432         union {\r
1433             vuint8_t R;\r
1434             struct {\r
1435                 vuint8_t MDIS:1;\r
1436                 vuint8_t IBIE:1;\r
1437                 vuint8_t MS:1;\r
1438                 vuint8_t TX:1;\r
1439                 vuint8_t NOACK:1;\r
1440                 vuint8_t RSTA:1;\r
1441                 vuint8_t DMAEN:1;\r
1442                 vuint8_t IBDOZE:1;\r
1443             } B;\r
1444         } IBCR;                 /* Module Bus Control Register */\r
1445 \r
1446         union {\r
1447             vuint8_t R;\r
1448             struct {\r
1449                 vuint8_t TCF:1;\r
1450                 vuint8_t IAAS:1;\r
1451                 vuint8_t IBB:1;\r
1452                 vuint8_t IBAL:1;\r
1453                   vuint8_t:1;\r
1454                 vuint8_t SRW:1;\r
1455                 vuint8_t IBIF:1;\r
1456                 vuint8_t RXAK:1;\r
1457             } B;\r
1458         } IBSR;                 /* Module Status Register */\r
1459 \r
1460         union {\r
1461             vuint8_t R;\r
1462             struct {\r
1463                 vuint8_t DATA:8;\r
1464             } B;\r
1465         } IBDR;                 /* Module Data Register */\r
1466 \r
1467         union {\r
1468             vuint8_t R;\r
1469             struct {\r
1470                 vuint8_t BIIE:1;\r
1471                   vuint8_t:7;\r
1472             } B;\r
1473         } IBIC;                 /* Module Interrupt Configuration Register */\r
1474 \r
1475     };                          /* end of I2C_tag */\r
1476 /****************************************************************************/\r
1477 /*                          MODULE : INTC                                   */\r
1478 /****************************************************************************/\r
1479     struct INTC_tag {\r
1480         union {\r
1481             vuint32_t R;\r
1482             struct {\r
1483                 vuint32_t:26;\r
1484                 vuint32_t VTES:1;\r
1485                   vuint32_t:4;\r
1486                 vuint32_t HVEN:1;\r
1487             } B;\r
1488         } MCR;                  /* Module Configuration Register */\r
1489 \r
1490         int32_t INTC_reserved1; /* (0x008 - 0x004)/4 = 0x01 */\r
1491 \r
1492         union {\r
1493             vuint32_t R;\r
1494             struct {\r
1495                 vuint32_t:28;\r
1496                 vuint32_t PRI:4;\r
1497             } B;\r
1498         } CPR;                  /* Current Priority Register */\r
1499 \r
1500         int32_t INTC_reserved2; /* (0x010 - 0x00C)/4 = 0x01 */\r
1501 \r
1502         union {\r
1503             vuint32_t R;\r
1504             struct {\r
1505                 vuint32_t VTBA:21;\r
1506                 vuint32_t INTVEC:9;\r
1507                   vuint32_t:2;\r
1508             } B;\r
1509         } IACKR;                /* Interrupt Acknowledge Register */\r
1510 \r
1511         int32_t INTC_reserved3; /* (0x018 - 0x014)/4 = 0x01 */\r
1512 \r
1513         union {\r
1514             vuint32_t R;\r
1515             struct {\r
1516                 vuint32_t:32;\r
1517             } B;\r
1518         } EOIR;                 /* End of Interrupt Register */\r
1519 \r
1520         int32_t INTC_reserved4; /* (0x020 - 0x01C)/4 = 0x01 */\r
1521 \r
1522         union {\r
1523             vuint8_t R;\r
1524             struct {\r
1525                 vuint8_t:6;\r
1526                 vuint8_t SET:1;\r
1527                 vuint8_t CLR:1;\r
1528             } B;\r
1529         } SSCIR[8];             /* Software Set/Clear Interruput Register */\r
1530 \r
1531         uint32_t intc_reserved5[6];     /* (0x040 - 0x028)/4 = 0x06 */\r
1532 \r
1533         union {\r
1534             vuint8_t R;\r
1535             struct {\r
1536                 vuint8_t:4;\r
1537                 vuint8_t PRI:4;\r
1538             } B;\r
1539         } PSR[512];             /* Software Set/Clear Interrupt Register */\r
1540 \r
1541     };                          /* end of INTC_tag */\r
1542 /****************************************************************************/\r
1543 /*                          MODULE : LINFLEX                                */\r
1544 /****************************************************************************/\r
1545 \r
1546     struct LINFLEX_tag {\r
1547 \r
1548         union {\r
1549             vuint32_t R;\r
1550             struct {\r
1551                 vuint32_t:16;\r
1552                 vuint32_t CCD:1;\r
1553                 vuint32_t CFD:1;\r
1554                 vuint32_t LASE:1;\r
1555                 vuint32_t AWUM:1;\r
1556                 vuint32_t MBL:4;\r
1557                 vuint32_t BF:1;\r
1558                 vuint32_t SLFM:1;\r
1559                 vuint32_t LBKM:1;\r
1560                 vuint32_t MME:1;\r
1561                 vuint32_t SBDT:1;\r
1562                 vuint32_t RBLM:1;\r
1563                 vuint32_t SLEEP:1;\r
1564                 vuint32_t INIT:1;\r
1565             } B;\r
1566         } LINCR1;               /* LINFLEX LIN Control Register 1 */\r
1567 \r
1568         union {\r
1569             vuint32_t R;\r
1570             struct {\r
1571                 vuint32_t:16;\r
1572                 vuint32_t SZIE:1;\r
1573                 vuint32_t OCIE:1;\r
1574                 vuint32_t BEIE:1;\r
1575                 vuint32_t CEIE:1;\r
1576                 vuint32_t HEIE:1;\r
1577                   vuint32_t:2;\r
1578                 vuint32_t FEIE:1;\r
1579                 vuint32_t BOIE:1;\r
1580                 vuint32_t LSIE:1;\r
1581                 vuint32_t WUIE:1;\r
1582                 vuint32_t DBFIE:1;\r
1583                 vuint32_t DBEIE:1;\r
1584                 vuint32_t DRIE:1;\r
1585                 vuint32_t DTIE:1;\r
1586                 vuint32_t HRIE:1;\r
1587             } B;\r
1588         } LINIER;               /* LINFLEX LIN Interrupt Enable Register */\r
1589 \r
1590         union {\r
1591             vuint32_t R;\r
1592             struct {\r
1593                 vuint32_t:16;\r
1594                 vuint32_t LINS:4;\r
1595                   vuint32_t:2;\r
1596                 vuint32_t RMB:1;\r
1597                   vuint32_t:1;\r
1598                 vuint32_t RBSY:1;\r
1599                 vuint32_t RPS:1;\r
1600                 vuint32_t WUF:1;\r
1601                 vuint32_t DBFF:1;\r
1602                 vuint32_t DBEF:1;\r
1603                 vuint32_t DRF:1;\r
1604                 vuint32_t DTF:1;\r
1605                 vuint32_t HRF:1;\r
1606             } B;\r
1607         } LINSR;                /* LINFLEX LIN Status Register */\r
1608 \r
1609         union {\r
1610             vuint32_t R;\r
1611             struct {\r
1612                 vuint32_t:16;\r
1613                 vuint32_t SZF:1;\r
1614                 vuint32_t OCF:1;\r
1615                 vuint32_t BEF:1;\r
1616                 vuint32_t CEF:1;\r
1617                 vuint32_t SFEF:1;\r
1618                 vuint32_t SDEF:1;\r
1619                 vuint32_t IDPEF:1;\r
1620                 vuint32_t FEF:1;\r
1621                 vuint32_t BOF:1;\r
1622                   vuint32_t:6;\r
1623                 vuint32_t NF:1;\r
1624             } B;\r
1625         } LINESR;               /* LINFLEX LIN Error Status Register */\r
1626 \r
1627         union {\r
1628             vuint32_t R;\r
1629             struct {\r
1630                 vuint32_t:16;\r
1631                 vuint32_t:1;\r
1632                 vuint32_t TDFL:2;\r
1633                   vuint32_t:1;\r
1634                 vuint32_t RDFL:2;\r
1635                   vuint32_t:4;\r
1636                 vuint32_t RXEN:1;\r
1637                 vuint32_t TXEN:1;\r
1638                 vuint32_t OP:1;\r
1639                 vuint32_t PCE:1;\r
1640                 vuint32_t WL:1;\r
1641                 vuint32_t UART:1;\r
1642             } B;\r
1643         } UARTCR;               /* LINFLEX UART Mode Control Register */\r
1644 \r
1645         union {\r
1646             vuint32_t R;\r
1647             struct {\r
1648                 vuint32_t:16;\r
1649                 vuint32_t SZF:1;\r
1650                 vuint32_t OCF:1;\r
1651                 vuint32_t PE:4;\r
1652                 vuint32_t RMB:1;\r
1653                 vuint32_t FEF:1;\r
1654                 vuint32_t BOF:1;\r
1655                 vuint32_t RPS:1;\r
1656                 vuint32_t WUF:1;\r
1657                   vuint32_t:2;\r
1658                 vuint32_t DRF:1;\r
1659                 vuint32_t DTF:1;\r
1660                 vuint32_t NF:1;\r
1661             } B;\r
1662         } UARTSR;               /* LINFLEX UART Mode Status Register */\r
1663 \r
1664         union {\r
1665             vuint32_t R;\r
1666             struct {\r
1667                 vuint32_t:16;\r
1668                 vuint32_t:5;\r
1669                 vuint32_t LTOM:1;\r
1670                 vuint32_t IOT:1;\r
1671                 vuint32_t TOCE:1;\r
1672                 vuint32_t CNT:8;\r
1673             } B;\r
1674         } LINTCSR;              /* LINFLEX LIN Time-Out Control Status Register */\r
1675 \r
1676         union {\r
1677             vuint32_t R;\r
1678             struct {\r
1679                 vuint32_t:16;\r
1680                 vuint32_t OC2:8;\r
1681                 vuint32_t OC1:8;\r
1682             } B;\r
1683         } LINOCR;               /* LINFLEX LIN Output Compare Register */\r
1684 \r
1685         union {\r
1686             vuint32_t R;\r
1687             struct {\r
1688                 vuint32_t:16;\r
1689                 vuint32_t:4;\r
1690                 vuint32_t RTO:4;\r
1691                   vuint32_t:1;\r
1692                 vuint32_t HTO:7;\r
1693             } B;\r
1694         } LINTOCR;              /* LINFLEX LIN Output Compare Register */\r
1695 \r
1696         union {\r
1697             vuint32_t R;\r
1698             struct {\r
1699                 vuint32_t:16;\r
1700                 vuint32_t:12;\r
1701                 vuint32_t DIV_F:4;\r
1702             } B;\r
1703         } LINFBRR;              /* LINFLEX LIN Fractional Baud Rate Register */\r
1704 \r
1705         union {\r
1706             vuint32_t R;\r
1707             struct {\r
1708                 vuint32_t:16;\r
1709                 vuint32_t:3;\r
1710                 vuint32_t DIV_M:13;\r
1711             } B;\r
1712         } LINIBRR;              /* LINFLEX LIN Integer Baud Rate Register */\r
1713 \r
1714         union {\r
1715             vuint32_t R;\r
1716             struct {\r
1717                 vuint32_t:16;\r
1718                 vuint32_t:8;\r
1719                 vuint32_t CF:8;\r
1720             } B;\r
1721         } LINCFR;               /* LINFLEX LIN Checksum Field Register */\r
1722 \r
1723         union {\r
1724             vuint32_t R;\r
1725             struct {\r
1726                 vuint32_t:16;\r
1727                 vuint32_t:1;\r
1728                 vuint32_t IOBE:1;\r
1729                 vuint32_t IOPE:1;\r
1730                 vuint32_t WURQ:1;\r
1731                 vuint32_t DDRQ:1;\r
1732                 vuint32_t DTRQ:1;\r
1733                 vuint32_t ABRQ:1;\r
1734                 vuint32_t HTRQ:1;\r
1735                   vuint32_t:8;\r
1736             } B;\r
1737         } LINCR2;               /* LINFLEX LIN Control Register 2 */\r
1738 \r
1739         union {\r
1740             vuint32_t R;\r
1741             struct {\r
1742                 vuint32_t:16;\r
1743                 vuint32_t DFL:6;\r
1744                 vuint32_t DIR:1;\r
1745                 vuint32_t CCS:1;\r
1746                   vuint32_t:2;\r
1747                 vuint32_t ID:6;\r
1748             } B;\r
1749         } BIDR;                 /* LINFLEX Buffer Identifier Register */\r
1750 \r
1751         union {\r
1752             vuint32_t R;\r
1753             struct {\r
1754                 vuint32_t DATA3:8;\r
1755                 vuint32_t DATA2:8;\r
1756                 vuint32_t DATA1:8;\r
1757                 vuint32_t DATA0:8;\r
1758             } B;\r
1759         } BDRL;                 /* LINFLEX Buffer Data Register Least Significant */\r
1760 \r
1761         union {\r
1762             vuint32_t R;\r
1763             struct {\r
1764                 vuint32_t DATA7:8;\r
1765                 vuint32_t DATA6:8;\r
1766                 vuint32_t DATA5:8;\r
1767                 vuint32_t DATA4:8;\r
1768             } B;\r
1769         } BDRM;                 /* LINFLEX Buffer Data Register Most Significant */\r
1770 \r
1771         union {\r
1772             vuint32_t R;\r
1773             struct {\r
1774                 vuint32_t:16;\r
1775                 vuint32_t:8;\r
1776                 vuint32_t FACT:8;\r
1777             } B;\r
1778         } IFER;                 /* LINFLEX Identifier Filter Enable Register */\r
1779 \r
1780         union {\r
1781             vuint32_t R;\r
1782             struct {\r
1783                 vuint32_t:16;\r
1784                 vuint32_t:12;\r
1785                 vuint32_t IFMI:4;\r
1786             } B;\r
1787         } IFMI;                 /* LINFLEX Identifier Filter Match Index Register */\r
1788 \r
1789         union {\r
1790             vuint32_t R;\r
1791             struct {\r
1792                 vuint32_t:16;\r
1793                 vuint32_t:12;\r
1794                 vuint32_t IFM:4;\r
1795             } B;\r
1796         } IFMR;                 /* LINFLEX Identifier Filter Mode Register */\r
1797 \r
1798         union {\r
1799             vuint32_t R;\r
1800             struct {\r
1801                 vuint32_t:16;\r
1802                 vuint32_t:3;\r
1803                 vuint32_t DFL:3;\r
1804                 vuint32_t DIR:1;\r
1805                 vuint32_t CCS:1;\r
1806                   vuint32_t:2;\r
1807                 vuint32_t ID:6;\r
1808             } B;\r
1809         } IFCR[16];             /* LINFLEX Identifier Filter Control Register 0-15 */\r
1810 \r
1811     };                          /* end of LINFLEX_tag */\r
1812 /****************************************************************************/\r
1813 /*                          MODULE : ME                                   */\r
1814 /****************************************************************************/\r
1815     struct ME_tag {\r
1816 \r
1817         union {\r
1818             vuint32_t R;\r
1819             struct {\r
1820                 vuint32_t S_CURRENTMODE:4;\r
1821                 vuint32_t S_MTRANS:1;\r
1822                 vuint32_t S_DC:1;\r
1823                   vuint32_t:2;\r
1824                 vuint32_t S_PDO:1;\r
1825                   vuint32_t:2;\r
1826                 vuint32_t S_MVR:1;\r
1827                 vuint32_t S_DFLA:2;\r
1828                 vuint32_t S_CFLA:2;\r
1829                   vuint32_t:9;\r
1830                 vuint32_t S_FMPLL:1;\r
1831                 vuint32_t S_FXOSC:1;\r
1832                 vuint32_t S_FIRC:1;\r
1833                 vuint32_t S_SYSCLK:4;\r
1834             } B;\r
1835         } GS;                   /* Global Status Register */\r
1836 \r
1837         union {\r
1838             vuint32_t R;\r
1839             struct {\r
1840                 vuint32_t TARGET_MODE:4;\r
1841                   vuint32_t:12;\r
1842                 vuint32_t KEY:16;\r
1843             } B;\r
1844         } MCTL;                 /* Mode Control Register */\r
1845 \r
1846         union {\r
1847             vuint32_t R;\r
1848             struct {\r
1849                 vuint32_t:18;\r
1850                 vuint32_t STANDBY0:1;\r
1851                   vuint32_t:2;\r
1852                 vuint32_t STOP0:1;\r
1853                   vuint32_t:1;\r
1854                 vuint32_t HALT0:1;\r
1855                 vuint32_t RUN3:1;\r
1856                 vuint32_t RUN2:1;\r
1857                 vuint32_t RUN1:1;\r
1858                 vuint32_t RUN0:1;\r
1859                 vuint32_t DRUN:1;\r
1860                 vuint32_t SAFE:1;\r
1861                 vuint32_t TEST:1;\r
1862                 vuint32_t RESET:1;\r
1863             } B;\r
1864         } MER;                  /* Mode Enable Register */\r
1865 \r
1866         union {\r
1867             vuint32_t R;\r
1868             struct {\r
1869                 vuint32_t:28;\r
1870                 vuint32_t I_CONF:1;\r
1871                 vuint32_t I_MODE:1;\r
1872                 vuint32_t I_SAFE:1;\r
1873                 vuint32_t I_MTC:1;\r
1874             } B;\r
1875         } IS;                   /* Interrupt Status Register */\r
1876 \r
1877         union {\r
1878             vuint32_t R;\r
1879             struct {\r
1880                 vuint32_t:28;\r
1881                 vuint32_t M_CONF:1;\r
1882                 vuint32_t M_MODE:1;\r
1883                 vuint32_t M_SAFE:1;\r
1884                 vuint32_t M_MTC:1;\r
1885             } B;\r
1886         } IM;                   /* Interrupt Mask Register */\r
1887 \r
1888         union {\r
1889             vuint32_t R;\r
1890             struct {\r
1891                 vuint32_t:27;\r
1892                 vuint32_t S_MTI:1;\r
1893                 vuint32_t S_MRI:1;\r
1894                 vuint32_t S_DMA:1;\r
1895                 vuint32_t S_NMA:1;\r
1896                 vuint32_t S_SEA:1;\r
1897             } B;\r
1898         } IMTS;                 /* Invalid Mode Transition Status Register */\r
1899 \r
1900         union {\r
1901             vuint32_t R;\r
1902             struct {\r
1903                 vuint32_t:8;\r
1904                 vuint32_t MPH_BUSY:1;\r
1905                   vuint32_t:2;\r
1906                 vuint32_t PMC_PROG:1;\r
1907                 vuint32_t CORE_DBG:1;\r
1908                   vuint32_t:2;\r
1909                 vuint32_t SMR:1;\r
1910                   vuint32_t:1;\r
1911                 vuint32_t FMPLL_SC:1;\r
1912                 vuint32_t FXOSC_SC:1;\r
1913                 vuint32_t FIRC_SC:1;\r
1914                   vuint32_t:1;\r
1915                 vuint32_t SYSCLK_SW:1;\r
1916                 vuint32_t DFLASH_SC:1;\r
1917                 vuint32_t CFLASH_SC:1;\r
1918                 vuint32_t CDP_PRPH_0_143:1;\r
1919                   vuint32_t:3;\r
1920                 vuint32_t CDP_PRPH_96_127:1;\r
1921                 vuint32_t CDP_PRPH_64_95:1;\r
1922                 vuint32_t CDP_PRPH_32_63:1;\r
1923                 vuint32_t CDP_PRPH_0_31:1;\r
1924             } B;\r
1925         } DMTS;                 /* Invalid Mode Transition Status Register */\r
1926 \r
1927         int32_t ME_reserved0;\r
1928 \r
1929         union {\r
1930             vuint32_t R;\r
1931             struct {\r
1932                 vuint32_t:8;\r
1933                 vuint32_t PDO:1;\r
1934                   vuint32_t:2;\r
1935                 vuint32_t MVRON:1;\r
1936                 vuint32_t DFLAON:2;\r
1937                 vuint32_t CFLAON:2;\r
1938                   vuint32_t:9;\r
1939                 vuint32_t FMPLLON:1;\r
1940                 vuint32_t FXOSC0ON:1;\r
1941                 vuint32_t FIRCON:1;\r
1942                 vuint32_t SYSCLK:4;\r
1943             } B;\r
1944         } RESET;                /* Reset Mode Configuration Register */\r
1945 \r
1946         union {\r
1947             vuint32_t R;\r
1948             struct {\r
1949                 vuint32_t:8;\r
1950                 vuint32_t PDO:1;\r
1951                   vuint32_t:2;\r
1952                 vuint32_t MVRON:1;\r
1953                 vuint32_t DFLAON:2;\r
1954                 vuint32_t CFLAON:2;\r
1955                   vuint32_t:9;\r
1956                 vuint32_t FMPLLON:1;\r
1957                 vuint32_t FXOSC0ON:1;\r
1958                 vuint32_t FIRCON:1;\r
1959                 vuint32_t SYSCLK:4;\r
1960             } B;\r
1961         } TEST;                 /* Test Mode Configuration Register */\r
1962 \r
1963         union {\r
1964             vuint32_t R;\r
1965             struct {\r
1966                 vuint32_t:8;\r
1967                 vuint32_t PDO:1;\r
1968                   vuint32_t:2;\r
1969                 vuint32_t MVRON:1;\r
1970                 vuint32_t DFLAON:2;\r
1971                 vuint32_t CFLAON:2;\r
1972                   vuint32_t:9;\r
1973                 vuint32_t FMPLLON:1;\r
1974                 vuint32_t FXOSC0ON:1;\r
1975                 vuint32_t FIRCON:1;\r
1976                 vuint32_t SYSCLK:4;\r
1977             } B;\r
1978         } SAFE;                 /* Safe Mode Configuration Register */\r
1979 \r
1980         union {\r
1981             vuint32_t R;\r
1982             struct {\r
1983                 vuint32_t:8;\r
1984                 vuint32_t PDO:1;\r
1985                   vuint32_t:2;\r
1986                 vuint32_t MVRON:1;\r
1987                 vuint32_t DFLAON:2;\r
1988                 vuint32_t CFLAON:2;\r
1989                   vuint32_t:9;\r
1990                 vuint32_t FMPLLON:1;\r
1991                 vuint32_t FXOSC0ON:1;\r
1992                 vuint32_t FIRCON:1;\r
1993                 vuint32_t SYSCLK:4;\r
1994             } B;\r
1995         } DRUN;                 /* DRUN Mode Configuration Register */\r
1996 \r
1997         union {\r
1998             vuint32_t R;\r
1999             struct {\r
2000                 vuint32_t:8;\r
2001                 vuint32_t PDO:1;\r
2002                   vuint32_t:2;\r
2003                 vuint32_t MVRON:1;\r
2004                 vuint32_t DFLAON:2;\r
2005                 vuint32_t CFLAON:2;\r
2006                   vuint32_t:9;\r
2007                 vuint32_t FMPLLON:1;\r
2008                 vuint32_t FXOSC0ON:1;\r
2009                 vuint32_t FIRCON:1;\r
2010                 vuint32_t SYSCLK:4;\r
2011             } B;\r
2012         } RUN[4];               /* RUN 0->4 Mode Configuration Register */\r
2013 \r
2014         union {\r
2015             vuint32_t R;\r
2016             struct {\r
2017                 vuint32_t:8;\r
2018                 vuint32_t PDO:1;\r
2019                   vuint32_t:2;\r
2020                 vuint32_t MVRON:1;\r
2021                 vuint32_t DFLAON:2;\r
2022                 vuint32_t CFLAON:2;\r
2023                   vuint32_t:9;\r
2024                 vuint32_t FMPLLON:1;\r
2025                 vuint32_t FXOSC0ON:1;\r
2026                 vuint32_t FIRCON:1;\r
2027                 vuint32_t SYSCLK:4;\r
2028             } B;\r
2029         } HALT0;                /* HALT0 Mode Configuration Register */\r
2030 \r
2031         int32_t ME_reserved1;\r
2032 \r
2033         union {\r
2034             vuint32_t R;\r
2035             struct {\r
2036                 vuint32_t:8;\r
2037                 vuint32_t PDO:1;\r
2038                   vuint32_t:2;\r
2039                 vuint32_t MVRON:1;\r
2040                 vuint32_t DFLAON:2;\r
2041                 vuint32_t CFLAON:2;\r
2042                   vuint32_t:9;\r
2043                 vuint32_t FMPLLON:1;\r
2044                 vuint32_t FXOSC0ON:1;\r
2045                 vuint32_t FIRCON:1;\r
2046                 vuint32_t SYSCLK:4;\r
2047             } B;\r
2048         } STOP0;                /* STOP0 Mode Configuration Register */\r
2049 \r
2050         int32_t ME_reserved2[2];\r
2051 \r
2052         union {\r
2053             vuint32_t R;\r
2054             struct {\r
2055                 vuint32_t:8;\r
2056                 vuint32_t PDO:1;\r
2057                   vuint32_t:2;\r
2058                 vuint32_t MVRON:1;\r
2059                 vuint32_t DFLAON:2;\r
2060                 vuint32_t CFLAON:2;\r
2061                   vuint32_t:9;\r
2062                 vuint32_t FMPLLON:1;\r
2063                 vuint32_t FXOSC0ON:1;\r
2064                 vuint32_t FIRCON:1;\r
2065                 vuint32_t SYSCLK:4;\r
2066             } B;\r
2067         } STANDBY0;             /* STANDBY0 Mode Configuration Register */\r
2068 \r
2069         int32_t ME_reserved3[2];\r
2070 \r
2071         union {\r
2072             vuint32_t R;\r
2073             struct {\r
2074                 vuint32_t:10;\r
2075                 vuint32_t S_FLEXCAN5:1;\r
2076                 vuint32_t S_FLEXCAN4:1;\r
2077                 vuint32_t S_FLEXCAN3:1;\r
2078                 vuint32_t S_FLEXCAN2:1;\r
2079                 vuint32_t S_FLEXCAN1:1;\r
2080                 vuint32_t S_FLEXCAN0:1;\r
2081                   vuint32_t:9;\r
2082                 vuint32_t S_DSPI2:1;\r
2083                 vuint32_t S_DSPI1:1;\r
2084                 vuint32_t S_DSPI0:1;\r
2085                   vuint32_t:4;\r
2086             } B;\r
2087         } PS0;                  /* Peripheral Status Register 0 */\r
2088 \r
2089         union {\r
2090             vuint32_t R;\r
2091             struct {\r
2092                 vuint32_t:3;\r
2093                 vuint32_t S_CANSAMPLER:1;\r
2094                   vuint32_t:2;\r
2095                 vuint32_t S_CTU:1;\r
2096                   vuint32_t:5;\r
2097                 vuint32_t S_LINFLEX3:1;\r
2098                 vuint32_t S_LINFLEX2:1;\r
2099                 vuint32_t S_LINFLEX1:1;\r
2100                 vuint32_t S_LINFLEX0:1;\r
2101                   vuint32_t:3;\r
2102                 vuint32_t S_I2C:1;\r
2103                   vuint32_t:11;\r
2104                 vuint32_t S_ADC:1;\r
2105             } B;\r
2106         } PS1;                  /* Peripheral Status Register 1 */\r
2107 \r
2108         union {\r
2109             vuint32_t R;\r
2110             struct {\r
2111                 vuint32_t:3;\r
2112                 vuint32_t S_PIT_RTI:1;\r
2113                 vuint32_t S_RTC_API:1;\r
2114                   vuint32_t:18;\r
2115                 vuint32_t S_EMIOS:1;\r
2116                   vuint32_t:2;\r
2117                 vuint32_t S_WKUP:1;\r
2118                 vuint32_t S_SIU:1;\r
2119                   vuint32_t:4;\r
2120             } B;\r
2121         } PS2;                  /* Peripheral Status Register 2 */\r
2122 \r
2123         union {\r
2124             vuint32_t R;\r
2125             struct {\r
2126                 vuint32_t:23;\r
2127                 vuint32_t S_CMU:1;\r
2128                   vuint32_t:8;\r
2129             } B;\r
2130         } PS3;                  /* Peripheral Status Register 3 */\r
2131 \r
2132         int32_t ME_reserved4[4];\r
2133 \r
2134         union {\r
2135             vuint32_t R;\r
2136             struct {\r
2137                 vuint32_t:24;\r
2138                 vuint32_t RUN3:1;\r
2139                 vuint32_t RUN2:1;\r
2140                 vuint32_t RUN1:1;\r
2141                 vuint32_t RUN0:1;\r
2142                 vuint32_t DRUN:1;\r
2143                 vuint32_t SAFE:1;\r
2144                 vuint32_t TEST:1;\r
2145                 vuint32_t RESET:1;\r
2146             } B;\r
2147         } RUNPC[8];             /* RUN Peripheral Configuration 0->7 Register */\r
2148 \r
2149         union {\r
2150             vuint32_t R;\r
2151             struct {\r
2152                 vuint32_t:18;\r
2153                 vuint32_t STANDBY0:1;\r
2154                   vuint32_t:2;\r
2155                 vuint32_t STOP0:1;\r
2156                   vuint32_t:1;\r
2157                 vuint32_t HALT0:1;\r
2158                   vuint32_t:8;\r
2159             } B;\r
2160         } LPPC[8];              /* Low Power Peripheral Configuration 0->7 Register */\r
2161 \r
2162         union {\r
2163             vuint8_t R;\r
2164             struct {\r
2165                 vuint8_t:1;\r
2166                 vuint8_t DBG_F:1;\r
2167                 vuint8_t LP_CFG:3;\r
2168                 vuint8_t RUN_CFG:3;\r
2169             } B;\r
2170         } PCTL[144];            /* Peripheral Control 0->143 Register */\r
2171 \r
2172     };                          /* end of ME_tag */\r
2173 /****************************************************************************/\r
2174 /*                          MODULE : MPU                                    */\r
2175 /****************************************************************************/\r
2176     struct MPU_tag {\r
2177         union {\r
2178             vuint32_t R;\r
2179             struct {\r
2180                 vuint32_t SPERR:8;\r
2181                   vuint32_t:4;\r
2182                 vuint32_t HRL:4;\r
2183                 vuint32_t NSP:4;\r
2184                 vuint32_t NGRD:4;\r
2185                   vuint32_t:7;\r
2186                 vuint32_t VLD:1;\r
2187             } B;\r
2188         } CESR;                 /* Module Control/Error Status Register */\r
2189 \r
2190         uint32_t mpu_reserved1[3];      /* (0x010 - 0x004)/4 = 0x03 */\r
2191 \r
2192         union {\r
2193             vuint32_t R;\r
2194             struct {\r
2195                 vuint32_t EADDR:32;\r
2196             } B;\r
2197         } EAR0;\r
2198 \r
2199         union {\r
2200             vuint32_t R;\r
2201             struct {\r
2202                 vuint32_t EACD:16;\r
2203                 vuint32_t EPID:8;\r
2204                 vuint32_t EMN:4;\r
2205                 vuint32_t EATTR:3;\r
2206                 vuint32_t ERW:1;\r
2207             } B;\r
2208         } EDR0;\r
2209 \r
2210         union {\r
2211             vuint32_t R;\r
2212             struct {\r
2213                 vuint32_t EADDR:32;\r
2214             } B;\r
2215         } EAR1;\r
2216 \r
2217         union {\r
2218             vuint32_t R;\r
2219             struct {\r
2220                 vuint32_t EACD:16;\r
2221                 vuint32_t EPID:8;\r
2222                 vuint32_t EMN:4;\r
2223                 vuint32_t EATTR:3;\r
2224                 vuint32_t ERW:1;\r
2225             } B;\r
2226         } EDR1;\r
2227 \r
2228         union {\r
2229             vuint32_t R;\r
2230             struct {\r
2231                 vuint32_t EADDR:32;\r
2232             } B;\r
2233         } EAR2;\r
2234 \r
2235         union {\r
2236             vuint32_t R;\r
2237             struct {\r
2238                 vuint32_t EACD:16;\r
2239                 vuint32_t EPID:8;\r
2240                 vuint32_t EMN:4;\r
2241                 vuint32_t EATTR:3;\r
2242                 vuint32_t ERW:1;\r
2243             } B;\r
2244         } EDR2;\r
2245 \r
2246         union {\r
2247             vuint32_t R;\r
2248             struct {\r
2249                 vuint32_t EADDR:32;\r
2250             } B;\r
2251         } EAR3;\r
2252 \r
2253         union {\r
2254             vuint32_t R;\r
2255             struct {\r
2256                 vuint32_t EACD:16;\r
2257                 vuint32_t EPID:8;\r
2258                 vuint32_t EMN:4;\r
2259                 vuint32_t EATTR:3;\r
2260                 vuint32_t ERW:1;\r
2261             } B;\r
2262         } EDR3;\r
2263 \r
2264         uint32_t mpu_reserved2[244];    /* (0x0400 - 0x0030)/4 = 0x0F4 */\r
2265 \r
2266         struct {\r
2267             union {\r
2268                 vuint32_t R;\r
2269                 struct {\r
2270                     vuint32_t SRTADDR:27;\r
2271                       vuint32_t:5;\r
2272                 } B;\r
2273             } WORD0;            /* Region Descriptor n Word 0 */\r
2274 \r
2275             union {\r
2276                 vuint32_t R;\r
2277                 struct {\r
2278                     vuint32_t ENDADDR:27;\r
2279                       vuint32_t:5;\r
2280                 } B;\r
2281             } WORD1;            /* Region Descriptor n Word 1 */\r
2282 \r
2283             union {\r
2284                 vuint32_t R;\r
2285                 struct {\r
2286                     vuint32_t M7RE:1;\r
2287                     vuint32_t M7WE:1;\r
2288                     vuint32_t M6RE:1;\r
2289                     vuint32_t M6WE:1;\r
2290                     vuint32_t M5RE:1;\r
2291                     vuint32_t M5WE:1;\r
2292                     vuint32_t M4RE:1;\r
2293                     vuint32_t M4WE:1;\r
2294                     vuint32_t M3PE:1;\r
2295                     vuint32_t M3SM:2;\r
2296                     vuint32_t M3UM:3;\r
2297                     vuint32_t M2PE:1;\r
2298                     vuint32_t M2SM:2;\r
2299                     vuint32_t M2UM:3;\r
2300                     vuint32_t M1PE:1;\r
2301                     vuint32_t M1SM:2;\r
2302                     vuint32_t M1UM:3;\r
2303                     vuint32_t M0PE:1;\r
2304                     vuint32_t M0SM:2;\r
2305                     vuint32_t M0UM:3;\r
2306                 } B;\r
2307             } WORD2;            /* Region Descriptor n Word 2 */\r
2308 \r
2309             union {\r
2310                 vuint32_t R;\r
2311                 struct {\r
2312                     vuint32_t PID:8;\r
2313                     vuint32_t PIDMASK:8;\r
2314                       vuint32_t:15;\r
2315                     vuint32_t VLD:1;\r
2316                 } B;\r
2317             } WORD3;            /* Region Descriptor n Word 3 */\r
2318 \r
2319         } RGD[16];\r
2320 \r
2321         uint32_t mpu_reserved3[192];    /* (0x0800 - 0x0500)/4 = 0x0C0 */\r
2322 \r
2323         union {\r
2324             vuint32_t R;\r
2325             struct {\r
2326                 vuint32_t M7RE:1;\r
2327                 vuint32_t M7WE:1;\r
2328                 vuint32_t M6RE:1;\r
2329                 vuint32_t M6WE:1;\r
2330                 vuint32_t M5RE:1;\r
2331                 vuint32_t M5WE:1;\r
2332                 vuint32_t M4RE:1;\r
2333                 vuint32_t M4WE:1;\r
2334                 vuint32_t M3PE:1;\r
2335                 vuint32_t M3SM:2;\r
2336                 vuint32_t M3UM:3;\r
2337                 vuint32_t M2PE:1;\r
2338                 vuint32_t M2SM:2;\r
2339                 vuint32_t M2UM:3;\r
2340                 vuint32_t M1PE:1;\r
2341                 vuint32_t M1SM:2;\r
2342                 vuint32_t M1UM:3;\r
2343                 vuint32_t M0PE:1;\r
2344                 vuint32_t M0SM:2;\r
2345                 vuint32_t M0UM:3;\r
2346             } B;\r
2347         } RGDAAC[16];           /* Region Descriptor Alternate Access Control n */\r
2348 \r
2349     };                          /* end of MPU_tag */\r
2350 /****************************************************************************/\r
2351 /*                          MODULE : PCU                                   */\r
2352 /****************************************************************************/\r
2353     struct PCU_tag {\r
2354 \r
2355         union {\r
2356             vuint32_t R;\r
2357             struct {\r
2358                 vuint32_t:18;\r
2359                 vuint32_t STBY0:1;\r
2360                   vuint32_t:2;\r
2361                 vuint32_t STOP0:1;\r
2362                   vuint32_t:1;\r
2363                 vuint32_t HALT0:1;\r
2364                 vuint32_t RUN3:1;\r
2365                 vuint32_t RUN2:1;\r
2366                 vuint32_t RUN1:1;\r
2367                 vuint32_t RUN0:1;\r
2368                 vuint32_t DRUN:1;\r
2369                 vuint32_t SAFE:1;\r
2370                 vuint32_t TEST:1;\r
2371                 vuint32_t RST:1;\r
2372             } B;\r
2373         } PCONF[3];             /* Power domain 0-2 configuration register */\r
2374 \r
2375         int32_t PCU_reserved0[13];      /* (0x040 - 0x00C)/4 = 0x0D */\r
2376 \r
2377         union {\r
2378             vuint32_t R;\r
2379             struct {\r
2380                 vuint32_t:29;\r
2381                 vuint32_t PD2:1;\r
2382                 vuint32_t PD1:1;\r
2383                 vuint32_t PD0:1;\r
2384             } B;\r
2385         } PSTAT;                /* Power Domain Status Register */\r
2386 \r
2387         int32_t PCU_reserved1[15];      /* {0x0080-0x0044}/0x4 = 0xF */\r
2388 \r
2389         union {\r
2390             vuint32_t R;\r
2391             struct {\r
2392                 vuint32_t:15;\r
2393                 vuint32_t MASK_LVDHV5:1;\r
2394             } B;\r
2395         } VCTL;                 /* Voltage Regulator Control Register */\r
2396 \r
2397     };                          /* end of PCU_tag */\r
2398 /****************************************************************************/\r
2399 /*                          MODULE : pit                                    */\r
2400 /****************************************************************************/\r
2401     struct PIT_tag {\r
2402         union {\r
2403             vuint32_t R;\r
2404             struct {\r
2405                 vuint32_t:30;\r
2406                 vuint32_t MDIS:1;\r
2407                 vuint32_t FRZ:1;\r
2408             } B;\r
2409         } MCR;\r
2410 \r
2411         uint32_t pit_reserved1[63];     /* (0x0100 - 0x0004)/4 = 0x3F */\r
2412 \r
2413         struct {\r
2414             union {\r
2415                 vuint32_t R;\r
2416                 struct {\r
2417                     vuint32_t TSV:32;\r
2418                 } B;\r
2419             } LDVAL;\r
2420 \r
2421             union {\r
2422                 vuint32_t R;\r
2423                 struct {\r
2424                     vuint32_t TVL:32;\r
2425                 } B;\r
2426             } CVAL;\r
2427 \r
2428             union {\r
2429                 vuint32_t R;\r
2430                 struct {\r
2431                     vuint32_t:30;\r
2432                     vuint32_t TIE:1;\r
2433                     vuint32_t TEN:1;\r
2434                 } B;\r
2435             } TCTRL;\r
2436 \r
2437             union {\r
2438                 vuint32_t R;\r
2439                 struct {\r
2440                     vuint32_t:31;\r
2441                     vuint32_t TIF:1;\r
2442                 } B;\r
2443             } TFLG;\r
2444         } CH[6];\r
2445 \r
2446     };                          /* end of PIT_tag */\r
2447 /****************************************************************************/\r
2448 /*                          MODULE : RGM                                   */\r
2449 /****************************************************************************/\r
2450     struct RGM_tag {\r
2451 \r
2452         union {\r
2453             vuint16_t R;\r
2454             struct {\r
2455                 vuint16_t F_EXR:1;\r
2456                   vuint16_t:6;\r
2457                 vuint16_t F_FLASH:1;\r
2458                 vuint16_t F_LVD45:1;\r
2459                 vuint16_t F_CMU_FHL:1;\r
2460                 vuint16_t F_CMU_OLR:1;\r
2461                 vuint16_t F_FMPLL:1;\r
2462                 vuint16_t F_CHKSTOP:1;\r
2463                 vuint16_t F_SOFT:1;\r
2464                 vuint16_t F_CORE:1;\r
2465                 vuint16_t F_JTAG:1;\r
2466             } B;\r
2467         } FES;                  /* Functional Event Status */\r
2468 \r
2469         union {\r
2470             vuint16_t R;\r
2471             struct {\r
2472                 vuint16_t F_POR:1;\r
2473                   vuint16_t:11;\r
2474                 vuint16_t F_LVD27:1;\r
2475                 vuint16_t F_SWT:1;\r
2476                 vuint16_t F_LVD12_PD1:1;\r
2477                 vuint16_t F_LVD12_PD0:1;\r
2478             } B;\r
2479         } DES;                  /* Destructive Event Status */\r
2480 \r
2481         union {\r
2482             vuint16_t R;\r
2483             struct {\r
2484                 vuint16_t D_EXR:1;\r
2485                   vuint16_t:6;\r
2486                 vuint16_t D_FLASH:1;\r
2487                 vuint16_t D_LVD45:1;\r
2488                 vuint16_t D_CMU_FHL:1;\r
2489                 vuint16_t D_CMU_OLR:1;\r
2490                 vuint16_t D_FMPLL:1;\r
2491                 vuint16_t D_CHKSTOP:1;\r
2492                 vuint16_t D_SOFT:1;\r
2493                 vuint16_t D_CORE:1;\r
2494                 vuint16_t D_JTAG:1;\r
2495             } B;\r
2496         } FERD;                 /* Functional Event Reset Disable */\r
2497 \r
2498         union {\r
2499             vuint16_t R;\r
2500             struct {\r
2501                 vuint16_t D_POR:1;\r
2502                   vuint16_t:11;\r
2503                 vuint16_t D_LVD27:1;\r
2504                 vuint16_t D_SWT:1;\r
2505                 vuint16_t D_LVD12_PD1:1;\r
2506                 vuint16_t D_LVD12_PD0:1;\r
2507             } B;\r
2508         } DERD;                 /* Destructive Event Reset Disable */\r
2509 \r
2510         int16_t RGM_reserved0[4];\r
2511 \r
2512         union {\r
2513             vuint16_t R;\r
2514             struct {\r
2515                 vuint16_t AR_EXR:1;\r
2516                   vuint16_t:6;\r
2517                 vuint16_t AR_FLASH:1;\r
2518                 vuint16_t AR_LVD45:1;\r
2519                 vuint16_t AR_CMU_FHL:1;\r
2520                 vuint16_t AR_CMU_OLR:1;\r
2521                 vuint16_t AR_FMPLL:1;\r
2522                 vuint16_t AR_CHKSTOP:1;\r
2523                 vuint16_t AR_SOFT:1;\r
2524                 vuint16_t AR_CORE:1;\r
2525                 vuint16_t AR_JTAG:1;\r
2526             } B;\r
2527         } FEAR;                 /* Functional Event Alternate Request */\r
2528 \r
2529         union {\r
2530             vuint16_t R;\r
2531             struct {\r
2532                 vuint16_t:12;\r
2533                 vuint16_t AR_LVD27:1;\r
2534                 vuint16_t AR_SWT:1;\r
2535                 vuint16_t AR_LVD12_PD1:1;\r
2536                 vuint16_t AR_LVD12_PD0:1;\r
2537             } B;\r
2538         } DEAR;                 /* Destructive Event Alternate Request */\r
2539 \r
2540         int16_t RGM_reserved1[2];\r
2541 \r
2542         union {\r
2543             vuint16_t R;\r
2544             struct {\r
2545                 vuint16_t:8;\r
2546                 vuint16_t SS_LVD45:1;\r
2547                 vuint16_t SS_CMU_FHL:1;\r
2548                 vuint16_t SS_CMU_OLR:1;\r
2549                 vuint16_t SS_PLL:1;\r
2550                 vuint16_t SS_CHKSTOP:1;\r
2551                 vuint16_t SS_SOFT:1;\r
2552                 vuint16_t SS_CORE:1;\r
2553                 vuint16_t SS_JTAG:1;\r
2554             } B;\r
2555         } FESS;                 /* Functional Event Short Sequence */\r
2556 \r
2557         union {\r
2558             vuint16_t R;\r
2559             struct {\r
2560                 vuint16_t:8;\r
2561                 vuint16_t BOOT_FROM_BKP_RAM:1;\r
2562                   vuint16_t:7;\r
2563             } B;\r
2564         } STDBY;                /* STANDBY reset sequence */\r
2565 \r
2566         union {\r
2567             vuint16_t R;\r
2568             struct {\r
2569                 vuint16_t BE_EXR:1;\r
2570                   vuint16_t:6;\r
2571                 vuint16_t BE_FLASH:1;\r
2572                 vuint16_t BE_LVD45:1;\r
2573                 vuint16_t BE_CMU_FHL:1;\r
2574                 vuint16_t BE_CMU_OLR:1;\r
2575                 vuint16_t BE_FMPLL:1;\r
2576                 vuint16_t BE_CHKSTOP:1;\r
2577                 vuint16_t BE_SOFT:1;\r
2578                 vuint16_t BE_CORE:1;\r
2579                 vuint16_t BE_JTAG:1;\r
2580             } B;\r
2581         } FBRE;                 /* Functional Bidirectional Reset Enable */\r
2582 \r
2583     };                          /* end of RGM_tag */\r
2584 /****************************************************************************/\r
2585 /*                          MODULE : RTC                                   */\r
2586 /****************************************************************************/\r
2587     struct RTC_tag {\r
2588         union {\r
2589             vuint32_t R;\r
2590             struct {\r
2591                 vuint32_t SUPV:1;\r
2592                   vuint32_t:31;\r
2593             } B;\r
2594         } RTCSUPV;              /* RTC Supervisor Control Register */\r
2595 \r
2596         union {\r
2597             vuint32_t R;\r
2598             struct {\r
2599                 vuint32_t CNTEN:1;\r
2600                 vuint32_t RTCIE:1;\r
2601                 vuint32_t FRZEN:1;\r
2602                 vuint32_t ROVREN:1;\r
2603                 vuint32_t RTCVAL:12;\r
2604                 vuint32_t APIEN:1;\r
2605                 vuint32_t APIIE:1;\r
2606                 vuint32_t CLKSEL:2;\r
2607                 vuint32_t DIV512EN:1;\r
2608                 vuint32_t DIV32EN:1;\r
2609                 vuint32_t APIVAL:10;\r
2610             } B;\r
2611         } RTCC;                 /* RTC Control Register */\r
2612 \r
2613         union {\r
2614             vuint32_t R;\r
2615             struct {\r
2616                 vuint32_t:2;\r
2617                 vuint32_t RTCF:1;\r
2618                   vuint32_t:15;\r
2619                 vuint32_t APIF:1;\r
2620                   vuint32_t:2;\r
2621                 vuint32_t ROVRF:1;\r
2622                   vuint32_t:10;\r
2623             } B;\r
2624         } RTCS;                 /* RTC Status Register */\r
2625 \r
2626         union {\r
2627             vuint32_t R;\r
2628             struct {\r
2629                 vuint32_t RTCCNT:32;\r
2630             } B;\r
2631         } RTCCNT;               /* RTC Counter Register */\r
2632 \r
2633     };                          /* end of RTC_tag */\r
2634 /****************************************************************************/\r
2635 /*                     MODULE : SIU                                         */\r
2636 /****************************************************************************/\r
2637     struct SIU_tag {\r
2638 \r
2639         int32_t SIU_reserved0;  /* {0x004-0x000}/4 = 0x01 */\r
2640 \r
2641         union {                 /* MCU ID Register 1 */\r
2642             vuint32_t R;\r
2643             struct {\r
2644                 vuint32_t PARTNUM:16;\r
2645                 vuint32_t CSP:1;\r
2646                 vuint32_t PKG:5;\r
2647                   vuint32_t:2;\r
2648                 vuint32_t MAJOR_MASK:4;\r
2649                 vuint32_t MINOR_MASK:4;\r
2650             } B;\r
2651         } MIDR;\r
2652 \r
2653         union {                 /* MCU ID Register 2 */\r
2654             vuint32_t R;\r
2655             struct {\r
2656                 vuint32_t SF:1;\r
2657                 vuint32_t FLASH_SIZE_1:4;\r
2658                 vuint32_t FLASH_SIZE_2:4;\r
2659                   vuint32_t:7;\r
2660                 vuint32_t PARTNUM:8;\r
2661                   vuint32_t:3;\r
2662                 vuint32_t EE:1;\r
2663                   vuint32_t:4;\r
2664             } B;\r
2665         } MIDR2;\r
2666 \r
2667         int32_t SIU_reserved1[2];       /* {0x014-0x00C}/4 = 0x02 */\r
2668 \r
2669         union {                 /* Interrupt Status Flag Register */\r
2670             vuint32_t R;\r
2671             struct {\r
2672                 vuint32_t:16;\r
2673                 vuint32_t EIF15:1;\r
2674                 vuint32_t EIF14:1;\r
2675                 vuint32_t EIF13:1;\r
2676                 vuint32_t EIF12:1;\r
2677                 vuint32_t EIF11:1;\r
2678                 vuint32_t EIF10:1;\r
2679                 vuint32_t EIF9:1;\r
2680                 vuint32_t EIF8:1;\r
2681                 vuint32_t EIF7:1;\r
2682                 vuint32_t EIF6:1;\r
2683                 vuint32_t EIF5:1;\r
2684                 vuint32_t EIF4:1;\r
2685                 vuint32_t EIF3:1;\r
2686                 vuint32_t EIF2:1;\r
2687                 vuint32_t EIF1:1;\r
2688                 vuint32_t EIF0:1;\r
2689             } B;\r
2690         } ISR;\r
2691 \r
2692         union {                 /* Interrupt Request Enable Register */\r
2693             vuint32_t R;\r
2694             struct {\r
2695                 vuint32_t:16;\r
2696                 vuint32_t EIRE15:1;\r
2697                 vuint32_t EIRE14:1;\r
2698                 vuint32_t EIRE13:1;\r
2699                 vuint32_t EIRE12:1;\r
2700                 vuint32_t EIRE11:1;\r
2701                 vuint32_t EIRE10:1;\r
2702                 vuint32_t EIRE9:1;\r
2703                 vuint32_t EIRE8:1;\r
2704                 vuint32_t EIRE7:1;\r
2705                 vuint32_t EIRE6:1;\r
2706                 vuint32_t EIRE5:1;\r
2707                 vuint32_t EIRE4:1;\r
2708                 vuint32_t EIRE3:1;\r
2709                 vuint32_t EIRE2:1;\r
2710                 vuint32_t EIRE1:1;\r
2711                 vuint32_t EIRE0:1;\r
2712             } B;\r
2713         } IRER;\r
2714 \r
2715         int32_t SIU_reserved2[3];       /* {0x028-0x01C}/4 = 0x03 */\r
2716 \r
2717         union {                 /* Interrupt Rising-Edge Event Enable Register */\r
2718             vuint32_t R;\r
2719             struct {\r
2720                 vuint32_t:16;\r
2721                 vuint32_t IREE15:1;\r
2722                 vuint32_t IREE14:1;\r
2723                 vuint32_t IREE13:1;\r
2724                 vuint32_t IREE12:1;\r
2725                 vuint32_t IREE11:1;\r
2726                 vuint32_t IREE10:1;\r
2727                 vuint32_t IREE9:1;\r
2728                 vuint32_t IREE8:1;\r
2729                 vuint32_t IREE7:1;\r
2730                 vuint32_t IREE6:1;\r
2731                 vuint32_t IREE5:1;\r
2732                 vuint32_t IREE4:1;\r
2733                 vuint32_t IREE3:1;\r
2734                 vuint32_t IREE2:1;\r
2735                 vuint32_t IREE1:1;\r
2736                 vuint32_t IREE0:1;\r
2737             } B;\r
2738         } IREER;\r
2739 \r
2740         union {                 /* Interrupt Falling-Edge Event Enable Register */\r
2741             vuint32_t R;\r
2742             struct {\r
2743                 vuint32_t:16;\r
2744                 vuint32_t IFEE15:1;\r
2745                 vuint32_t IFEE14:1;\r
2746                 vuint32_t IFEE13:1;\r
2747                 vuint32_t IFEE12:1;\r
2748                 vuint32_t IFEE11:1;\r
2749                 vuint32_t IFEE10:1;\r
2750                 vuint32_t IFEE9:1;\r
2751                 vuint32_t IFEE8:1;\r
2752                 vuint32_t IFEE7:1;\r
2753                 vuint32_t IFEE6:1;\r
2754                 vuint32_t IFEE5:1;\r
2755                 vuint32_t IFEE4:1;\r
2756                 vuint32_t IFEE3:1;\r
2757                 vuint32_t IFEE2:1;\r
2758                 vuint32_t IFEE1:1;\r
2759                 vuint32_t IFEE0:1;\r
2760             } B;\r
2761         } IFEER;\r
2762 \r
2763         union {                 /* Interrupt Filter Enable Register */\r
2764             vuint32_t R;\r
2765             struct {\r
2766                 vuint32_t:16;\r
2767                 vuint32_t IFE15:1;\r
2768                 vuint32_t IFE14:1;\r
2769                 vuint32_t IFE13:1;\r
2770                 vuint32_t IFE12:1;\r
2771                 vuint32_t IFE11:1;\r
2772                 vuint32_t IFE10:1;\r
2773                 vuint32_t IFE9:1;\r
2774                 vuint32_t IFE8:1;\r
2775                 vuint32_t IFE7:1;\r
2776                 vuint32_t IFE6:1;\r
2777                 vuint32_t IFE5:1;\r
2778                 vuint32_t IFE4:1;\r
2779                 vuint32_t IFE3:1;\r
2780                 vuint32_t IFE2:1;\r
2781                 vuint32_t IFE1:1;\r
2782                 vuint32_t IFE0:1;\r
2783             } B;\r
2784         } IFER;\r
2785 \r
2786         int32_t SIU_reserved3[3];       /* {0x040-0x034}/4 = 0x03 */\r
2787 \r
2788         union {                 /* Pad Configuration Registers */\r
2789             vuint16_t R;\r
2790             struct {\r
2791                 vuint16_t:1;\r
2792                 vuint16_t SMC:1;\r
2793                 vuint16_t APC:1;\r
2794                   vuint16_t:1;\r
2795                 vuint16_t PA:2;\r
2796                 vuint16_t OBE:1;\r
2797                 vuint16_t IBE:1;\r
2798                   vuint16_t:2;\r
2799                 vuint16_t ODE:1;\r
2800                   vuint16_t:2;\r
2801                 vuint16_t SRC:1;\r
2802                 vuint16_t WPE:1;\r
2803                 vuint16_t WPS:1;\r
2804             } B;\r
2805         } PCR[123];\r
2806 \r
2807         int32_t SIU_reserved4[242];     /* {0x500-0x136}/0xF2 */\r
2808 \r
2809         union {                 /* Pad Selection for Multiplexed Input Register */\r
2810             vuint8_t R;\r
2811             struct {\r
2812                 vuint8_t:4;\r
2813                 vuint8_t PADSEL:4;\r
2814             } B;\r
2815         } PSMI[32];\r
2816 \r
2817         int32_t SIU_reserved5[56];      /* {0x600-0x520}/4 = 0x38 */\r
2818 \r
2819         union {                 /* GPIO Pin Data Output Registers */\r
2820             vuint8_t R;\r
2821             struct {\r
2822                 vuint8_t:7;\r
2823                 vuint8_t PDO:1;\r
2824             } B;\r
2825         } GPDO[124];\r
2826 \r
2827         int32_t SIU_reserved6[97];      /* {0x800-0x67C}/4 = 0x61 */\r
2828 \r
2829         union {                 /* GPIO Pin Data Input Registers */\r
2830             vuint8_t R;\r
2831             struct {\r
2832                 vuint8_t:7;\r
2833                 vuint8_t PDI:1;\r
2834             } B;\r
2835         } GPDI[124];\r
2836 \r
2837         int32_t SIU_reserved7[225];     /* {0xC00-0x87C}/0x4 = 0xE1 */\r
2838 \r
2839         union {                 /* Parallel GPIO Pin Data Output Register */\r
2840             vuint32_t R;\r
2841             struct {\r
2842                 vuint32_t PPD0:32;\r
2843             } B;\r
2844         } PGPDO[4];\r
2845 \r
2846         int32_t SIU_reserved8[12];      /* {0xC40-0xC10}/0x4 = 0x0C */\r
2847 \r
2848         union {                 /* Parallel GPIO Pin Data Input Register */\r
2849             vuint32_t R;\r
2850             struct {\r
2851                 vuint32_t PPDI:32;\r
2852             } B;\r
2853         } PGPDI[4];\r
2854 \r
2855         int32_t SIU_reserved9[12];      /* {0xC80-0xC50}/0x4 = 0x0C */\r
2856 \r
2857         union {                 /* Masked Parallel GPIO Pin Data Out Register */\r
2858             vuint32_t R;\r
2859             struct {\r
2860                 vuint32_t MASK:16;\r
2861                 vuint32_t MPPDO:16;\r
2862             } B;\r
2863         } MPGPDO[8];\r
2864 \r
2865         int32_t SIU_reserved10[216];    /* {0x1000-0x0CA0}/4 = 0xD8 */\r
2866 \r
2867         union {                 /* Interrupt Filter Maximum Counter Register */\r
2868             vuint32_t R;\r
2869             struct {\r
2870                 vuint32_t:28;\r
2871                 vuint32_t MAXCNT:4;\r
2872             } B;\r
2873         } IFMC[16];\r
2874 \r
2875         int32_t SIU_reserved11[16];     /* {0x1080-0x1040}/4 = 0x10 */\r
2876 \r
2877         union {                 /* Interrupt Filter Clock Prescaler Register */\r
2878             vuint32_t R;\r
2879             struct {\r
2880                 vuint32_t:28;\r
2881                 vuint32_t IFCP:4;\r
2882             } B;\r
2883         } IFCPR;\r
2884 \r
2885     };                          /* end of SIU_tag */\r
2886 /****************************************************************************/\r
2887 /*                          MODULE : SSCM                                   */\r
2888 /****************************************************************************/\r
2889     struct SSCM_tag {\r
2890         union {\r
2891             vuint16_t R;\r
2892             struct {\r
2893                 vuint16_t:4;\r
2894                 vuint16_t NXEN:1;\r
2895                   vuint16_t:3;\r
2896                 vuint16_t BMODE:3;\r
2897                   vuint16_t:1;\r
2898                 vuint16_t ABD:1;\r
2899                   vuint16_t:3;\r
2900             } B;\r
2901         } STATUS;               /* Status Register */\r
2902 \r
2903         union {\r
2904             vuint16_t R;\r
2905             struct {\r
2906                 vuint16_t SRAM_SIZE:5;\r
2907                 vuint16_t PRSZ:5;\r
2908                 vuint16_t PVLB:1;\r
2909                 vuint16_t DTSZ:4;\r
2910                 vuint16_t DVLD:1;\r
2911             } B;\r
2912         } MEMCONFIG;            /* System Memory Configuration Register */\r
2913 \r
2914         int16_t SSCM_reserved;\r
2915 \r
2916         union {\r
2917             vuint16_t R;\r
2918             struct {\r
2919                 vuint16_t:14;\r
2920                 vuint16_t PAE:1;\r
2921                 vuint16_t RAE:1;\r
2922             } B;\r
2923         } ERROR;                /* Error Configuration Register */\r
2924 \r
2925         int16_t SSCM_reserved1[2];\r
2926 \r
2927         union {\r
2928             vuint32_t R;\r
2929             struct {\r
2930                 vuint32_t PWD_HI:32;\r
2931             } B;\r
2932         } PWCMPH;               /* Password Comparison Register High Word */\r
2933 \r
2934         union {\r
2935             vuint32_t R;\r
2936             struct {\r
2937                 vuint32_t PWD_LO:32;\r
2938             } B;\r
2939         } PWCMPL;               /* Password Comparison Register Low Word */\r
2940 \r
2941     };                          /* end of SSCM_tag */\r
2942 /****************************************************************************/\r
2943 /*                          MODULE : STM                                   */\r
2944 /****************************************************************************/\r
2945     struct STM_CHANNEL_tag {\r
2946 \r
2947         union {\r
2948             vuint32_t R;\r
2949             struct {\r
2950                 vuint32_t:31;\r
2951                 vuint32_t CEN:1;\r
2952             } B;\r
2953         } CCR;                  /* STM Channel Control Register */\r
2954 \r
2955         union {\r
2956             vuint32_t R;\r
2957             struct {\r
2958                 vuint32_t:31;\r
2959                 vuint32_t CIF:1;\r
2960             } B;\r
2961         } CIR;                  /* STM Channel Interrupt Register */\r
2962 \r
2963         union {\r
2964             vuint32_t R;\r
2965         } CMP;                  /* STM Channel Compare Register 0 */\r
2966 \r
2967         int32_t STM_CHANNEL_reserved;\r
2968 \r
2969     };                          /* end of STM_CHANNEL_tag */\r
2970 \r
2971     struct STM_tag {\r
2972 \r
2973         union {\r
2974             vuint32_t R;\r
2975             struct {\r
2976                 vuint32_t:16;\r
2977                 vuint32_t CPS:8;\r
2978                   vuint32_t:6;\r
2979                 vuint32_t FRZ:1;\r
2980                 vuint32_t TEN:1;\r
2981             } B;\r
2982         } CR;                   /* STM Control Register */\r
2983 \r
2984         union {\r
2985             vuint32_t R;\r
2986         } CNT;                  /* STM Count Register */\r
2987 \r
2988         int32_t STM_reserved[2];\r
2989 \r
2990         struct STM_CHANNEL_tag CH[4];\r
2991 \r
2992     };                          /* end of STM_tag */\r
2993 /****************************************************************************/\r
2994 /*                          MODULE : SWT                                   */\r
2995 /****************************************************************************/\r
2996     struct SWT_tag {\r
2997         union {\r
2998             vuint32_t R;\r
2999             struct {\r
3000                 vuint32_t MAP0:1;\r
3001                 vuint32_t MAP1:1;\r
3002                 vuint32_t MAP2:1;\r
3003                 vuint32_t MAP3:1;\r
3004                 vuint32_t MAP4:1;\r
3005                 vuint32_t MAP5:1;\r
3006                 vuint32_t MAP6:1;\r
3007                 vuint32_t MAP7:1;\r
3008                   vuint32_t:15;\r
3009                 vuint32_t RIA:1;\r
3010                 vuint32_t WND:1;\r
3011                 vuint32_t ITR:1;\r
3012                 vuint32_t HLK:1;\r
3013                 vuint32_t SLK:1;\r
3014                 vuint32_t CSL:1;\r
3015                 vuint32_t STP:1;\r
3016                 vuint32_t FRZ:1;\r
3017                 vuint32_t WEN:1;\r
3018             } B;\r
3019         } CR;                   /* SWT Control Register */\r
3020 \r
3021         union {\r
3022             vuint32_t R;\r
3023             struct {\r
3024                 vuint32_t:31;\r
3025                 vuint32_t TIF:1;\r
3026             } B;\r
3027         } IR;                   /* SWT Interrupt Register */\r
3028 \r
3029         union {\r
3030             vuint32_t R;\r
3031             struct {\r
3032                 vuint32_t WTO:32;\r
3033             } B;\r
3034         } TO;                   /* SWT Time-Out Register */\r
3035 \r
3036         union {\r
3037             vuint32_t R;\r
3038             struct {\r
3039                 vuint32_t WST:32;\r
3040             } B;\r
3041         } WN;                   /* SWT Window Register */\r
3042 \r
3043         union {\r
3044             vuint32_t R;\r
3045             struct {\r
3046                 vuint32_t:16;\r
3047                 vuint32_t WSC:16;\r
3048             } B;\r
3049         } SR;                   /* SWT Service Register */\r
3050 \r
3051         union {\r
3052             vuint32_t R;\r
3053             struct {\r
3054                 vuint32_t CNT:32;\r
3055             } B;\r
3056         } CO;                   /* SWT Counter Output Register */\r
3057 \r
3058     };                          /* end of SWT_tag */\r
3059 /****************************************************************************/\r
3060 /*                          MODULE : WKUP                                   */\r
3061 /****************************************************************************/\r
3062     struct WKUP_tag {\r
3063         union {\r
3064             vuint32_t R;\r
3065             struct {\r
3066                 vuint32_t NIF0:1;\r
3067                 vuint32_t NOVF0:1;\r
3068                   vuint32_t:30;\r
3069             } B;\r
3070         } NSR;                  /* NMI Status Register */\r
3071 \r
3072         int32_t WKUP_reserved;\r
3073 \r
3074         union {\r
3075             vuint32_t R;\r
3076             struct {\r
3077                 vuint32_t NLOCK:1;\r
3078                 vuint32_t NDSS:2;\r
3079                 vuint32_t NWRE:1;\r
3080                   vuint32_t:1;\r
3081                 vuint32_t NREE:1;\r
3082                 vuint32_t NFEE:1;\r
3083                 vuint32_t NFE:1;\r
3084                   vuint32_t:24;\r
3085             } B;\r
3086         } NCR;                  /* NMI Configuration Register */\r
3087 \r
3088         int32_t WKUP_reserved1[2];\r
3089 \r
3090         union {\r
3091             vuint32_t R;\r
3092             struct {\r
3093                 vuint32_t:12;\r
3094                 vuint32_t EIF:20;\r
3095             } B;\r
3096         } WISR;                 /* Wakeup/Interrupt Status Flag Register */\r
3097 \r
3098         union {\r
3099             vuint32_t R;\r
3100             struct {\r
3101                 vuint32_t:12;\r
3102                 vuint32_t EIRE:20;\r
3103             } B;\r
3104         } IRER;                 /* Interrupt Request Enable Register */\r
3105 \r
3106         union {\r
3107             vuint32_t R;\r
3108             struct {\r
3109                 vuint32_t:12;\r
3110                 vuint32_t WRE:20;\r
3111             } B;\r
3112         } WRER;                 /* Wakeup Request Enable Register */\r
3113 \r
3114         int32_t WKUP_reserved2[2];\r
3115 \r
3116         union {\r
3117             vuint32_t R;\r
3118             struct {\r
3119                 vuint32_t:12;\r
3120                 vuint32_t IREE:20;\r
3121             } B;\r
3122         } WIREER;               /* Wakeup/Interrupt Rising-Edge Event Enable Register */\r
3123 \r
3124         union {\r
3125             vuint32_t R;\r
3126             struct {\r
3127                 vuint32_t:12;\r
3128                 vuint32_t IFEE:20;\r
3129             } B;\r
3130         } WIFEER;               /* Wakeup/Interrupt Falling-Edge Event Enable Register */\r
3131 \r
3132         union {\r
3133             vuint32_t R;\r
3134             struct {\r
3135                 vuint32_t:12;\r
3136                 vuint32_t IFE:20;\r
3137             } B;\r
3138         } WIFER;                /* Wakeup/Interrupt Filter Enable Register */\r
3139 \r
3140         union {\r
3141             vuint32_t R;\r
3142             struct {\r
3143                 vuint32_t:12;\r
3144                 vuint32_t IPUE:20;\r
3145             } B;\r
3146         } WIPUER;               /* Wakeup/Interrupt Pullup Enable Register */\r
3147 \r
3148     };                          /* end of WKUP_tag */\r
3149 /****************************************************************** \r
3150 | defines and macros (scope: module-local) \r
3151 |-----------------------------------------------------------------*/ \r
3152 /* Define instances of modules */ \r
3153 #define ADC_0       (*(volatile struct ADC_tag *)       0xFFE00000UL)\r
3154 #define CAN_0     (*(volatile struct FLEXCAN_tag *)   0xFFFC0000UL)\r
3155 #define CAN_1     (*(volatile struct FLEXCAN_tag *)   0xFFFC4000UL)\r
3156 #define CAN_2     (*(volatile struct FLEXCAN_tag *)   0xFFFC8000UL)\r
3157 #define CAN_3     (*(volatile struct FLEXCAN_tag *)   0xFFFCC000UL)\r
3158 #define CAN_4     (*(volatile struct FLEXCAN_tag *)   0xFFFD0000UL)\r
3159 #define CAN_5     (*(volatile struct FLEXCAN_tag *)   0xFFFD4000UL)\r
3160 #define CANSP     (*(volatile struct CANSP_tag *)     0xFFE70000UL)\r
3161 #define CFLASH    (*(volatile struct CFLASH_tag *)    0xC3F88000UL)\r
3162 #define CGM       (*(volatile struct CGM_tag *)       0xC3FE0000UL)\r
3163 #define CTU       (*(volatile struct CTU_tag *)       0xFFE64000UL)\r
3164 #define DFLASH    (*(volatile struct DFLASH_tag *)    0xC3F8C000UL)\r
3165 #define DSPI_0    (*(volatile struct DSPI_tag *)      0xFFF90000UL)\r
3166 #define DSPI_1    (*(volatile struct DSPI_tag *)      0xFFF94000UL)\r
3167 #define DSPI_2    (*(volatile struct DSPI_tag *)      0xFFF98000UL)\r
3168 #define DSPI_3    (*(volatile struct DSPI_tag *)      0xFFF9C000UL)\r
3169 #define ECSM      (*(volatile struct ECSM_tag *)      0xFFF40000UL)   \r
3170 #define EMIOS_0   (*(volatile struct EMIOS_tag *)     0xC3FA0000UL)\r
3171 #define EMIOS_1   (*(volatile struct EMIOS_tag *)     0xC3FA4000UL)\r
3172 #define I2C       (*(volatile struct I2C_tag *)       0xFFE30000UL)\r
3173 #define INTC      (*(volatile struct INTC_tag *)      0xFFF48000UL)  \r
3174 #define LINFLEX_0 (*(volatile struct LINFLEX_tag *)   0xFFE40000UL)\r
3175 #define LINFLEX_1 (*(volatile struct LINFLEX_tag *)   0xFFE44000UL) \r
3176 #define LINFLEX_2 (*(volatile struct LINFLEX_tag *)   0xFFE48000UL) \r
3177 #define LINFLEX_3 (*(volatile struct LINFLEX_tag *)   0xFFE4C000UL) \r
3178 #define ME        (*(volatile struct ME_tag *)        0xC3FDC000UL)\r
3179 #define MPU       (*(volatile struct MPU_tag *)       0xFFF10000UL)\r
3180 #define PCU       (*(volatile struct PCU_tag *)       0xC3FE8000UL)\r
3181 #define PIT       (*(volatile struct PIT_tag *)       0xC3FF0000UL)\r
3182 #define RGM       (*(volatile struct RGM_tag *)       0xC3FE4000UL)\r
3183 #define RTC       (*(volatile struct RTC_tag *)       0xC3FEC000UL)\r
3184 #define SIU       (*(volatile struct SIU_tag *)       0xC3F90000UL)\r
3185 #define SSCM      (*(volatile struct SSCM_tag *)      0xC3FD8000UL) \r
3186 #define STM       (*(volatile struct STM_tag *)       0xFFF3C000UL)\r
3187 #define SWT       (*(volatile struct SWT_tag *)       0xFFF38000UL)\r
3188 #define WKUP      (*(volatile struct WKUP_tag *)      0xC3F94000UL)  \r
3189      \r
3190 #ifdef __MWERKS__\r
3191 #pragma pop\r
3192 #endif  /* \r
3193  */\r
3194      \r
3195 #ifdef  __cplusplus\r
3196\r
3197 #endif  /* \r
3198  */\r
3199  \r
3200 #endif  /* ifdef _MPC5604B_H */\r
3201  \r
3202 /* End of file */ \r