1*91f16700Schasinglulu# 2*91f16700Schasinglulu# Copyright (c) 2022, MediaTek Inc. All rights reserved. 3*91f16700Schasinglulu# 4*91f16700Schasinglulu# SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu# 6*91f16700Schasinglulu 7*91f16700Schasinglulu# Enable or disable spm feature 8*91f16700SchasingluluMT_SPM_FEATURE_SUPPORT=yes 9*91f16700Schasinglulu 10*91f16700Schasinglulu# Enable or disable cirq restore 11*91f16700SchasingluluMT_SPM_CIRQ_FEATURE_SUPPORT=yes 12*91f16700Schasinglulu 13*91f16700Schasinglulu# sspm notifier support 14*91f16700SchasingluluMT_SPM_SSPM_NOTIFIER_SUPPORT=yes 15*91f16700Schasinglulu 16*91f16700SchasingluluCUR_SPM_FOLDER = ${MTK_PLAT_SOC}/drivers/spm 17*91f16700Schasinglulu 18*91f16700Schasinglulu# spm common files 19*91f16700SchasingluluPLAT_SPM_SOURCE_FILES_COMMON += \ 20*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm.c \ 21*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_internal.c \ 22*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_pmic_wrap.c \ 23*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_vcorefs.c \ 24*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_conservation.c \ 25*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_extern.c 26*91f16700Schasinglulu 27*91f16700Schasinglulu# spm platform dependcy files 28*91f16700SchasingluluPLAT_SPM_SOURCE_FILES += \ 29*91f16700Schasinglulu ${CUR_SPM_FOLDER}/constraints/mt_spm_rc_syspll.c \ 30*91f16700Schasinglulu ${CUR_SPM_FOLDER}/constraints/mt_spm_rc_bus26m.c \ 31*91f16700Schasinglulu ${CUR_SPM_FOLDER}/constraints/mt_spm_rc_cpu_buck_ldo.c \ 32*91f16700Schasinglulu ${CUR_SPM_FOLDER}/constraints/mt_spm_rc_dram.c \ 33*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_cond.c \ 34*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_suspend.c \ 35*91f16700Schasinglulu ${CUR_SPM_FOLDER}/mt_spm_idle.c 36*91f16700Schasinglulu 37*91f16700Schasingluluifeq (${MT_SPM_FEATURE_SUPPORT}, no) 38*91f16700SchasingluluPLAT_SPM_DEBUG_CFLAGS += -DATF_PLAT_SPM_UNSUPPORT 39*91f16700Schasinglulu 40*91f16700SchasingluluBL31_MT_LPM_PLAT_SPM_SOURCE_FILES += ${PLAT_SPM_SOURCE_FILES_COMMON} 41*91f16700Schasingluluelse 42*91f16700SchasingluluBL31_MT_LPM_PLAT_SPM_SOURCE_FILES += \ 43*91f16700Schasinglulu ${PLAT_SPM_SOURCE_FILES_COMMON} \ 44*91f16700Schasinglulu ${PLAT_SPM_SOURCE_FILES} 45*91f16700Schasingluluendif 46*91f16700Schasinglulu 47*91f16700Schasingluluifeq (${MT_SPM_CIRQ_FEATURE_SUPPORT}, no) 48*91f16700SchasingluluPLAT_SPM_DEBUG_CFLAGS += -DATF_PLAT_CIRQ_UNSUPPORT 49*91f16700Schasingluluendif 50*91f16700Schasinglulu 51*91f16700Schasingluluifeq (${MT_SPM_SSPM_NOTIFIER_SUPPORT}, no) 52*91f16700SchasingluluPLAT_SPM_DEBUG_CFLAGS += -DATF_PLAT_SPM_SSPM_NOTIFIER_UNSUPPORT 53*91f16700Schasingluluelse 54*91f16700SchasingluluBL31_MT_LPM_PLAT_SPM_SOURCE_FILES += ${CUR_SPM_FOLDER}/notifier/mt_spm_sspm_notifier.c 55*91f16700Schasingluluendif 56*91f16700Schasinglulu 57*91f16700Schasingluluifeq (${MTK_VOLTAGE_BIN_VCORE}, yes) 58*91f16700SchasingluluPLAT_SPM_DEBUG_CFLAGS += -DATF_VOLTAGE_BIN_VCORE_SUPPORT 59*91f16700Schasingluluendif 60*91f16700Schasinglulu 61*91f16700Schasingluluifeq ($(MTK_SPM_EXTENSION_CONFIG), pmic6362) 62*91f16700SchasingluluMTK_SPM_EXTENSION_PMIC_CONTROL := 6362 63*91f16700Schasinglulu$(eval $(call add_define,MTK_SPM_EXTENSION_PMIC_CONTROL)) 64*91f16700Schasingluluendif 65*91f16700Schasinglulu 66*91f16700Schasinglulu$(info --------------------------------------) 67*91f16700Schasinglulu$(info SPM build flags: ${PLAT_SPM_DEBUG_CFLAGS}) 68*91f16700Schasinglulu$(info SPM build files: ${BL31_MT_LPM_PLAT_SPM_SOURCE_FILES}) 69*91f16700Schasinglulu$(info --------------------------------------) 70*91f16700Schasinglulu 71*91f16700Schasinglulu# Common makefile for platform.mk 72*91f16700SchasingluluPLAT_INCLUDES += \ 73*91f16700Schasinglulu ${PLAT_SPM_DEBUG_CFLAGS} \ 74*91f16700Schasinglulu -I${CUR_SPM_FOLDER}/ \ 75*91f16700Schasinglulu -I${CUR_SPM_FOLDER}/constraints/ \ 76*91f16700Schasinglulu -I${CUR_SPM_FOLDER}/notifier/ 77*91f16700Schasinglulu 78*91f16700SchasingluluPLAT_BL_COMMON_SOURCES += ${BL31_MT_LPM_PLAT_SPM_SOURCE_FILES} 79