xref: /rk3399_ARM-atf/plat/mediatek/drivers/spm/mt8189/mt_spm.h (revision af0370f25a6663a0d737bbfb3985df4232eaaa55)
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