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

# Configuration options for the EXYNOS4

if ARCH_EXYNOS

menu "SAMSUNG EXYNOS SoCs Support"

config ARCH_EXYNOS4
	bool "SAMSUNG EXYNOS4"
	default y
	select HAVE_SMP
	select MIGHT_HAVE_CACHE_L2X0
	help
	  Samsung EXYNOS4 SoCs based systems

config ARCH_EXYNOS5
	bool "SAMSUNG EXYNOS5"
	select HAVE_SMP
	help
	  Samsung EXYNOS5 (Cortex-A15) SoC based systems

comment "EXYNOS SoCs"

config CPU_EXYNOS4210
	bool "SAMSUNG EXYNOS4210"
	default y
	depends on ARCH_EXYNOS4
	select ARM_CPU_SUSPEND if PM
	select PM_GENERIC_DOMAINS
	select S5P_PM if PM
	select S5P_SLEEP if PM
	select SAMSUNG_DMADEV
	help
	  Enable EXYNOS4210 CPU support

config SOC_EXYNOS4212
	bool "SAMSUNG EXYNOS4212"
	default y
	depends on ARCH_EXYNOS4
	select S5P_PM if PM
	select S5P_SLEEP if PM
	select SAMSUNG_DMADEV
	help
	  Enable EXYNOS4212 SoC support

config SOC_EXYNOS4412
	bool "SAMSUNG EXYNOS4412"
	default y
	depends on ARCH_EXYNOS4
	select SAMSUNG_DMADEV
	help
	  Enable EXYNOS4412 SoC support

config SOC_EXYNOS5250
	bool "SAMSUNG EXYNOS5250"
	default y
	depends on ARCH_EXYNOS5
	select S5P_PM if PM
	select S5P_SLEEP if PM
	select S5P_DEV_MFC
	select SAMSUNG_DMADEV
	help
	  Enable EXYNOS5250 SoC support

config SOC_EXYNOS5440
	bool "SAMSUNG EXYNOS5440"
	default y
	depends on ARCH_EXYNOS5
	select ARM_ARCH_TIMER
	select AUTO_ZRELADDR
	select PINCTRL
	select PINCTRL_EXYNOS5440
	help
	  Enable EXYNOS5440 SoC support

config EXYNOS4_MCT
	bool
	default y
	help
	  Use MCT (Multi Core Timer) as kernel timers

config EXYNOS_DEV_DMA
	bool
	help
	  Compile in amba device definitions for DMA controller

config EXYNOS4_DEV_AHCI
	bool
	help
	  Compile in platform device definitions for AHCI

config EXYNOS_DEV_DRM
	bool
	help
	  Compile in platform device definitions for core DRM device

config EXYNOS4_SETUP_FIMD0
	bool
	help
	  Common setup code for FIMD0.

config EXYNOS4_DEV_USB_OHCI
	bool
	help
	  Compile in platform device definition for USB OHCI

config EXYNOS4_SETUP_I2C1
	bool
	help
	  Common setup code for i2c bus 1.

config EXYNOS4_SETUP_I2C2
	bool
	help
	  Common setup code for i2c bus 2.

config EXYNOS4_SETUP_I2C3
	bool
	help
	  Common setup code for i2c bus 3.

config EXYNOS4_SETUP_I2C4
	bool
	help
	  Common setup code for i2c bus 4.

config EXYNOS4_SETUP_I2C5
	bool
	help
	  Common setup code for i2c bus 5.

config EXYNOS4_SETUP_I2C6
	bool
	help
	  Common setup code for i2c bus 6.

config EXYNOS4_SETUP_I2C7
	bool
	help
	  Common setup code for i2c bus 7.

config EXYNOS4_SETUP_KEYPAD
	bool
	help
	  Common setup code for keypad.

config EXYNOS4_SETUP_SDHCI
	bool
	select EXYNOS4_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for EXYNOS4 based SDHCI systems.

config EXYNOS4_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

config EXYNOS4_SETUP_FIMC
	bool
	help
	  Common setup code for the camera interfaces.

config EXYNOS4_SETUP_USB_PHY
	bool
	help
	  Common setup code for USB PHY controller

config EXYNOS_SETUP_SPI
	bool
	help
	  Common setup code for SPI GPIO configurations.

# machine support

if ARCH_EXYNOS4

comment "EXYNOS4210 Boards"

config MACH_SMDKC210
	bool "SMDKC210"
	select MACH_SMDKV310
	help
	  Machine support for Samsung SMDKC210

config MACH_SMDKV310
	bool "SMDKV310"
	select CPU_EXYNOS4210
	select EXYNOS4_DEV_AHCI
	select EXYNOS4_DEV_USB_OHCI
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_KEYPAD
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS4_SETUP_USB_PHY
	select EXYNOS_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS_DEV_SYSMMU
	select S3C24XX_PWM
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S3C_DEV_I2C1
	select S3C_DEV_RTC
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S5P_DEV_G2D
	select S5P_DEV_I2C_HDMIPHY
	select S5P_DEV_JPEG
	select S5P_DEV_MFC
	select S5P_DEV_TV
	select S5P_DEV_USB_EHCI
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_PWM
	help
	  Machine support for Samsung SMDKV310

config MACH_ARMLEX4210
	bool "ARMLEX4210"
	select CPU_EXYNOS4210
	select EXYNOS4_DEV_AHCI
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS_DEV_DMA
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S3C_DEV_RTC
	select S3C_DEV_WDT
	help
	  Machine support for Samsung ARMLEX4210 based on EXYNOS4210

