menu "Platform selection"

config ARCH_BCM_IPROC
	bool "Broadcom iProc SoC Family"
	help
	  This enables support for Broadcom iProc based SoCs

config ARCH_BERLIN
	bool "Marvell Berlin SoC Family"
	select ARCH_REQUIRE_GPIOLIB
	select DW_APB_ICTL
	help
	  This enables support for Marvell Berlin SoC Family

config ARCH_LAYERSCAPE
	bool "ARMv8 based Freescale Layerscape SoC family"
	help
	  This enables support for the Freescale Layerscape SoC family.

config ARCH_HISI
	bool "Hisilicon SoC Family"
	help
	  This enables support for Hisilicon ARMv8 SoC family

config ARCH_MEDIATEK
	bool "Mediatek MT65xx & MT81xx ARMv8 SoC"
	select ARM_GIC
	select PINCTRL
	help
	  Support for Mediatek MT65xx & MT81xx ARMv8 SoCs

config ARCH_QCOM
	bool "Qualcomm Platforms"
	select PINCTRL
	help
	  This enables support for the ARMv8 based Qualcomm chipsets.

config ARCH_ROCKCHIP
	bool "Rockchip Platforms"
	select ARCH_HAS_RESET_CONTROLLER
	select ARCH_REQUIRE_GPIOLIB
	select PINCTRL
	select PINCTRL_ROCKCHIP
	help
	  This enables support for the ARMv8 based Rockchip chipsets,
	  like the RK3368.

config ARCH_SEATTLE
	bool "AMD Seattle SoC Family"
	help
	  This enables support for AMD Seattle SOC Family

config ARCH_STRATIX10
	bool "Altera's Stratix 10 SoCFPGA Family"
	help
	  This enables support for Altera's Stratix 10 SoCFPGA Family.

config ARCH_TEGRA
	bool "NVIDIA Tegra SoC Family"
	select ARCH_HAS_RESET_CONTROLLER
	select ARCH_REQUIRE_GPIOLIB
	select CLKDEV_LOOKUP
	select CLKSRC_MMIO
	select CLKSRC_OF
	select GENERIC_CLOCKEVENTS
	select HAVE_CLK
	select PINCTRL
	select RESET_CONTROLLER
	help
	  This enables support for the NVIDIA Tegra SoC family.

config ARCH_TEGRA_132_SOC
	bool "NVIDIA Tegra132 SoC"
	depends on ARCH_TEGRA
	select PINCTRL_TEGRA124
	help
	  Enable support for NVIDIA Tegra132 SoC, based on the Denver
	  ARMv8 CPU.  The Tegra132 SoC is similar to the Tegra124 SoC,
	  but contains an NVIDIA Denver CPU complex in place of
	  Tegra124's "4+1" Cortex-A15 CPU complex.

config ARCH_SPRD
	bool "Spreadtrum SoC platform"
	help
	  Support for Spreadtrum ARM based SoCs

config ARCH_THUNDER
	bool "Cavium Inc. Thunder SoC Family"
	help
	  This enables support for Cavium's Thunder Family of SoCs.

config ARCH_VEXPRESS
	bool "ARMv8 software model (Versatile Express)"
	select ARCH_REQUIRE_GPIOLIB
	select COMMON_CLK_VERSATILE
	select POWER_RESET_VEXPRESS
	select VEXPRESS_CONFIG
	help
	  This enables support for the ARMv8 software model (Versatile
	  Express).

config ARCH_XGENE
	bool "AppliedMicro X-Gene SOC Family"
	help
	  This enables support for AppliedMicro X-Gene SOC Family

config ARCH_ZYNQMP
	bool "Xilinx ZynqMP Family"
	help
	  This enables support for Xilinx ZynqMP Family

menu "Samsung Exynos"
config ARCH_EXYNOS
	bool

config SOC_EXYNOS7872
	bool "Samsung EXYNOS7872"
	select ARCH_EXYNOS
	select ARCH_HAS_CPUFREQ
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C_RTC if RTC_CLASS
	select ARCH_SUPPORTS_MSI
	select ARM_AMBA
	select CLKSRC_OF
	select USE_OF
	select COMMON_CLK_SAMSUNG
	select CLKSRC_EXYNOS_MCT
	select PINCTRL
	select SAMSUNG_DMADEV

