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