#
# Copyright (c) 2022, MediaTek Inc. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#

# Enable or disable spm feature
MT_SPM_FEATURE_SUPPORT=yes

# Enable or disable cirq restore
MT_SPM_CIRQ_FEATURE_SUPPORT=yes

# sspm notifier support
MT_SPM_SSPM_NOTIFIER_SUPPORT=yes

CUR_SPM_FOLDER = ${MTK_PLAT_SOC}/drivers/spm

# spm common files
PLAT_SPM_SOURCE_FILES_COMMON +=				\
	${CUR_SPM_FOLDER}/mt_spm.c			\
	${CUR_SPM_FOLDER}/mt_spm_internal.c		\
	${CUR_SPM_FOLDER}/mt_spm_pmic_wrap.c		\
	${CUR_SPM_FOLDER}/mt_spm_conservation.c		\
	${CUR_SPM_FOLDER}/mt_spm_extern.c

# spm platform dependcy files
PLAT_SPM_SOURCE_FILES +=					\
	${CUR_SPM_FOLDER}/constraints/mt_spm_rc_syspll.c	\
	${CUR_SPM_FOLDER}/constraints/mt_spm_rc_bus26m.c	\
	${CUR_SPM_FOLDER}/constraints/mt_spm_rc_cpu_buck_ldo.c	\
	${CUR_SPM_FOLDER}/constraints/mt_spm_rc_dram.c		\
	${CUR_SPM_FOLDER}/mt_spm_cond.c				\
	${CUR_SPM_FOLDER}/mt_spm_suspend.c			\
	${CUR_SPM_FOLDER}/mt_spm_idle.c

ifeq (${MT_SPM_FEATURE_SUPPORT}, no)
PLAT_SPM_DEBUG_CFLAGS += -DATF_PLAT_SPM_UNSUPPORT

BL31_MT_LPM_PLAT_SPM_SOURCE_FILES += ${PLAT_SPM_SOURCE_FILES_COMMON}
else
BL31_MT_LPM_PLAT_SPM_SOURCE_FILES +=	\
	${PLAT_SPM_SOURCE_FILES_COMMON} \
	${PLAT_SPM_SOURCE_FILES}
endif

ifeq (${MT_SPM_CIRQ_FEATURE_SUPPORT}, no)
PLAT_SPM_DEBUG_CFLAGS += -DATF_PLAT_CIRQ_UNSUPPORT
endif

ifeq (${MT_SPM_SSPM_NOTIFIER_SUPPORT}, no)
PLAT_SPM_DEBUG_CFLAGS += -DATF_PLAT_SPM_SSPM_NOTIFIER_UNSUPPORT
else
BL31_MT_LPM_PLAT_SPM_SOURCE_FILES += ${CUR_SPM_FOLDER}/notifier/mt_spm_sspm_notifier.c
endif

ifeq (${MTK_VOLTAGE_BIN_VCORE}, yes)
PLAT_SPM_DEBUG_CFLAGS += -DATF_VOLTAGE_BIN_VCORE_SUPPORT
endif

ifeq ($(MTK_SPM_EXTENSION_CONFIG), pmic6362)
MTK_SPM_EXTENSION_PMIC_CONTROL := 6362
$(eval $(call add_define,MTK_SPM_EXTENSION_PMIC_CONTROL))
endif

$(info --------------------------------------)
$(info SPM build flags: ${PLAT_SPM_DEBUG_CFLAGS})
$(info SPM build files: ${BL31_MT_LPM_PLAT_SPM_SOURCE_FILES})
$(info --------------------------------------)

# Common makefile for platform.mk
PLAT_INCLUDES +=				\
	${PLAT_SPM_DEBUG_CFLAGS}		\
	-I${CUR_SPM_FOLDER}/			\
	-I${CUR_SPM_FOLDER}/constraints/	\
	-I${CUR_SPM_FOLDER}/notifier/

PLAT_BL_COMMON_SOURCES += ${BL31_MT_LPM_PLAT_SPM_SOURCE_FILES}
