config TI_I2C_BOARD_DETECT
	bool "Support for Board detection for TI platforms"
	help
	   Support for detection board information on Texas Instrument's
	   Evaluation Boards which have I2C based EEPROM detection

config EEPROM_BUS_ADDRESS
	int "Board EEPROM's I2C bus address"
	range 0 8
	default 0
	depends on TI_I2C_BOARD_DETECT

config EEPROM_CHIP_ADDRESS
	hex "Board EEPROM's I2C chip address"
	range 0 0xff
	default 0x50
	depends on TI_I2C_BOARD_DETECT

config CAPE_EEPROM_BUS_NUM
	int "Cape EEPROM's I2C bus address"
	range 0 8
	default 2
	depends on CMD_EXTENSION

config TI_COMMON_CMD_OPTIONS
	bool "Enable cmd options on TI platforms"
	imply CMD_ASKENV
	imply CMD_BOOTZ
	imply CRC32_VERIFY if ARCH_KEYSTONE
	imply CMD_DFU if USB_GADGET_DOWNLOAD
	imply CMD_DHCP
	imply CMD_EEPROM
	imply CMD_EXT2
	imply CMD_EXT4
	imply CMD_EXT4_WRITE
	imply CMD_FAT
	imply FAT_WRITE if CMD_FAT
	imply CMD_FS_GENERIC
	imply CMD_GPIO
	imply CMD_GPT
	imply CMD_I2C
	imply CMD_MII
	imply CMD_MMC
	imply CMD_PART
	imply CMD_PING
	imply CMD_PMIC if DM_PMIC
	imply CMD_REGULATOR if DM_REGULATOR
	imply CMD_SF if SPI_FLASH
	imply CMD_SPI
	imply CMD_TIME
	imply CMD_USB if USB

config TI_FDT_FOLDER_PATH
	string "Location of Folder path where dtb is present"
	default "ti/davinci" if ARCH_DAVINCI
	default "ti/keystone" if ARCH_KEYSTONE
	default "ti/omap" if ARCH_OMAP2PLUS
	default "ti" if ARCH_K3
	depends on ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_OMAP2PLUS || ARCH_K3
	help
	   Folder path for kernel device tree default.
	   This is used along with fdtfile path to locate the kernel
	   device tree blob.
