# arch/arm/mach-exynos/Kconfig
#
# Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
#		http://www.samsung.com/
#
# Licensed under GPLv2

# Configuration options for the EXYNOS

menuconfig ARCH_EXYNOS
	bool "Samsung EXYNOS"
	depends on ARCH_MULTI_V7
	select ARCH_HAS_BANDGAP
	select ARCH_HAS_HOLES_MEMORYMODEL
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_AMBA
	select ARM_GIC
	select COMMON_CLK_SAMSUNG
	select EXYNOS_THERMAL
	select EXYNOS_PMU
	select EXYNOS_SROM
	select EXYNOS_PM_DOMAINS if PM_GENERIC_DOMAINS
	select GPIOLIB
	select HAVE_ARM_SCU if SMP
	select HAVE_S3C2410_I2C if I2C
	select HAVE_S3C2410_WATCHDOG if WATCHDOG
	select HAVE_S3C_RTC if RTC_CLASS
	select PINCTRL
	select PINCTRL_EXYNOS
	select PM_GENERIC_DOMAINS if PM
	select S5P_DEV_MFC
	select SAMSUNG_MC
	select SOC_SAMSUNG
	select SRAM
	select THERMAL
	select THERMAL_OF
	select MFD_SYSCON
	select MEMORY
	select CLKSRC_EXYNOS_MCT
	select POWER_RESET
	select POWER_RESET_SYSCON
	select POWER_RESET_SYSCON_POWEROFF
	help
	  Support for SAMSUNG EXYNOS SoCs (EXYNOS4/5)

if ARCH_EXYNOS

config S5P_DEV_MFC
	bool
	help
	  Compile in setup memory (init) code for MFC

config ARCH_EXYNOS3
	bool "SAMSUNG EXYNOS3"
	select ARM_CPU_SUSPEND if PM
	help
	  Samsung EXYNOS3 (Cortex-A7) SoC based systems

config ARCH_EXYNOS4
	bool "SAMSUNG EXYNOS4"
	default y
	select ARM_CPU_SUSPEND if PM_SLEEP
	select CLKSRC_SAMSUNG_PWM if CPU_EXYNOS4210
	select CPU_EXYNOS4210
	select GIC_NON_BANKED
	select MIGHT_HAVE_CACHE_L2X0
	help
	  Samsung EXYNOS4 (Cortex-A9) SoC based systems

config ARCH_EXYNOS5
	bool "SAMSUNG EXYNOS5"
	default y
	help
	  Samsung EXYNOS5 (Cortex-A15/A7) SoC based systems

comment "EXYNOS SoCs"

config SOC_EXYNOS3250
	bool "SAMSUNG EXYNOS3250"
	default y
	depends on ARCH_EXYNOS3

config CPU_EXYNOS4210
	bool "SAMSUNG EXYNOS4210"
	default y
	depends on ARCH_EXYNOS4

config SOC_EXYNOS4212
	bool "SAMSUNG EXYNOS4212"
	default y
	depends on ARCH_EXYNOS4

config SOC_EXYNOS4412
	bool "SAMSUNG EXYNOS4412"
	default y
	depends on ARCH_EXYNOS4

config SOC_EXYNOS5250
	bool "SAMSUNG EXYNOS5250"
	default y
	depends on ARCH_EXYNOS5

config SOC_EXYNOS5260
	bool "SAMSUNG EXYNOS5260"
	default y
	depends on ARCH_EXYNOS5

config SOC_EXYNOS5410
	bool "SAMSUNG EXYNOS5410"
	default y
	depends on ARCH_EXYNOS5

config SOC_EXYNOS5420
	bool "SAMSUNG EXYNOS5420"
	default y
	depends on ARCH_EXYNOS5

config SOC_EXYNOS5440
	bool "SAMSUNG EXYNOS5440"
	default y
	depends on ARCH_EXYNOS5
	select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
	select HAVE_ARM_ARCH_TIMER
	select AUTO_ZRELADDR
	select PINCTRL_EXYNOS5440
	select PM_OPP
	help
	  Enable EXYNOS5440 SoC support

config SOC_EXYNOS5800
	bool "SAMSUNG EXYNOS5800"
	default y
	depends on SOC_EXYNOS5420

config EXYNOS5420_MCPM
	bool "Exynos5420 Multi-Cluster PM support"
	depends on MCPM && SOC_EXYNOS5420
	select ARM_CCI400_PORT_CTRL
	select ARM_CPU_SUSPEND
	help
	  This is needed to provide CPU and cluster power management
	  on Exynos5420 implementing big.LITTLE.

config EXYNOS_CPU_SUSPEND
	bool
	select ARM_CPU_SUSPEND
	default PM_SLEEP || ARM_EXYNOS_CPUIDLE

endif
