1 /* 2 * Copyright 2023 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef _FSL_MISC_SOC_H_ 8 #define _FSL_MISC_SOC_H_ 9 #include "fsl_common.h" 10 /*! 11 * @addtogroup misc_soc 12 * @{ 13 */ 14 15 /******************************************************************************* 16 * Definitions 17 ******************************************************************************/ 18 /*! @name Driver version */ 19 /*@{*/ 20 /*! @brief Driver version 2.0.0. */ 21 #define FSL_MISC_SOC_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) 22 /*@}*/ 23 24 #ifndef BIT 25 #define BIT(x) (1U << x) 26 #endif 27 28 #define SOC_SRC_IPS_BASE_ADDR (0x44460000) 29 #define SOC_SRC_GLOBAL_RBASE (SOC_SRC_IPS_BASE_ADDR + 0x0000) 30 31 typedef enum 32 { 33 SOC_MIX_PD_MEDIAMIX, 34 SOC_MIX_PD_MLMIX, 35 SOC_MIX_PD_DDRMIX, 36 } soc_mix_power_domain_e; 37 38 typedef enum 39 { 40 SOC_SRC_MIX_EDGELOCK = 0, 41 SOC_SRC_MIX_AONMIX = 1, 42 SOC_SRC_MIX_WAKEUPMIX = 2, 43 SOC_SRC_MIX_DDRMIX = 3, 44 SOC_SRC_MIX_DDRPHY = 4, 45 SOC_SRC_MIX_ML = 5, 46 SOC_SRC_MIX_NIC = 6, 47 SOC_SRC_MIX_HSIO = 7, 48 SOC_SRC_MIX_MEDIA = 8, 49 SOC_SRC_MIX_CM33 = 9, 50 SOC_SRC_MIX_CA55C0 = 10, 51 SOC_SRC_MIX_CA55C1 = 11, 52 SOC_SRC_MIX_CA55CLUSTER = 12, 53 } soc_src_mix_slice_id_e; 54 55 typedef enum 56 { 57 SOC_SRC_MEM_AONMIX = 0, 58 SOC_SRC_MEM_WAKEUPMIX = 1, 59 SOC_SRC_MEM_DDRMIX = 2, 60 SOC_SRC_MEM_DDRPHY = 3, 61 SOC_SRC_MEM_ML = 4, 62 SOC_SRC_MEM_NIC = 5, 63 SOC_SRC_MEM_OCRAM = 6, 64 SOC_SRC_MEM_HSIO = 7, 65 SOC_SRC_MEM_MEDIA = 8, 66 SOC_SRC_MEM_CA55C0 = 9, 67 SOC_SRC_MEM_CA55C1 = 10, 68 SOC_SRC_MEM_CA55CLUSTER = 11, 69 SOC_SRC_MEM_L3 = 12, 70 } soc_src_mem_slice_id_e; 71 72 typedef struct 73 { 74 uint32_t reserved[1]; 75 uint32_t authen_ctrl; 76 uint32_t reserved1[2]; 77 uint32_t scr; 78 uint32_t srtmr; 79 uint32_t srmask; 80 uint32_t reserved2[1]; 81 uint32_t srmr[6]; 82 uint32_t reserved3[2]; 83 uint32_t sbmr[2]; 84 uint32_t reserved4[2]; 85 uint32_t srsr; 86 uint32_t gpr[19]; 87 uint32_t reserved5[24]; 88 uint32_t gpr20; 89 uint32_t cm_quiesce; 90 uint32_t cold_reset_ssar_ack_ctrl; 91 uint32_t sp_iso_ctrl; 92 uint32_t rom_lp_ctrl; 93 uint32_t a55_deny_stat; 94 } soc_src_general_regs_t; 95 96 typedef struct 97 { 98 uint32_t reserved[1]; 99 uint32_t mem_ctrl; 100 uint32_t memlp_ctrl_0; 101 uint32_t reserved1[1]; 102 uint32_t memlp_ctrl_1; 103 uint32_t memlp_ctrl_2; 104 uint32_t mem_stat; 105 } soc_src_mem_slice_regs_t; 106 #endif /* _FSL_CLOCK_H_ */ 107 108 /******************************************************************************* 109 * API 110 ******************************************************************************/ 111 #if defined(__cplusplus) 112 extern "C" { 113 #endif /* __cplusplus */ 114 int SOC_MixPowerInit(soc_mix_power_domain_e pwr_dom); 115 void SOC_DisableIsolation(void); 116 #if defined(__cplusplus) 117 } 118 #endif /* __cplusplus */ 119