1*fcd41e86SJacky Bai /* 2*fcd41e86SJacky Bai * Copyright 2021-2024 NXP 3*fcd41e86SJacky Bai * 4*fcd41e86SJacky Bai * SPDX-License-Identifier: BSD-3-Clause 5*fcd41e86SJacky Bai */ 6*fcd41e86SJacky Bai 7*fcd41e86SJacky Bai #ifndef MU_H 8*fcd41e86SJacky Bai #define MU_H 9*fcd41e86SJacky Bai 10*fcd41e86SJacky Bai #include <stdint.h> 11*fcd41e86SJacky Bai 12*fcd41e86SJacky Bai typedef volatile unsigned int vuint32_t; 13*fcd41e86SJacky Bai 14*fcd41e86SJacky Bai /****************************************************************************/ 15*fcd41e86SJacky Bai /* MODULE: Message Unit */ 16*fcd41e86SJacky Bai /****************************************************************************/ 17*fcd41e86SJacky Bai /* VER Register */ 18*fcd41e86SJacky Bai typedef union { 19*fcd41e86SJacky Bai vuint32_t R; 20*fcd41e86SJacky Bai struct { 21*fcd41e86SJacky Bai vuint32_t FEATURE : 16; 22*fcd41e86SJacky Bai vuint32_t MINOR : 8; 23*fcd41e86SJacky Bai vuint32_t MAJOR : 8; 24*fcd41e86SJacky Bai } B; 25*fcd41e86SJacky Bai } MU_VER_t; 26*fcd41e86SJacky Bai 27*fcd41e86SJacky Bai /* PAR Register */ 28*fcd41e86SJacky Bai typedef union { 29*fcd41e86SJacky Bai vuint32_t R; 30*fcd41e86SJacky Bai struct { 31*fcd41e86SJacky Bai vuint32_t TR_NUM : 8; 32*fcd41e86SJacky Bai vuint32_t RR_NUM : 8; 33*fcd41e86SJacky Bai vuint32_t GIR_NUM : 8; 34*fcd41e86SJacky Bai vuint32_t FLAG_WIDTH : 8; 35*fcd41e86SJacky Bai } B; 36*fcd41e86SJacky Bai } MU_PAR_t; 37*fcd41e86SJacky Bai 38*fcd41e86SJacky Bai /* CR Register */ 39*fcd41e86SJacky Bai typedef union { 40*fcd41e86SJacky Bai vuint32_t R; 41*fcd41e86SJacky Bai struct { 42*fcd41e86SJacky Bai vuint32_t MUR : 1; 43*fcd41e86SJacky Bai vuint32_t MURIE : 1; 44*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 45*fcd41e86SJacky Bai } B; 46*fcd41e86SJacky Bai } MU_CR_t; 47*fcd41e86SJacky Bai 48*fcd41e86SJacky Bai /* SR Register */ 49*fcd41e86SJacky Bai typedef union { 50*fcd41e86SJacky Bai vuint32_t R; 51*fcd41e86SJacky Bai struct { 52*fcd41e86SJacky Bai vuint32_t MURS : 1; 53*fcd41e86SJacky Bai vuint32_t MURIP : 1; 54*fcd41e86SJacky Bai vuint32_t EP : 1; 55*fcd41e86SJacky Bai vuint32_t FUP : 1; 56*fcd41e86SJacky Bai vuint32_t GIRP : 1; 57*fcd41e86SJacky Bai vuint32_t TEP : 1; 58*fcd41e86SJacky Bai vuint32_t RFP : 1; 59*fcd41e86SJacky Bai vuint32_t CEP : 1; 60*fcd41e86SJacky Bai vuint32_t rsrv_1 : 24; 61*fcd41e86SJacky Bai 62*fcd41e86SJacky Bai } B; 63*fcd41e86SJacky Bai } MU_SR_t; 64*fcd41e86SJacky Bai 65*fcd41e86SJacky Bai /* CCR0 Register */ 66*fcd41e86SJacky Bai typedef union { 67*fcd41e86SJacky Bai vuint32_t R; 68*fcd41e86SJacky Bai struct { 69*fcd41e86SJacky Bai vuint32_t NMI : 1; 70*fcd41e86SJacky Bai vuint32_t HR : 1; 71*fcd41e86SJacky Bai vuint32_t HRM : 1; 72*fcd41e86SJacky Bai vuint32_t CLKE : 1; 73*fcd41e86SJacky Bai vuint32_t RSTH : 1; 74*fcd41e86SJacky Bai vuint32_t BOOT : 2; 75*fcd41e86SJacky Bai vuint32_t rsrv_1 : 25; 76*fcd41e86SJacky Bai 77*fcd41e86SJacky Bai } B; 78*fcd41e86SJacky Bai } MU_CCR0_t; 79*fcd41e86SJacky Bai 80*fcd41e86SJacky Bai /* CIER0 Register */ 81*fcd41e86SJacky Bai typedef union { 82*fcd41e86SJacky Bai vuint32_t R; 83*fcd41e86SJacky Bai struct { 84*fcd41e86SJacky Bai vuint32_t rsrv_1 : 1; 85*fcd41e86SJacky Bai vuint32_t HRIE : 1; 86*fcd41e86SJacky Bai vuint32_t RUNIE : 1; 87*fcd41e86SJacky Bai vuint32_t RAIE : 1; 88*fcd41e86SJacky Bai vuint32_t HALTIE : 1; 89*fcd41e86SJacky Bai vuint32_t WAITIE : 1; 90*fcd41e86SJacky Bai vuint32_t STOPIE : 1; 91*fcd41e86SJacky Bai vuint32_t PDIE : 1; 92*fcd41e86SJacky Bai vuint32_t rsrv_2 : 24; 93*fcd41e86SJacky Bai } B; 94*fcd41e86SJacky Bai } MU_CIER0_t; 95*fcd41e86SJacky Bai 96*fcd41e86SJacky Bai /* CSSR0 Register */ 97*fcd41e86SJacky Bai typedef union { 98*fcd41e86SJacky Bai vuint32_t R; 99*fcd41e86SJacky Bai struct { 100*fcd41e86SJacky Bai vuint32_t NMIC : 1; 101*fcd41e86SJacky Bai vuint32_t HRIP : 1; 102*fcd41e86SJacky Bai vuint32_t RUN : 1; 103*fcd41e86SJacky Bai vuint32_t RAIP : 1; 104*fcd41e86SJacky Bai vuint32_t HALT : 1; 105*fcd41e86SJacky Bai vuint32_t WAIT : 1; 106*fcd41e86SJacky Bai vuint32_t STOP : 1; 107*fcd41e86SJacky Bai vuint32_t PD : 1; 108*fcd41e86SJacky Bai vuint32_t rsrv_1 : 24; 109*fcd41e86SJacky Bai } B; 110*fcd41e86SJacky Bai } MU_CSSR0_t; 111*fcd41e86SJacky Bai 112*fcd41e86SJacky Bai /* CSR0 Register */ 113*fcd41e86SJacky Bai typedef union { 114*fcd41e86SJacky Bai vuint32_t R; 115*fcd41e86SJacky Bai struct { 116*fcd41e86SJacky Bai vuint32_t rsrv_1 : 1; 117*fcd41e86SJacky Bai vuint32_t HRIP : 1; 118*fcd41e86SJacky Bai vuint32_t RUN : 1; 119*fcd41e86SJacky Bai vuint32_t RAIP : 1; 120*fcd41e86SJacky Bai vuint32_t HALT : 1; 121*fcd41e86SJacky Bai vuint32_t WAIT : 1; 122*fcd41e86SJacky Bai vuint32_t STOP : 1; 123*fcd41e86SJacky Bai vuint32_t PD : 1; 124*fcd41e86SJacky Bai vuint32_t rsrv_2 : 24; 125*fcd41e86SJacky Bai } B; 126*fcd41e86SJacky Bai } MU_CSR0_t; 127*fcd41e86SJacky Bai 128*fcd41e86SJacky Bai /* FCR Register */ 129*fcd41e86SJacky Bai typedef union { 130*fcd41e86SJacky Bai vuint32_t R; 131*fcd41e86SJacky Bai struct { 132*fcd41e86SJacky Bai vuint32_t F0 : 1; 133*fcd41e86SJacky Bai vuint32_t F1 : 1; 134*fcd41e86SJacky Bai vuint32_t F2 : 1; 135*fcd41e86SJacky Bai vuint32_t rsrv_1 : 29; 136*fcd41e86SJacky Bai } B; 137*fcd41e86SJacky Bai } MU_FCR_t; 138*fcd41e86SJacky Bai 139*fcd41e86SJacky Bai /* FSR Register */ 140*fcd41e86SJacky Bai typedef union { 141*fcd41e86SJacky Bai vuint32_t R; 142*fcd41e86SJacky Bai struct { 143*fcd41e86SJacky Bai vuint32_t F0 : 1; 144*fcd41e86SJacky Bai vuint32_t F1 : 1; 145*fcd41e86SJacky Bai vuint32_t F2 : 1; 146*fcd41e86SJacky Bai vuint32_t rsrv_1 : 29; 147*fcd41e86SJacky Bai } B; 148*fcd41e86SJacky Bai } MU_FSR_t; 149*fcd41e86SJacky Bai 150*fcd41e86SJacky Bai /* GIER Register */ 151*fcd41e86SJacky Bai typedef union { 152*fcd41e86SJacky Bai vuint32_t R; 153*fcd41e86SJacky Bai struct { 154*fcd41e86SJacky Bai vuint32_t GIE0 : 1; 155*fcd41e86SJacky Bai vuint32_t GIE1 : 1; 156*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 157*fcd41e86SJacky Bai } B; 158*fcd41e86SJacky Bai } MU_GIER_t; 159*fcd41e86SJacky Bai 160*fcd41e86SJacky Bai /* GCR Register */ 161*fcd41e86SJacky Bai typedef union { 162*fcd41e86SJacky Bai vuint32_t R; 163*fcd41e86SJacky Bai struct { 164*fcd41e86SJacky Bai vuint32_t GIR0 : 1; 165*fcd41e86SJacky Bai vuint32_t GIR1 : 1; 166*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 167*fcd41e86SJacky Bai } B; 168*fcd41e86SJacky Bai } MU_GCR_t; 169*fcd41e86SJacky Bai 170*fcd41e86SJacky Bai /* GSR Register */ 171*fcd41e86SJacky Bai typedef union { 172*fcd41e86SJacky Bai vuint32_t R; 173*fcd41e86SJacky Bai struct { 174*fcd41e86SJacky Bai vuint32_t GIP0 : 1; 175*fcd41e86SJacky Bai vuint32_t GIP1 : 1; 176*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 177*fcd41e86SJacky Bai } B; 178*fcd41e86SJacky Bai } MU_GSR_t; 179*fcd41e86SJacky Bai 180*fcd41e86SJacky Bai /* TCR Register */ 181*fcd41e86SJacky Bai typedef union{ 182*fcd41e86SJacky Bai vuint32_t R; 183*fcd41e86SJacky Bai struct { 184*fcd41e86SJacky Bai vuint32_t TIE0 : 1; 185*fcd41e86SJacky Bai vuint32_t TIE1 : 1; 186*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 187*fcd41e86SJacky Bai } B; 188*fcd41e86SJacky Bai } MU_TCR_t; 189*fcd41e86SJacky Bai 190*fcd41e86SJacky Bai /* TSR Register */ 191*fcd41e86SJacky Bai typedef union { 192*fcd41e86SJacky Bai vuint32_t R; 193*fcd41e86SJacky Bai struct { 194*fcd41e86SJacky Bai vuint32_t TE0 : 1; 195*fcd41e86SJacky Bai vuint32_t TE1 : 1; 196*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 197*fcd41e86SJacky Bai } B; 198*fcd41e86SJacky Bai } MU_TSR_t; 199*fcd41e86SJacky Bai 200*fcd41e86SJacky Bai /* RCR Register */ 201*fcd41e86SJacky Bai typedef union { 202*fcd41e86SJacky Bai vuint32_t R; 203*fcd41e86SJacky Bai struct { 204*fcd41e86SJacky Bai vuint32_t RIE0 : 1; 205*fcd41e86SJacky Bai vuint32_t RIE1 : 1; 206*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 207*fcd41e86SJacky Bai } B; 208*fcd41e86SJacky Bai } MU_RCR_t; 209*fcd41e86SJacky Bai 210*fcd41e86SJacky Bai /* RSR Register */ 211*fcd41e86SJacky Bai typedef union { 212*fcd41e86SJacky Bai vuint32_t R; 213*fcd41e86SJacky Bai struct { 214*fcd41e86SJacky Bai vuint32_t RF0 : 1; 215*fcd41e86SJacky Bai vuint32_t RF1 : 1; 216*fcd41e86SJacky Bai vuint32_t rsrv_1 : 30; 217*fcd41e86SJacky Bai } B; 218*fcd41e86SJacky Bai } MU_RSR_t; 219*fcd41e86SJacky Bai 220*fcd41e86SJacky Bai /* TR0 Register */ 221*fcd41e86SJacky Bai typedef union { 222*fcd41e86SJacky Bai vuint32_t R; 223*fcd41e86SJacky Bai struct { 224*fcd41e86SJacky Bai vuint32_t TR_DATA : 32; 225*fcd41e86SJacky Bai } B; 226*fcd41e86SJacky Bai } MU_TR0_t; 227*fcd41e86SJacky Bai 228*fcd41e86SJacky Bai /* TR1 Register */ 229*fcd41e86SJacky Bai typedef union { 230*fcd41e86SJacky Bai vuint32_t R; 231*fcd41e86SJacky Bai struct { 232*fcd41e86SJacky Bai vuint32_t TR_DATA : 32; 233*fcd41e86SJacky Bai } B; 234*fcd41e86SJacky Bai } MU_TR1_t; 235*fcd41e86SJacky Bai 236*fcd41e86SJacky Bai /* RR0 Register */ 237*fcd41e86SJacky Bai typedef union { 238*fcd41e86SJacky Bai vuint32_t R; 239*fcd41e86SJacky Bai struct { 240*fcd41e86SJacky Bai vuint32_t RR_DATA : 32; 241*fcd41e86SJacky Bai } B; 242*fcd41e86SJacky Bai } MU_RR0_t; 243*fcd41e86SJacky Bai 244*fcd41e86SJacky Bai /* RR1 Register */ 245*fcd41e86SJacky Bai typedef union { 246*fcd41e86SJacky Bai vuint32_t R; 247*fcd41e86SJacky Bai struct { 248*fcd41e86SJacky Bai vuint32_t RR_DATA : 32; 249*fcd41e86SJacky Bai } B; 250*fcd41e86SJacky Bai } MU_RR1_t; 251*fcd41e86SJacky Bai 252*fcd41e86SJacky Bai struct MU_t { 253*fcd41e86SJacky Bai MU_VER_t VER; 254*fcd41e86SJacky Bai MU_PAR_t PAR; 255*fcd41e86SJacky Bai MU_CR_t CR; 256*fcd41e86SJacky Bai MU_SR_t SR; 257*fcd41e86SJacky Bai MU_CCR0_t CCR0; 258*fcd41e86SJacky Bai MU_CIER0_t CIER0; 259*fcd41e86SJacky Bai MU_CSSR0_t CSSR0; 260*fcd41e86SJacky Bai MU_CSR0_t CSR0; 261*fcd41e86SJacky Bai uint8_t MU_reserved0[224]; 262*fcd41e86SJacky Bai MU_FCR_t FCR; 263*fcd41e86SJacky Bai MU_FSR_t FSR; 264*fcd41e86SJacky Bai uint8_t MU_reserved1[8]; 265*fcd41e86SJacky Bai MU_GIER_t GIER; 266*fcd41e86SJacky Bai MU_GCR_t GCR; 267*fcd41e86SJacky Bai MU_GSR_t GSR; 268*fcd41e86SJacky Bai uint8_t MU_reserved2[4]; 269*fcd41e86SJacky Bai MU_TCR_t TCR; 270*fcd41e86SJacky Bai MU_TSR_t TSR; 271*fcd41e86SJacky Bai MU_RCR_t RCR; 272*fcd41e86SJacky Bai MU_RSR_t RSR; 273*fcd41e86SJacky Bai uint8_t MU_reserved3[208]; 274*fcd41e86SJacky Bai MU_TR0_t TR[2]; 275*fcd41e86SJacky Bai uint8_t MU_reserved4[120]; 276*fcd41e86SJacky Bai MU_RR0_t RR[2]; 277*fcd41e86SJacky Bai }; 278*fcd41e86SJacky Bai 279*fcd41e86SJacky Bai #endif /* MU_H */ 280