# SPDX-License-Identifier: GPL-2.0
UFS_SOC_CHIP_NAME := $(strip $(subst ", ,$(CONFIG_VENDOR_CHIP_PREFIX)))
UFS_CHIP_TYPE := $(strip $(subst ", , $(CONFIG_VENDOR_CHIP_SUFFIX)))
UFS_CHIP_VERSION := $(UFS_SOC_CHIP_NAME)_$(UFS_CHIP_TYPE)

INCLUDE += -I$(srctree)/platform_include/basicplatform/linux/ufs
INCLUDE += -I$(srctree)/include/platform_include/basicplatform/linux/ufs
INCLUDE += -I$(srctree)/vendor/include/platform_include/basicplatform/linux/ufs
INCLUDE += -I$(srctree)/drivers
INCLUDE += -I$(srctree)/drivers/scsi/ufs
INCLUDE += -I$(srctree)/drivers/scsi/ufs/dfa_test
EXTRA_CFLAGS += -I$(srctree)/platform_include/basicplatform/linux/ufs
EXTRA_CFLAGS += -I$(srctree)/include/platform_include/basicplatform/linux/ufs
EXTRA_CFLAGS += -I$(srctree)/vendor/include/platform_include/basicplatform/linux/ufs
EXTRA_CFLAGS += -I$(srctree)/drivers
EXTRA_CFLAGS += -I$(srctree)/drivers/scsi/ufs
EXTRA_CFLAGS += -I$(srctree)/drivers/scsi/ufs/dfa_test
ccflags-y += -I$(srctree)/platform_include/basicplatform/linux/ufs
ccflags-y += -I$(srctree)/include/platform_include/basicplatform/linux/ufs
ccflags-y += -I$(srctree)/vendor/include/platform_include/basicplatform/linux/ufs
ccflags-y += -I$(srctree)/drivers
ccflags-y += -I$(srctree)/drivers/scsi/ufs
ccflags-y += -I$(srctree)/drivers/scsi/ufs/dfa_test

ccflags-y += -I$(srctree)/drivers/platform_drivers/tzdriver
ccflags-$(CONFIG_SCSI_UFS_VIRTUALIZ_SERVICE) += -I${HMSDKSYSROOTPATH}/usr/include/

obj-$(CONFIG_SCSI_HUFS) += ufshcd_extend.o ufshcd_perf.o ufshcd_debug.o ufshcd_protocol.o
obj-$(CONFIG_SCSI_HUFS) += hufs_plat.o
obj-$(CONFIG_SCSI_HUFS) += ufshcd_hufs_extend.o hufs_hibern8.o
obj-$(CONFIG_SCSI_HUFS) += hufs_mphy.o
obj-$(CONFIG_SCSI_HUFS) += ufs_mphy_firmware.o
obj-$(CONFIG_SCSI_UFS_TAURUS) += ufs-taurus.o
obj-$(CONFIG_SCSI_UFS_PISCES) += ufs-pisces.o
obj-$(CONFIG_SCSI_UFS_SCORPIO) += ufs_scorpio.o ufs_trap.o
obj-$(CONFIG_SCSI_UFS_LEO) += ufs-leo.o
obj-$(CONFIG_SCSI_UFS_SGR) += ufs-sgr.o
obj-$(CONFIG_SCSI_UFS_ANTLIA) += ufs_antlia.o ufs_trap.o
ifeq ($(CONFIG_SCSI_UFS_AQUILA),y)
ifeq ($(CONFIG_DFA_MCQ),y)
obj-$(CONFIG_SCSI_UFS_AQUILA) += ufs_aquila.o ufs_trap.o dfa_aquila.o
else
obj-$(CONFIG_SCSI_UFS_AQUILA) += ufs_aquila.o ufs_trap.o
endif
endif
obj-$(CONFIG_SCSI_UFS_ARA) += ufs_ara.o ufs_trap.o
obj-$(CONFIG_SCSI_UFS_ORION) += ufs_orion.o dfa_orion.o
obj-$(CONFIG_SCSI_UFS_PICTOR) += ufs_pictor.o ufs_fpga_spi.o dfa_pictor.o
obj-$(CONFIG_SCSI_UFS_AURIGA) += ufs_auriga.o ufs_fpga_spi.o
obj-$(CONFIG_UFS_4_0_HC) += ufs_mcq.o
obj-$(CONFIG_DFA_MCQ) += dfa_mcq.o dfa_debugfs.o dfa_error.o dfa_crypto.o ufs_trap.o
obj-$(CONFIG_SCSI_HUFS) += ufs-hpb.o
obj-$(CONFIG_HUFS_HC) += hufs_hcd.o
obj-$(CONFIG_HUFS_BOOTROM_MODE) += ufs_config_efuse.o ufs_trap.o
obj-$(CONFIG_SCSI_UFS_LIBRA) += ufs-libra.o
obj-$(CONFIG_HUFS_HC) += hufs-dump.o
obj-$(CONFIG_RPMB_UFS) += ufs_rpmb.o
obj-$(CONFIG_HUAWEI_UFS_VENDOR_MODE) += ufs_vendor_mode.o
obj-$(CONFIG_SCSI_UFS_FAULT_INJECT) += ufs_fault_inject.o
obj-$(CONFIG_DFX_DEBUG_FS) += ufs_debugfs.o
obj-$(CONFIG_HUAWEI_UFS_DSM) += dsm_ufs.o
obj-$(CONFIG_AB_PARTITION_TABLE) += hufs-lib.o
obj-$(CONFIG_HUFS_MANUAL_BKOPS) += hufs-bkops.o hufs_bkops_interface.o hufs_bkops_enhanced.o
obj-$(CONFIG_SCSI_UFS_VELA61_VCMD) += ufs_vendor_cmd.o
obj-$(CONFIG_SCSI_UFS_VELA61_VCMD) += ufs_vcmd_proc.o
ifneq ($(CONFIG_CDC_UFSTT_DISABLE),y)
obj-$(CONFIG_SCSI_UFS_VELA61_VCMD) += ufstt.o
endif
obj-$(CONFIG_SCSI_UFS_UNISTORE) += ufs_unistore_core.o
obj-$(CONFIG_SCSI_UFS_UNISTORE) += ufs_unistore_read.o
obj-$(CONFIG_SCSI_UFS_UNISTORE) += ufs_unistore_write.o
obj-$(CONFIG_SCSI_UFS_GEAR_CTRL) += ufs_gear_ctrl.o
obj-$(CONFIG_SCSI_UFS_VIRTUALIZ_AGENT) += ufs_virtualiz_agent.o
obj-$(CONFIG_SCSI_UFS_VIRTUALIZ_SERVICE) += ufs_virtualiz_service.o
ifneq ($(CONFIG_RPMB_UFS),y)
obj-$(CONFIG_SCSI_UFS_VIRTUALIZ_SERVICE) += ufs_rpmb.o
endif

ifeq ($(CONFIG_DFX_DEBUG_FS),y)
obj-$(CONFIG_HUFS_HC) += hufs_test.o
endif

ifeq ($(TARGET_VERSION_MODE), factory)
	obj-$(CONFIG_HUAWEI_UFS_TRACE) += ufs_trace.o
	EXTRA_CFLAGS += -DUFS_TRACE_FLAG
	EXTRA_CFLAGS += -DHEALTH_INFO_FACTORY_MODE
	EXTRA_CFLAGS += -DDSM_FOR_FACTORY_MODE
ifneq ($(TARGET_BOARD_PLATFORM), charlotte_pro)
	EXTRA_CFLAGS += -DUFS_HIGH_TEMP_DISABLE
endif
endif

ifeq ($(UFS_CHIP_VERSION), charlotte_csv2)
ifneq ($(CONFIG_FBE_ARMPC), y)
ccflags-$(CONFIG_FILE_BASED_ENCRYPTO) += -DCONFIG_FBE3_1
ccflags-$(CONFIG_FILE_BASED_ENCRYPTO) += -DCONFIG_SCSI_UFS_ENHANCED_INLINE_CRYPTO_KM
endif
endif

ifeq ($(TARGET_BOARD_PLATFORM), charlotte_pro)
ifeq ($(chip_type), csv2)
ccflags-$(CONFIG_SCSI_HUFS) += -DCONFIG_SCSI_UFS_ANTLIA_CSV2
endif
ifeq ($(chip_type), csv3)
ccflags-$(CONFIG_SCSI_HUFS) += -DCONFIG_SCSI_UFS_ANTLIA_CSV3
endif
endif

ifeq ($(UFS_CHIP_VERSION), nashville_scout)
ccflags-$(CONFIG_SCSI_UFS_AQUILA) += -DCONFIG_SCSI_UFS_AQUILA_SCOUT
endif

ifeq ($(UFS_CHIP_VERSION), nashville_)
ccflags-$(CONFIG_SCSI_UFS_AQUILA) += -DCONFIG_SCSI_UFS_AQUILA_CS
endif

ifeq ($(UFS_CHIP_VERSION), changsha_es)
ccflags-$(CONFIG_SCSI_UFS_ORION) += -DCCONFIG_SCSI_UFS_ORION_ES
obj-$(CONFIG_DFA_MCQ) += dfa_test/dfa_test.o
obj-$(CONFIG_DFA_MCQ) += dfa_test/dfa_hts_test.o
else ifeq ($(UFS_CHIP_VERSION), nanchang_es)
ccflags-$(CONFIG_SCSI_UFS_PICTOR) += -DCCONFIG_SCSI_UFS_PICTOR_ES
obj-$(CONFIG_DFA_MCQ) += dfa_test/dfa_test.o
obj-$(CONFIG_DFA_MCQ) += dfa_test/dfa_hts_test.o
else
obj-$(CONFIG_DFA_MCQ) += dfa_test/dfa_test_null.o
endif