config SOC_EMULATOR7872
	bool "Samsung EMULATOR7872"

config SOC_EXYNOS7885
	bool "Samsung EXYNOS7885"
	select ARCH_EXYNOS
	select ARCH_HAS_CPUFREQ
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C_RTC if RTC_CLASS
	select ARCH_SUPPORTS_MSI
	select ARM_AMBA
	select SAMSUNG_DMADEV
	select CLKSRC_OF
	select USE_OF
	select COMMON_CLK_SAMSUNG
	select CLKSRC_EXYNOS_MCT
	select PINCTRL

config SOC_EXYNOS7885_ANDROID_VERSION_O
	bool "Samsung EXYNOS785 Android version O"
	help
	  This enables support for Android version O of EXYNOS7885

config SOC_EXYNOS7885_ANDROID_VERSION_P
	bool "Samsung EXYNOS7885 Android version P"
	help
	  This enables support for Android version P of EXYNOS7885

config SOC_EXYNOS7885_ANDROID_VERSION_Q
	bool "Samsung EXYNOS7885 Android version Q"
	help
	  This enables support for Android version Q of EXYNOS7885

config SOC_EXYNOS7885_ANDROID_VERSION_Q_MR
	bool "Samsung EXYNOS7885 Android version Q maintenance release"
	help
	  This enables support for Android version Q_MR of EXYNOS7885

config SOC_EXYNOS7885_ANDROID_VERSION_P_MR
	bool "Samsung EXYNOS7885 Android version P maintenance release"
	default n
	depends on SOC_EXYNOS7885_ANDROID_VERSION_P
	help
	  This enables support for Android version P_MR of EXYNOS7885

config SOC_EXYNOS7884
	bool "Samsung EXYNOS7884"
	help
	  This enables support for Lushan (A73/A53)

config SOC_EXYNOS7883
	bool "Samsung EXYNOS7883"
	help
	  This enables support for Lushan Q (A53)

config SOC_EXYNOS7884A
	bool "Samsung EXYNOS7884A"
	help
	  This enables support for LushanA (A73/A53)

config ARCH_EXYNOS7
	bool "SAMSUNG EXYNOS7"
	select HAVE_ARM_SCU if SMP
	select HAVE_SMP
	help
	  Samsung EXYNOS7 (A57/A53) SoC based systems


config SOC_EXYNOS8890
	bool "Samsung EXYNOS8890"
	select SOC_SAMSUNG
	select ARCH_EXYNOS
	select ARCH_HAS_CPUFREQ
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C_RTC if RTC_CLASS
	select ARCH_SUPPORTS_MSI
	select ARM_AMBA
	select CLKSRC_OF
	select USE_OF
	select COMMON_CLK_SAMSUNG
	select CLKSRC_EXYNOS_MCT
	select PINCTRL
	select SAMSUNG_DMADEV

config SOC_EXYNOS8895
	bool "Samsung EXYNOS8895"
	select SOC_SAMSUNG
	select ARCH_EXYNOS
	select ARCH_HAS_CPUFREQ
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C_RTC if RTC_CLASS
	select ARCH_SUPPORTS_MSI
	select ARM_AMBA
	select CLKSRC_OF
	select USE_OF
	select COMMON_CLK_SAMSUNG
	select CLKSRC_EXYNOS_MCT
	select PINCTRL
	select SAMSUNG_DMADEV

config SOC_EMULATOR8895
	bool "Samsung EMULATOR8895"

config ARCH_EXYNOS8
	bool "ARMv8 based Samsung Exynos8"
	select HAVE_ARM_SCU if SMP
	select HAVE_SMP
	help
	  Samsung EXYNOS8 (Mongoose/A53) SoC based systems

config ZONE_MOVABLE
	bool "Enable Zone Movable"
	default n

config ZONE_MOVABLE_SIZE_MBYTES
	int "ZONE_MOVABLE Size in MBytes"
	range 0 1024
	default 0
	depends on ZONE_MOVABLE
	help
	  Set Movable Zone size based on bits shift value. Movable Zone size
	  must be less than the highest populated zone.

endmenu

endmenu
