1 /*
2  * Copyright 2022 NXP
3  * All rights reserved.
4  *
5  * SPDX-License-Identifier: BSD-3-Clause
6  */
7 #ifndef _FSL_TRDC_SOC_H_
8 #define _FSL_TRDC_SOC_H_
9 
10 #include "fsl_common.h"
11 
12 /*!
13  * @addtogroup trdc_soc
14  * @{
15  */
16 
17 /*******************************************************************************
18  * Definitions
19  ******************************************************************************/
20 /*! @name Driver version */
21 /*@{*/
22 /*! @brief Driver version 2.0.0. */
23 #define FSL_TRDC_SOC_DRIVER_VERSION (MAKE_VERSION(2, 0, 0))
24 /*@}*/
25 
26 #define TRDC_DACFG_NCM_MASK                     TRDC_MBC2_DACFG_NCM_MASK
27 #define TRDC_MBC_MEM_GLBCFG_NBLKS_MASK          TRDC_MBC2_MBC_MEM_GLBCFG_NBLKS_MASK
28 #define TRDC_MBC_MEM_GLBCFG_SIZE_LOG2_MASK      TRDC_MBC2_MBC_MEM_GLBCFG_SIZE_LOG2_MASK
29 #define TRDC_MBC_MEM_GLBCFG_SIZE_LOG2_SHIFT     TRDC_MBC2_MBC_MEM_GLBCFG_SIZE_LOG2_SHIFT
30 #define TRDC_MBC_NSE_BLK_CLR_ALL_DID_SEL0_SHIFT TRDC_MBC2_MBC_NSE_BLK_CLR_ALL_DID_SEL0_SHIFT
31 #define TRDC_MDA_W_DFMT0_LK1_MASK               TRDC_MBC2_MDA_W_DFMT0_LK1_MASK
32 #define TRDC_MDA_W_DFMT0_VLD_MASK               TRDC_MBC2_MDA_W_DFMT0_VLD_MASK
33 #define TRDC_MDA_W_DFMT1_LK1_MASK               TRDC_MBC2_MDA_W_DFMT1_LK1_MASK
34 #define TRDC_MDA_W_DFMT1_VLD_MASK               TRDC_MBC2_MDA_W_DFMT1_VLD_MASK
35 #define TRDC_MRC_DOM0_RGD_W_MRACSEL_MASK        TRDC_MBC2_MRC_DOM0_RGD_W_MRACSEL_MASK
36 #define TRDC_MRC_DOM0_RGD_W_NSE_MASK            TRDC_MBC2_MRC_DOM0_RGD_W_NSE_MASK
37 #define TRDC_MRC_DOM0_RGD_W_VLD_MASK            TRDC_MBC2_MRC_DOM0_RGD_W_VLD_MASK
38 #define TRDC_MRC_GLBCFG_NRGNS_MASK              TRDC_MBC2_MRC_GLBCFG_NRGNS_MASK
39 #define TRDC_MRC_GLBCFG_NRGNS_SHIFT             TRDC_MBC2_MRC_GLBCFG_NRGNS_SHIFT
40 #define TRDC_TRDC_CR_GVLDB_MASK                 TRDC_MBC2_TRDC_CR_GVLDB_MASK
41 #define TRDC_TRDC_CR_GVLDM_MASK                 TRDC_MBC2_TRDC_CR_GVLDM_MASK
42 #define TRDC_TRDC_CR_GVLDR_MASK                 TRDC_MBC2_TRDC_CR_GVLDR_MASK
43 #define TRDC_TRDC_FLW_CTL_LK_MASK               TRDC_MBC2_TRDC_FLW_CTL_LK_MASK
44 #define TRDC_TRDC_FLW_CTL_V_MASK                TRDC_MBC2_TRDC_FLW_CTL_V_MASK
45 #define TRDC_TRDC_HWCFG0_NDID_MASK              TRDC_MBC2_TRDC_HWCFG0_NDID_MASK
46 #define TRDC_TRDC_HWCFG0_NDID_SHIFT             TRDC_MBC2_TRDC_HWCFG0_NDID_SHIFT
47 #define TRDC_TRDC_HWCFG0_NMBC_MASK              TRDC_MBC2_TRDC_HWCFG0_NMBC_MASK
48 #define TRDC_TRDC_HWCFG0_NMBC_SHIFT             TRDC_MBC2_TRDC_HWCFG0_NMBC_SHIFT
49 #define TRDC_TRDC_HWCFG0_NMRC_MASK              TRDC_MBC2_TRDC_HWCFG0_NMRC_MASK
50 #define TRDC_TRDC_HWCFG0_NMRC_SHIFT             TRDC_MBC2_TRDC_HWCFG0_NMRC_SHIFT
51 #define TRDC_TRDC_HWCFG0_NMSTR_MASK             TRDC_MBC2_TRDC_HWCFG0_NMSTR_MASK
52 #define TRDC_TRDC_HWCFG0_NMSTR_SHIFT            TRDC_MBC2_TRDC_HWCFG0_NMSTR_SHIFT
53 #define TRDC_TRDC_HWCFG1_DID_MASK               TRDC_MBC2_TRDC_HWCFG1_DID_MASK
54 #define TRDC_TRDC_HWCFG1_DID_SHIFT              TRDC_MBC2_TRDC_HWCFG1_DID_SHIFT
55 #define TRDC_TRDC_IDAU_CR_VLD_MASK              TRDC_MBC2_TRDC_IDAU_CR_VLD_MASK
56 #define TRDC_W1_EATR_MASK                       TRDC_MBC2_W1_EATR_MASK
57 #define TRDC_W1_EATR_SHIFT                      TRDC_MBC2_W1_EATR_SHIFT
58 #define TRDC_W1_EDID_MASK                       TRDC_MBC2_W1_EDID_MASK
59 #define TRDC_W1_EPORT_MASK                      TRDC_MBC2_W1_EPORT_MASK
60 #define TRDC_W1_EPORT_SHIFT                     TRDC_MBC2_W1_EPORT_SHIFT
61 #define TRDC_W1_ERW_MASK                        TRDC_MBC2_W1_ERW_MASK
62 #define TRDC_W1_ERW_SHIFT                       TRDC_MBC2_W1_ERW_SHIFT
63 #define TRDC_W1_EST_MASK                        TRDC_MBC2_W1_EST_MASK
64 #define TRDC_W1_EST_SHIFT                       TRDC_MBC2_W1_EST_SHIFT
65 #define TRDC_MBC_NSE_BLK_CLR_ALL_MEMSEL         TRDC_MBC2_MBC_NSE_BLK_CLR_ALL_MEMSEL
66 #define TRDC_MRC_DOM0_RGD_W_MRACSEL             TRDC_MBC2_MRC_DOM0_RGD_W_MRACSEL
67 #define TRDC_MRC_DOM0_RGD_W_NSE                 TRDC_MBC2_MRC_DOM0_RGD_W_NSE
68 #define TRDC_MRC_DOM0_RGD_W_VLD                 TRDC_MBC2_MRC_DOM0_RGD_W_VLD
69 #define TRDC_TRDC_FDID_FDID                     TRDC_MBC2_TRDC_FDID_FDID
70 #define TRDC_TRDC_FLW_CTL_LK                    TRDC_MBC2_TRDC_FLW_CTL_LK
71 #define TRDC_TRDC_FLW_CTL_V                     TRDC_MBC2_TRDC_FLW_CTL_V
72 #define TRDC_W3_RECR                            TRDC_MBC2_W3_RECR
73 
74 /*!@brief TRDC base table */
75 #define TRDC_BASE_PTRS                \
76     {                                 \
77         (TRDC_Type *)0u, TRDC1, TRDC2 \
78     }
79 
80 /*!@brief TRDC typedef */
81 typedef void TRDC_Type;
82 
83 /*!
84  * @brief Enumeration for TRDC master mapping
85  *
86  * Defines the enumeration for TRDC master resource collections.
87  */
88 
89 typedef enum _trdc_master
90 {
91     kTRDC1_MasterReserved = 0U, /**< Reserved */
92     kTRDC1_MasterCM33     = 1U, /**< CM33 */
93     kTRDC1_MasterEDMA1    = 2U, /**< EDMA1 */
94     kTRDC1_MasterMTR_FBX  = 3U, /**< MTR FBX */
95     kTRDC1_MasterMTR      = 4U, /**< MTR */
96 
97     kTRDC2_MasterReserved0 = 0U, /**< Reserved0 */
98     kTRDC2_MasterReserved1 = 1U, /**< Reserved1 */
99     kTRDC2_MasterDAP       = 2U, /**< DAP AHB_AP_SYS */
100     kTRDC2_MasterCoreSight = 3U, /**< CoreSight */
101     kTRDC2_MasterEDMA2     = 4U, /**< EDMA2 */
102 
103     kTRDC3_MasterUSDHC1   = 0U, /**< uSDHC1 */
104     kTRDC3_MasterUSDHC2   = 1U, /**< uSDHC2 */
105     kTRDC3_MasterTestPort = 2U, /**< Test port */
106     kTRDC3_MasterUSDHC3   = 3U, /**< USDHC3 */
107     kTRDC3_MasterENET0    = 4U, /**< ENET0 */
108     kTRDC3_MasterENET1    = 5U, /**< ENET1 */
109     kTRDC3_MasterENETQos  = 6U, /**< ENET Qos */
110 
111     kTRDC3_MasterCA55Read  = 0U, /**< CA55 read channel */
112     kTRDC3_MasterCA55Write = 1U, /**< CA55 write channel */
113     kTRDC3_MasterNPUm0     = 2U, /**< NPU m0 */
114     kTRDC3_MasterNPUm1     = 3U, /**< NPU m1 */
115 
116     kTRDC_MediaMix_MasterISI_M   = 0U, /**< ISI M */
117     kTRDC_MediaMix_MasterISI_U_V = 1U, /**< ISI U&V */
118     kTRDC_MediaMix_MasterPXP     = 2U, /**< PXP */
119     kTRDC_MediaMix_MasterLCDIF   = 3U, /**< Lcdif */
120 
121     kTRDC_HSIOMix_MasterUSB1 = 0U, /**< USB1 */
122     kTRDC_HSIOMix_MasterUSB2 = 1U, /**< USB2 */
123 } trdc_master_t;
124 
125 /* @} */
126 
127 /*!@brief TRDC base address convert macro */
128 #define TRDC_GENERAL_OFFSET           0UL
129 #define TRDC_FLW_OFFSET               0x1E0UL
130 #define TRDC_DOMAIN_ERROR_OFFSET      0x1FCUL
131 #define TRDC_DOMAIN_ASSIGNMENT_OFFSET 0x700UL
132 #define TRDC_MBC_OFFSET(x)            0x10000UL /* Different TRDC instance may have different offset. */
133 #define TRDC_MBC_ARRAY_STEP           0x2000UL
134 #define TRDC_MRC_OFFSET(x)            0x14000UL /* Different TRDC instance may have different offset. */
135 #define TRDC_MRC_ARRAY_STEP           0x1000UL
136 
137 /*******************************************************************************
138  * API
139  ******************************************************************************/
140 
141 #ifdef __cplusplus
142 extern "C" {
143 #endif
144 
145 #ifdef __cplusplus
146 }
147 #endif
148 
149 /*!
150  * @}
151  */
152 
153 #endif /* _FSL_TRDC_SOC_H_ */
154