# SPDX-License-Identifier: GPL-2.0+
#
# Copyright (C) 2018-2019 Texas Instruments Incorporated - http://www.ti.com/
#	Lokesh Vutla <lokeshvutla@ti.com>

choice
	prompt "K3 J721E based boards"
	optional

config TARGET_J721E_A72_EVM
	bool "TI K3 based J721E EVM running on A72"
	select ARM64
	select BOARD_LATE_INIT
	imply TI_I2C_BOARD_DETECT
	select SYS_DISABLE_DCACHE_OPS

config TARGET_J721E_R5_EVM
	bool "TI K3 based J721E EVM running on R5"
	select CPU_V7R
	select SYS_THUMB_BUILD
	select K3_LOAD_SYSFW
	select RAM
	select SPL_RAM
	select K3_DDRSS
	imply SYS_K3_SPL_ATF
	imply TI_I2C_BOARD_DETECT

config TARGET_J7200_A72_EVM
	bool "TI K3 based J7200 EVM running on A72"
	select ARM64
	select BOARD_LATE_INIT
	imply TI_I2C_BOARD_DETECT
	select SYS_DISABLE_DCACHE_OPS

config TARGET_J7200_R5_EVM
	bool "TI K3 based J7200 EVM running on R5"
	select CPU_V7R
	select SYS_THUMB_BUILD
	select K3_LOAD_SYSFW
	select RAM
	select SPL_RAM
	select K3_DDRSS
	imply SYS_K3_SPL_ATF
	imply TI_I2C_BOARD_DETECT

endchoice

if TARGET_J721E_A72_EVM

config SYS_BOARD
       default "j721e"

config SYS_VENDOR
       default "ti"

config SYS_CONFIG_NAME
       default "j721e_evm"

config ENV_SOURCE_FILE
       default "j721e"

source "board/ti/common/Kconfig"

endif

if TARGET_J721E_R5_EVM

config SYS_BOARD
       default "j721e"

config SYS_VENDOR
       default "ti"

config SYS_CONFIG_NAME
       default "j721e_evm"

config ENV_SOURCE_FILE
       default "j721e"

source "board/ti/common/Kconfig"

endif

if TARGET_J7200_A72_EVM

config SYS_BOARD
       default "j721e"

config SYS_VENDOR
       default "ti"

config SYS_CONFIG_NAME
       default "j721e_evm"

config ENV_SOURCE_FILE
       default "j721e"

source "board/ti/common/Kconfig"

endif

if TARGET_J7200_R5_EVM

config SYS_BOARD
       default "j721e"

config SYS_VENDOR
       default "ti"

config SYS_CONFIG_NAME
       default "j721e_evm"

config ENV_SOURCE_FILE
       default "j721e"

source "board/ti/common/Kconfig"

endif
