# 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 SOC_K3_J721E
	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 SOC_K3_J721E
	select K3_LOAD_SYSFW
	select RAM
	select SPL_RAM
	select K3_J721E_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"

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 SPL_LDSCRIPT
	default "arch/arm/mach-omap2/u-boot-spl.lds"

source "board/ti/common/Kconfig"

endif