config MACH_UNIVERSAL_C210
	bool "Mobile UNIVERSAL_C210 Board"
	select CLKSRC_MMIO
	select CPU_EXYNOS4210
	select EXYNOS4_SETUP_FIMC
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_I2C3
	select EXYNOS4_SETUP_I2C5
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS4_SETUP_USB_PHY
	select EXYNOS_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS_DEV_SYSMMU
	select HAVE_SCHED_CLOCK
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S3C_DEV_I2C1
	select S3C_DEV_I2C3
	select S3C_DEV_I2C5
	select S3C_DEV_USB_HSOTG
	select S5P_DEV_CSIS0
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S5P_DEV_G2D
	select S5P_DEV_I2C_HDMIPHY
	select S5P_DEV_JPEG
	select S5P_DEV_MFC
	select S5P_DEV_ONENAND
	select S5P_DEV_TV
	select S5P_GPIO_INT
	select S5P_HRT
	select S5P_SETUP_MIPIPHY
	help
	  Machine support for Samsung Mobile Universal S5PC210 Reference
	  Board.

config MACH_NURI
	bool "Mobile NURI Board"
	select CPU_EXYNOS4210
	select EXYNOS4_SETUP_FIMC
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_I2C3
	select EXYNOS4_SETUP_I2C5
	select EXYNOS4_SETUP_I2C6
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS4_SETUP_USB_PHY
	select EXYNOS_DEV_DMA
	select EXYNOS_DEV_DRM
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S3C_DEV_I2C1
	select S3C_DEV_I2C3
	select S3C_DEV_I2C5
	select S3C_DEV_I2C6
	select S3C_DEV_RTC
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select S5P_DEV_CSIS0
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S5P_DEV_G2D
	select S5P_DEV_JPEG
	select S5P_DEV_MFC
	select S5P_DEV_USB_EHCI
	select S5P_GPIO_INT
	select S5P_SETUP_MIPIPHY
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_PWM
	help
	  Machine support for Samsung Mobile NURI Board.

config MACH_ORIGEN
	bool "ORIGEN"
	select CPU_EXYNOS4210
	select EXYNOS4_DEV_USB_OHCI
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS4_SETUP_USB_PHY
	select EXYNOS_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS_DEV_SYSMMU
	select S3C24XX_PWM
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_RTC
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S5P_DEV_G2D
	select S5P_DEV_I2C_HDMIPHY
	select S5P_DEV_JPEG
	select S5P_DEV_MFC
	select S5P_DEV_TV
	select S5P_DEV_USB_EHCI
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_PWM
	help
	  Machine support for ORIGEN based on Samsung EXYNOS4210

comment "EXYNOS4212 Boards"

config MACH_SMDK4212
	bool "SMDK4212"
	select EXYNOS4_SETUP_FIMD0
	select EXYNOS4_SETUP_I2C1
	select EXYNOS4_SETUP_I2C3
	select EXYNOS4_SETUP_I2C7
	select EXYNOS4_SETUP_KEYPAD
	select EXYNOS4_SETUP_SDHCI
	select EXYNOS4_SETUP_USB_PHY
	select EXYNOS_DEV_DMA
	select EXYNOS_DEV_DRM
	select EXYNOS_DEV_SYSMMU
	select S3C24XX_PWM
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S3C_DEV_I2C1
	select S3C_DEV_I2C3
	select S3C_DEV_I2C7
	select S3C_DEV_RTC
	select S3C_DEV_USB_HSOTG
	select S3C_DEV_WDT
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	select S5P_DEV_FIMC3
	select S5P_DEV_FIMD0
	select S5P_DEV_MFC
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_PWM
	select SOC_EXYNOS4212
	help
	  Machine support for Samsung SMDK4212

comment "EXYNOS4412 Boards"

config MACH_SMDK4412
	bool "SMDK4412"
	select MACH_SMDK4212
	select SOC_EXYNOS4412
	help
	  Machine support for Samsung SMDK4412
endif

comment "Flattened Device Tree based board for EXYNOS SoCs"

config MACH_EXYNOS4_DT
	bool "Samsung Exynos4 Machine using device tree"
	depends on ARCH_EXYNOS4
	select ARM_AMBA
	select CPU_EXYNOS4210
	select HAVE_SAMSUNG_KEYPAD if INPUT_KEYBOARD
	select PINCTRL
	select PINCTRL_EXYNOS
	select USE_OF
	help
	  Machine support for Samsung Exynos4 machine with device tree enabled.
	  Select this if a fdt blob is available for the Exynos4 SoC based board.
	  Note: This is under development and not all peripherals can be supported
	  with this machine file.

config MACH_EXYNOS5_DT
	bool "SAMSUNG EXYNOS5 Machine using device tree"
	default y
	depends on ARCH_EXYNOS5
	select ARM_AMBA
	select USE_OF
	help
	  Machine support for Samsung EXYNOS5 machine with device tree enabled.
	  Select this if a fdt blob is available for the EXYNOS5 SoC based board.

if ARCH_EXYNOS4

comment "Configuration for HSMMC 8-bit bus width"

config EXYNOS4_SDHCI_CH0_8BIT
	bool "Channel 0 with 8-bit bus"
	help
	  Support HSMMC Channel 0 8-bit bus.
	  If selected, Channel 1 is disabled.

config EXYNOS4_SDHCI_CH2_8BIT
	bool "Channel 2 with 8-bit bus"
	help
	  Support HSMMC Channel 2 8-bit bus.
	  If selected, Channel 3 is disabled.
endif

endmenu

endif
