if OMAP34XX

# We only enable the clocks for the GPIO banks that a given board requies.
config OMAP3_GPIO_2
	bool
	default y if CMD_GPIO

config OMAP3_GPIO_3
	bool
	default y if CMD_GPIO

config OMAP3_GPIO_4
	bool
	default y if CMD_GPIO

config OMAP3_GPIO_5
	bool
	default y if CMD_GPIO

config OMAP3_GPIO_6
	bool
	default y if CMD_GPIO

choice
	prompt "OMAP3 board select"
	optional

config TARGET_AM3517_EVM
	bool "AM3517 EVM"
	select DM
	select DM_GPIO
	select DM_I2C
	select DM_MMC
	select DM_SERIAL
	imply CMD_DM

config TARGET_MT_VENTOUX
	bool "TeeJet Mt.Ventoux"
	select OMAP3_GPIO_4
	select OMAP3_GPIO_5 if USB_EHCI_HCD

config TARGET_OMAP3_BEAGLE
	bool "TI OMAP3 BeagleBoard"
	select DM
	select DM_GPIO
	select DM_SERIAL
	select OMAP3_GPIO_5
	select OMAP3_GPIO_6
	imply CMD_DM

config TARGET_CM_T35
	bool "CompuLab CM-T3530 and CM-T3730 boards"
	select OMAP3_GPIO_2
	select OMAP3_GPIO_5
	select OMAP3_GPIO_6 if LED_STATUS

config TARGET_DEVKIT8000
	bool "TimLL OMAP3 Devkit8000"
	select DM
	select DM_GPIO
	select DM_SERIAL
	imply CMD_DM

config TARGET_OMAP3_EVM
	bool "TI OMAP3 EVM"
	select DM
	select DM_GPIO
	select DM_SERIAL
	select OMAP3_GPIO_3
	imply CMD_DM

config TARGET_OMAP3_IGEP00X0
	bool "IGEP"
	select DM
	select DM_GPIO
	select DM_SERIAL
	select OMAP3_GPIO_3
	select OMAP3_GPIO_5
	select OMAP3_GPIO_6
	imply CMD_DM

config TARGET_OMAP3_OVERO
	bool "OMAP35xx Gumstix Overo"
	select DM
	select DM_GPIO
	select DM_SERIAL
	select OMAP3_GPIO_2
	select OMAP3_GPIO_3
	select OMAP3_GPIO_4
	select OMAP3_GPIO_5
	select OMAP3_GPIO_6
	imply CMD_DM

config TARGET_OMAP3_ZOOM1
	bool "TI Zoom1"
	select DM
	select DM_GPIO
	select DM_SERIAL
	imply CMD_DM

config TARGET_AM3517_CRANE
	bool "am3517_crane"

config TARGET_OMAP3_PANDORA
	bool "OMAP3 Pandora"
	select OMAP3_GPIO_4
	select OMAP3_GPIO_6

config TARGET_TRICORDER
	bool "Tricorder"
	select OMAP3_GPIO_2

config TARGET_MCX
	bool "MCX"
	select BOARD_LATE_INIT
	select OMAP3_GPIO_2 if USB_EHCI_HCD
	select OMAP3_GPIO_5 if USB_EHCI_HCD

config TARGET_OMAP3_LOGIC
	bool "OMAP3 Logic"
	select BOARD_LATE_INIT
	select DM
	select DM_GPIO
	select DM_SERIAL
	select OMAP3_GPIO_3
	select OMAP3_GPIO_4
	select OMAP3_GPIO_6
	imply CMD_DM

config TARGET_NOKIA_RX51
	bool "Nokia RX51"

config TARGET_TAO3530
	bool "TAO3530"
	select OMAP3_GPIO_2
	select OMAP3_GPIO_3
	select OMAP3_GPIO_4
	select OMAP3_GPIO_5
	select OMAP3_GPIO_6

config TARGET_TWISTER
	bool "Twister"
	select OMAP3_GPIO_2
	select OMAP3_GPIO_5 if USB_EHCI_HCD

config TARGET_OMAP3_CAIRO
	bool "QUIPOS CAIRO"
	select DM
	select DM_GPIO
	select DM_SERIAL
	imply CMD_DM

config TARGET_SNIPER
	bool "LG Optimus Black"
	select DM
	select DM_GPIO
	select DM_SERIAL
	select OMAP3_GPIO_2
	select OMAP3_GPIO_3
	select OMAP3_GPIO_4
	select OMAP3_GPIO_5
	select OMAP3_GPIO_6
	imply CMD_DM

endchoice

choice
	prompt "Memory Controller"
	default SDRC

config SDRC
	bool "SDRC controller"
	help
	  The default memory controller on most OMAP3 boards is SDRC.

config EMIF4
	bool "EMIF4 controller"
	help
	  Enable this on boards like AM3517 which use EMIF4 controller
endchoice

config SPL_OMAP3_ID_NAND
	bool "Support OMAP3-specific ID and MFR function"
	help
	  Support for an OMAP3-specific set of functions to return the
	  ID and MFR of the first attached NAND chip, if present.

config SYS_SOC
	default "omap3"

source "board/logicpd/am3517evm/Kconfig"
source "board/teejet/mt_ventoux/Kconfig"
source "board/ti/beagle/Kconfig"
source "board/compulab/cm_t35/Kconfig"
source "board/timll/devkit8000/Kconfig"
source "board/ti/evm/Kconfig"
source "board/isee/igep00x0/Kconfig"
source "board/overo/Kconfig"
source "board/logicpd/zoom1/Kconfig"
source "board/ti/am3517crane/Kconfig"
source "board/pandora/Kconfig"
source "board/corscience/tricorder/Kconfig"
source "board/htkw/mcx/Kconfig"
source "board/logicpd/omap3som/Kconfig"
source "board/nokia/rx51/Kconfig"
source "board/technexion/tao3530/Kconfig"
source "board/technexion/twister/Kconfig"
source "board/quipos/cairo/Kconfig"
source "board/lg/sniper/Kconfig"

endif
