blob: ce4f47ed980d16c7d93a46cbe9a8ac6d8fce711b [file] [log] [blame]
/*
* Copyright 2021-2024 NXP
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#ifndef MU_H
#define MU_H
#include <stdint.h>
typedef volatile unsigned int vuint32_t;
/****************************************************************************/
/* MODULE: Message Unit */
/****************************************************************************/
/* VER Register */
typedef union {
vuint32_t R;
struct {
vuint32_t FEATURE : 16;
vuint32_t MINOR : 8;
vuint32_t MAJOR : 8;
} B;
} MU_VER_t;
/* PAR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t TR_NUM : 8;
vuint32_t RR_NUM : 8;
vuint32_t GIR_NUM : 8;
vuint32_t FLAG_WIDTH : 8;
} B;
} MU_PAR_t;
/* CR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t MUR : 1;
vuint32_t MURIE : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_CR_t;
/* SR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t MURS : 1;
vuint32_t MURIP : 1;
vuint32_t EP : 1;
vuint32_t FUP : 1;
vuint32_t GIRP : 1;
vuint32_t TEP : 1;
vuint32_t RFP : 1;
vuint32_t CEP : 1;
vuint32_t rsrv_1 : 24;
} B;
} MU_SR_t;
/* CCR0 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t NMI : 1;
vuint32_t HR : 1;
vuint32_t HRM : 1;
vuint32_t CLKE : 1;
vuint32_t RSTH : 1;
vuint32_t BOOT : 2;
vuint32_t rsrv_1 : 25;
} B;
} MU_CCR0_t;
/* CIER0 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t rsrv_1 : 1;
vuint32_t HRIE : 1;
vuint32_t RUNIE : 1;
vuint32_t RAIE : 1;
vuint32_t HALTIE : 1;
vuint32_t WAITIE : 1;
vuint32_t STOPIE : 1;
vuint32_t PDIE : 1;
vuint32_t rsrv_2 : 24;
} B;
} MU_CIER0_t;
/* CSSR0 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t NMIC : 1;
vuint32_t HRIP : 1;
vuint32_t RUN : 1;
vuint32_t RAIP : 1;
vuint32_t HALT : 1;
vuint32_t WAIT : 1;
vuint32_t STOP : 1;
vuint32_t PD : 1;
vuint32_t rsrv_1 : 24;
} B;
} MU_CSSR0_t;
/* CSR0 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t rsrv_1 : 1;
vuint32_t HRIP : 1;
vuint32_t RUN : 1;
vuint32_t RAIP : 1;
vuint32_t HALT : 1;
vuint32_t WAIT : 1;
vuint32_t STOP : 1;
vuint32_t PD : 1;
vuint32_t rsrv_2 : 24;
} B;
} MU_CSR0_t;
/* FCR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t F0 : 1;
vuint32_t F1 : 1;
vuint32_t F2 : 1;
vuint32_t rsrv_1 : 29;
} B;
} MU_FCR_t;
/* FSR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t F0 : 1;
vuint32_t F1 : 1;
vuint32_t F2 : 1;
vuint32_t rsrv_1 : 29;
} B;
} MU_FSR_t;
/* GIER Register */
typedef union {
vuint32_t R;
struct {
vuint32_t GIE0 : 1;
vuint32_t GIE1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_GIER_t;
/* GCR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t GIR0 : 1;
vuint32_t GIR1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_GCR_t;
/* GSR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t GIP0 : 1;
vuint32_t GIP1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_GSR_t;
/* TCR Register */
typedef union{
vuint32_t R;
struct {
vuint32_t TIE0 : 1;
vuint32_t TIE1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_TCR_t;
/* TSR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t TE0 : 1;
vuint32_t TE1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_TSR_t;
/* RCR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t RIE0 : 1;
vuint32_t RIE1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_RCR_t;
/* RSR Register */
typedef union {
vuint32_t R;
struct {
vuint32_t RF0 : 1;
vuint32_t RF1 : 1;
vuint32_t rsrv_1 : 30;
} B;
} MU_RSR_t;
/* TR0 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t TR_DATA : 32;
} B;
} MU_TR0_t;
/* TR1 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t TR_DATA : 32;
} B;
} MU_TR1_t;
/* RR0 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t RR_DATA : 32;
} B;
} MU_RR0_t;
/* RR1 Register */
typedef union {
vuint32_t R;
struct {
vuint32_t RR_DATA : 32;
} B;
} MU_RR1_t;
struct MU_t {
MU_VER_t VER;
MU_PAR_t PAR;
MU_CR_t CR;
MU_SR_t SR;
MU_CCR0_t CCR0;
MU_CIER0_t CIER0;
MU_CSSR0_t CSSR0;
MU_CSR0_t CSR0;
uint8_t MU_reserved0[224];
MU_FCR_t FCR;
MU_FSR_t FSR;
uint8_t MU_reserved1[8];
MU_GIER_t GIER;
MU_GCR_t GCR;
MU_GSR_t GSR;
uint8_t MU_reserved2[4];
MU_TCR_t TCR;
MU_TSR_t TSR;
MU_RCR_t RCR;
MU_RSR_t RSR;
uint8_t MU_reserved3[208];
MU_TR0_t TR[2];
uint8_t MU_reserved4[120];
MU_RR0_t RR[2];
};
#endif /* MU_H */