if OMAP54XX

choice
	prompt "OMAP5 board select"
	optional

config TARGET_CL_SOM_AM57X
	bool "CompuLab CL-SOM-AM57x"

config TARGET_CM_T54
	bool "CompuLab CM-T54"

config TARGET_OMAP5_UEVM
	bool "TI OMAP5 uEVM board"

config TARGET_DRA7XX_EVM
	bool "TI DRA7XX"
	select BOARD_LATE_INIT
	select TI_I2C_BOARD_DETECT
	select PHYS_64BIT

config TARGET_AM57XX_EVM
	bool "AM57XX"
	select BOARD_LATE_INIT
	select TI_I2C_BOARD_DETECT

endchoice

config SYS_SOC
	default "omap5"

config TI_SECURE_EMIF_REGION_START
	hex "Reserved EMIF region start address"
	depends on TI_SECURE_DEVICE
	default 0x0
	help
	  Reserved EMIF region start address. Set to "0" to auto-select
	  to be at the end of the external memory region.

config TI_SECURE_EMIF_TOTAL_REGION_SIZE
	hex "Reserved EMIF region size"
	depends on TI_SECURE_DEVICE
	default 0x0
	help
	  Total reserved EMIF region size. Default is 0, which means no reserved EMIF
	  region on secure devices.

config TI_SECURE_EMIF_PROTECTED_REGION_SIZE
	hex "Size of protected region within reserved EMIF region"
	depends on TI_SECURE_DEVICE
	default 0x0
	help
	  This config option is used to specify the size of the portion of the total
	  reserved EMIF region set aside for secure OS needs that will  be protected
	  using hardware memory firewalls. This value must be smaller than the
	  TI_SECURE_EMIF_TOTAL_REGION_SIZE value.

if TARGET_DRA7XX_EVM || TARGET_AM57XX_EVM
menu "Voltage Domain OPP selections"

choice
	prompt "MPU Voltage Domain"
	default DRA7_MPU_OPP_NOM
        help
	  Select the Operating Performance Point(OPP) for the MPU voltage
	  domain on DRA7xx & AM57xx SoCs.

config DRA7_MPU_OPP_NOM
	bool "OPP NOM"
	help
	  This config option enables Normal OPP for MPU. This is the safest
	  option for booting.

endchoice

choice
	prompt "DSPEVE Voltage Domain"
        help
	  Select the Operating Performance Point(OPP) for the DSPEVE voltage
	  domain on DRA7xx & AM57xx SoCs.

config DRA7_DSPEVE_OPP_NOM
	bool "OPP NOM"
	help
	  This config option enables Normal OPP for DSPEVE. This is the safest
	  option for booting and choose this when unsure about other OPPs .

config DRA7_DSPEVE_OPP_OD
	bool "OPP OD"
	help
	  This config option enables Over drive OPP for DSPEVE.

config DRA7_DSPEVE_OPP_HIGH
	bool "OPP HIGH"
	help
	  This config option enables High OPP for DSPEVE.

endchoice

choice
	prompt "IVA Voltage Domain"
        help
	  Select the Operating Performance Point(OPP) for the IVA voltage
	  domain on DRA7xx & AM57xx SoCs.

config DRA7_IVA_OPP_NOM
	bool "OPP NOM"
	help
	  This config option enables Normal OPP for IVA. This is the safest
	  option for booting and choose this when unsure about other OPPs .

config DRA7_IVA_OPP_OD
	bool "OPP OD"
	help
	  This config option enables Over drive OPP for IVA.

config DRA7_IVA_OPP_HIGH
	bool "OPP HIGH"
	help
	  This config option enables High OPP for IVA.

endchoice

choice
	prompt "GPU Voltage Domain"
        help
	  Select the Operating Performance Point(OPP) for the GPU voltage
	  domain on DRA7xx & AM57xx SoCs.

config DRA7_GPU_OPP_NOM
	bool "OPP NOM"
	help
	  This config option enables Normal OPP for GPU. This is the safest
	  option for booting and choose this when unsure about other OPPs .

config DRA7_GPU_OPP_OD
	bool "OPP OD"
	help
	  This config option enables Over drive OPP for GPU.

config DRA7_GPU_OPP_HIGH
	bool "OPP HIGH"
	help
	  This config option enables High OPP for GPU.

endchoice

endmenu
endif

source "board/compulab/cl-som-am57x/Kconfig"
source "board/compulab/cm_t54/Kconfig"
source "board/ti/omap5_uevm/Kconfig"
source "board/ti/dra7xx/Kconfig"
source "board/ti/am57xx/Kconfig"

endif
