#
# SPEAr Platform configuration file
#

menuconfig PLAT_SPEAR
	bool "ST SPEAr Family"
	depends on ARCH_MULTI_V7 || ARCH_MULTI_V5
	select ARM_AMBA
	select CLKSRC_MMIO
	select GPIOLIB

if PLAT_SPEAR

config ARCH_SPEAR13XX
	bool "ST SPEAr13xx"
	depends on ARCH_MULTI_V7
	select ARM_GIC
	select GPIO_SPEAR_SPICS
	select HAVE_ARM_SCU if SMP
	select HAVE_ARM_TWD if SMP
	select PINCTRL
	select MFD_SYSCON
	select MIGHT_HAVE_PCI
	help
	  Supports for ARM's SPEAR13XX family

if ARCH_SPEAR13XX

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

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

endif #ARCH_SPEAR13XX

config ARCH_SPEAR3XX
	bool "ST SPEAr3xx"
	depends on ARCH_MULTI_V5
	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
	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
	bool
	depends on !ARCH_SPEAR13XX && !ARCH_SPEAR6XX
	select ARCH_SPEAR3XX

endif

