1*5f748b3cSKun Lu /* 2*5f748b3cSKun Lu * Copyright (c) 2025, Mediatek Inc. All rights reserved. 3*5f748b3cSKun Lu * 4*5f748b3cSKun Lu * SPDX-License-Identifier: BSD-3-Clause 5*5f748b3cSKun Lu */ 6*5f748b3cSKun Lu 7*5f748b3cSKun Lu #ifndef MT_SPM_H 8*5f748b3cSKun Lu #define MT_SPM_H 9*5f748b3cSKun Lu 10*5f748b3cSKun Lu #include <stdint.h> 11*5f748b3cSKun Lu #include <stdio.h> 12*5f748b3cSKun Lu 13*5f748b3cSKun Lu #include <lib/pm/mtk_pm.h> 14*5f748b3cSKun Lu #include <lpm_v2/mt_lp_rq.h> 15*5f748b3cSKun Lu #include <mt_spm_common_v1.h> 16*5f748b3cSKun Lu 17*5f748b3cSKun Lu #define CLK_SCP_CFG_0 (CKSYS_BASE + 0x200) 18*5f748b3cSKun Lu #define CLK_SCP_CFG_1 (CKSYS_BASE + 0x210) 19*5f748b3cSKun Lu #define INFRA_BUS_DCM_CTRL (INFRACFG_AO_BASE + 0x070) 20*5f748b3cSKun Lu #define RG_AXI_DCM_DIS_EN BIT(21) 21*5f748b3cSKun Lu #define RG_PLLCK_SEL_NO_SPM BIT(22) 22*5f748b3cSKun Lu #define MT_SPM_TIME_GET(tm) ({ (tm) = el3_uptime(); }) 23*5f748b3cSKun Lu #define SPM_FW_NO_RESUME 1 24*5f748b3cSKun Lu #define MCUSYS_MTCMOS_ON 0 25*5f748b3cSKun Lu #define WAKEUP_LOG_ON 0 26*5f748b3cSKun Lu #define PMIC_ONLV 1 27*5f748b3cSKun Lu 28*5f748b3cSKun Lu #define MT_SPM_USING_SRCLKEN_RC 29*5f748b3cSKun Lu /* SPM extern operand definition */ 30*5f748b3cSKun Lu #define MT_SPM_EX_OP_CLR_26M_RECORD BIT(0) 31*5f748b3cSKun Lu #define MT_SPM_EX_OP_SET_WDT BIT(1) 32*5f748b3cSKun Lu #define MT_SPM_EX_OP_NON_GENERIC_RESOURCE_REQ BIT(2) 33*5f748b3cSKun Lu #define MT_SPM_EX_OP_SET_SUSPEND_MODE BIT(3) 34*5f748b3cSKun Lu #define MT_SPM_EX_OP_SET_IS_ADSP BIT(4) 35*5f748b3cSKun Lu #define MT_SPM_EX_OP_SRCLKEN_RC_BBLPM BIT(5) 36*5f748b3cSKun Lu #define MT_SPM_EX_OP_HW_S1_DETECT BIT(6) 37*5f748b3cSKun Lu #define MT_SPM_EX_OP_TRACE_LP BIT(7) 38*5f748b3cSKun Lu #define MT_SPM_EX_OP_TRACE_SUSPEND BIT(8) 39*5f748b3cSKun Lu #define MT_SPM_EX_OP_TRACE_TIMESTAMP_EN BIT(9) 40*5f748b3cSKun Lu #define MT_SPM_EX_OP_TIME_CHECK BIT(10) 41*5f748b3cSKun Lu #define MT_SPM_EX_OP_TIME_OBS BIT(11) 42*5f748b3cSKun Lu #define MT_SPM_EX_OP_SET_IS_USB_HEADSET BIT(12) 43*5f748b3cSKun Lu #define MT_SPM_EX_OP_SET_IS_FM_AUDIO BIT(13) 44*5f748b3cSKun Lu #define MT_SPM_EX_OP_DEVICES_SAVE BIT(14) 45*5f748b3cSKun Lu #define MT_SPM_EX_OP_DISABLE_VCORE_LP BIT(15) 46*5f748b3cSKun Lu 47*5f748b3cSKun Lu #define MT_BUS26M_EXT_LP_26M_ON_MODE \ 48*5f748b3cSKun Lu (MT_SPM_EX_OP_SET_IS_ADSP | MT_SPM_EX_OP_SET_IS_FM_AUDIO) 49*5f748b3cSKun Lu 50*5f748b3cSKun Lu #define MT_VCORE_EXT_LP_VCORE_ON_MODE \ 51*5f748b3cSKun Lu (MT_SPM_EX_OP_SET_IS_ADSP | MT_SPM_EX_OP_SET_IS_USB_HEADSET | \ 52*5f748b3cSKun Lu MT_SPM_EX_OP_SET_IS_FM_AUDIO) 53*5f748b3cSKun Lu 54*5f748b3cSKun Lu /* EN SPM INFRA DEBUG OUT */ 55*5f748b3cSKun Lu #define DEBUGSYS_DEBUG_EN_REG (DBGSYS_DEM_BASE + 0x94) 56*5f748b3cSKun Lu 57*5f748b3cSKun Lu /* INFRA_AO_DEBUG_CON */ 58*5f748b3cSKun Lu #define INFRA_AO_DBG_CON0 (INFRACFG_AO_BASE + 0x500) 59*5f748b3cSKun Lu #define INFRA_AO_DBG_CON1 (INFRACFG_AO_BASE + 0x504) 60*5f748b3cSKun Lu #define INFRA_AO_DBG_CON2 (INFRACFG_AO_BASE + 0x508) 61*5f748b3cSKun Lu #define INFRA_AO_DBG_CON3 (INFRACFG_AO_BASE + 0x50C) 62*5f748b3cSKun Lu 63*5f748b3cSKun Lu #endif /* MT_SPM_H */ 64