#
# 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 CLKSRC_MMIO

if PLAT_SPEAR

config ARCH_SPEAR13XX
	bool "ST SPEAr13xx"
	depends on ARCH_MULTI_V7 || PLAT_SPEAR_SINGLE
	select ARM_GIC
	select GPIO_SPEAR_SPICS
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select PINCTRL
	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 PINCTRL
	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
	help
	  Supports for ARM's SPEAR6XX family

config MACH_SPEAR600
	def_bool y
	depends on ARCH_SPEAR6XX
	help
	  Supports ST SPEAr600 boards configured via the device-tree

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

endif

