if ARCH_EXYNOS

config BOARD_COMMON
	def_bool y
	depends on !TARGET_SMDKV310 && !TARGET_ARNDALE

choice
	prompt "EXYNOS architecture type select"
	optional

config ARCH_EXYNOS4
	bool "Exynos4 SoC family"
	select BOARD_EARLY_INIT_F
	select CPU_V7A
	select BLK
	select DM_MMC
	help
	  Samsung Exynos4 SoC family are based on ARM Cortex-A9 CPU. There
	  are multiple SoCs in this family including Exynos4210, Exynos4412,
	  and Exynos4212.

config ARCH_EXYNOS5
	bool "Exynos5 SoC family"
	select BOARD_EARLY_INIT_F
	select CPU_V7A
	select SHA_HW_ACCEL
	imply CMD_HASH
	imply CRC32_VERIFY
	imply HASH_VERIFY
	imply KEYBOARD
	imply USB_ETHER_ASIX
	imply USB_ETHER_RTL8152
	imply USB_ETHER_SMSC95XX
	select BLK
	select DM_MMC

	help
	  Samsung Exynos5 SoC family are based on ARM Cortex-A15 CPU (and
	  Cortex-A7 CPU in big.LITTLE configuration). There are multiple SoCs
	  in this family including Exynos5250, Exynos5420 and Exynos5800.

config ARCH_EXYNOS7
	bool "Exynos7 SoC family"
	select ARM64
	select BOARD_EARLY_INIT_F
	select BLK
	select DM_MMC
	help
	  Samsung Exynos7 SoC family are based on ARM Cortex-A57 CPU or
	  Cortex-A53 CPU (and some in a big.LITTLE configuration). There are
	  multiple SoCs in this family including Exynos7420.

endchoice

if ARCH_EXYNOS4

config EXYNOS4210
	bool

choice
	prompt "EXYNOS4 board select"

config TARGET_SMDKV310
	bool "Exynos4210 SMDKV310 board"
	select EXYNOS4210
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_TRATS
	select MISC_COMMON
	bool "Exynos4210 Trats board"

config TARGET_S5PC210_UNIVERSAL
	bool "EXYNOS4210 Universal C210 board"
	select MISC_COMMON

config TARGET_ORIGEN
	bool "Exynos4412 Origen board"
	select EXYNOS4210
	select SUPPORT_SPL

config TARGET_TRATS2
	bool "Exynos4412 Trat2 board"
	select MISC_COMMON

config TARGET_ODROID
	bool "Exynos4412 Odroid board"
	select MISC_COMMON

endchoice
endif

if ARCH_EXYNOS5

config EXYNOS5250
	bool

config EXYNOS5420
	bool

config EXYNOS5_DT
	bool

config SPL_GPIO
	default y

config SPL_LIBCOMMON_SUPPORT
	default y

config SPL_LIBGENERIC_SUPPORT
	default y

choice
	prompt "EXYNOS5 board select"

config TARGET_ODROID_XU3
	bool "Exynos5422 Odroid board"
	select EXYNOS5_DT
	select EXYNOS5420
	select MISC_COMMON
	select OF_CONTROL

config TARGET_ARNDALE
	bool "Exynos5250 Arndale board"
	select ARM_ERRATA_773022
	select ARM_ERRATA_774769
	select CPU_V7_HAS_NONSEC
	select CPU_V7_HAS_VIRT
	select EXYNOS5250
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_SMDK5250
	bool "SMDK5250 board"
	select EXYNOS5_DT
	select EXYNOS5250
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_SNOW
	bool "Snow board"
	select EXYNOS5_DT
	select EXYNOS5250
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_SPRING
	bool "Spring board"
	select EXYNOS5_DT
	select EXYNOS5250
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_SMDK5420
	bool "SMDK5420 board"
	select EXYNOS5_DT
	select EXYNOS5420
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_PEACH_PI
	bool "Peach Pi board"
	select EXYNOS5_DT
	select EXYNOS5420
	select OF_CONTROL
	select SUPPORT_SPL

config TARGET_PEACH_PIT
	bool "Peach Pit board"
	select EXYNOS5_DT
	select EXYNOS5420
	select OF_CONTROL
	select SUPPORT_SPL

endchoice
endif

if ARCH_EXYNOS7

choice
	prompt "EXYNOS7 board select"

config TARGET_ESPRESSO7420
	bool "ESPRESSO7420 board"
	select ARM64
	select ARMV8_MULTIENTRY
	select CLK_EXYNOS
	select OF_CONTROL
	select PINCTRL
	select PINCTRL_EXYNOS7420
	select SUPPORT_SPL

config  TARGET_A5Y17LTE
	bool "Samsung SM-A520F board"
	select ARM64
	select CLK_EXYNOS
	select OF_CONTROL
	select PINCTRL
	select PINCTRL_EXYNOS78x0
	select SUPPORT_SPL

config  TARGET_A7Y17LTE
	bool "Samsung SM-A720F board"
	select ARM64
	select CLK_EXYNOS
	select OF_CONTROL
	select PINCTRL
	select PINCTRL_EXYNOS78x0
	select SUPPORT_SPL

config  TARGET_A3Y17LTE
	bool "Samsung SM-A320F board"
	select ARM64
	select CLK_EXYNOS
	select OF_CONTROL
	select PINCTRL
	select PINCTRL_EXYNOS78x0
	select SUPPORT_SPL

endchoice
endif

config SYS_SOC
	default "exynos"

config EXYNOS_ACE_SHA
	bool "Advanced Crypto Engine SHA support"
	depends on (ARCH_EXYNOS4 || ARCH_EXYNOS5) && (LIB_HW_RAND || SHA_HW_ACCEL)
	default y if ARCH_EXYNOS5

config EXYNOS_TMU
	bool "Exynos5 thermal management unit support"
	depends on ARCH_EXYNOS5
	default y

source "board/samsung/smdkv310/Kconfig"
source "board/samsung/trats/Kconfig"
source "board/samsung/universal_c210/Kconfig"
source "board/samsung/origen/Kconfig"
source "board/samsung/trats2/Kconfig"
source "board/samsung/odroid/Kconfig"
source "board/samsung/arndale/Kconfig"
source "board/samsung/smdk5250/Kconfig"
source "board/samsung/smdk5420/Kconfig"
source "board/samsung/espresso7420/Kconfig"
source "board/samsung/axy17lte/Kconfig"

endif
