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