#
# SPEAr Platform configuration file
#

menuconfig PLAT_SPEAR
	bool "ST SPEAr Family" if ARCH_MULTI_V7 || ARCH_MULTI_V5
	default PLAT_SPEAR_SINGLE
	select ARCH_REQUIRE_GPIOLIB
	select ARM_AMBA
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select COMMON_CLK
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK

if PLAT_SPEAR

config ARCH_SPEAR13XX
	bool "ST SPEAr13xx"
	depends on ARCH_MULTI_V7 || PLAT_SPEAR_SINGLE
	select ARCH_HAVE_CPUFREQ
	select ARM_GIC
	select CPU_V7
	select GPIO_SPEAR_SPICS
	select HAVE_SMP
	select MIGHT_HAVE_CACHE_L2X0
	select PINCTRL
	select USE_OF
	help
	  Supports for ARM's SPEAR13XX family

if ARCH_SPEAR13XX

config MACH_SPEAR1310
	bool "SPEAr1310 Machine support with Device Tree"
	select PINCTRL_SPEAR1310
	help
	  Supports ST SPEAr1310 machine configured via the device-tree

config MACH_SPEAR1340
	bool "SPEAr1340 Machine support with Device Tree"
	select PINCTRL_SPEAR1340
	help
	  Supports ST SPEAr1340 machine configured via the device-tree

endif #ARCH_SPEAR13XX

config ARCH_SPEAR3XX
	bool "ST SPEAr3xx"
	depends on ARCH_MULTI_V5 || PLAT_SPEAR_SINGLE
	depends on !ARCH_SPEAR13XX
	select ARM_VIC
	select CPU_ARM926T
	select PINCTRL
	select USE_OF
	help
	  Supports for ARM's SPEAR3XX family

if ARCH_SPEAR3XX

config MACH_SPEAR300
	bool "SPEAr300 Machine support with Device Tree"
	select PINCTRL_SPEAR300
	help
	  Supports ST SPEAr300 machine configured via the device-tree

config MACH_SPEAR310
	bool "SPEAr310 Machine support with Device Tree"
	select PINCTRL_SPEAR310
	help
	  Supports ST SPEAr310 machine configured via the device-tree

config MACH_SPEAR320
	bool "SPEAr320 Machine support with Device Tree"
	select PINCTRL_SPEAR320
	help
	  Supports ST SPEAr320 machine configured via the device-tree

endif

config ARCH_SPEAR6XX
	bool "ST SPEAr6XX"
	depends on ARCH_MULTI_V5 || PLAT_SPEAR_SINGLE
	depends on !ARCH_SPEAR13XX
	select ARM_VIC
	select CPU_ARM926T
	help
	  Supports for ARM's SPEAR6XX family

config MACH_SPEAR600
	def_bool y
	depends on ARCH_SPEAR6XX
	select USE_OF
	help
	  Supports ST SPEAr600 boards configured via the device-treesource "arch/arm/mach-spear6xx/Kconfig"

config ARCH_SPEAR_AUTO
	def_bool PLAT_SPEAR_SINGLE
	depends on !ARCH_SPEAR13XX && !ARCH_SPEAR6XX
	select ARCH_SPEAR3XX

endif

