# arch/arm/mach-s3c2416/Kconfig
#
# Copyright 2009 Yauhen Kharuzhy <jekhor@gmail.com>
#
# Licensed under GPLv2

# note, this also supports the S3C2450 which is so similar it has the same
# ID code as the S3C2416.

config CPU_S3C2416
	bool
	depends on ARCH_S3C2410
	select CPU_ARM926T
	select S3C2416_DMA if S3C2410_DMA
	select CPU_LLSERIAL_S3C2440
	select SAMSUNG_CLKSRC
	select S3C2443_CLOCK
	help
	  Support for the S3C2416 SoC from the S3C24XX line

config S3C2416_DMA
	bool
	depends on CPU_S3C2416
	help
	  Internal config node for S3C2416 DMA support

config S3C2416_PM
	bool
	select S3C2412_PM_SLEEP
	help
	  Internal config node to apply S3C2416 power management

config S3C2416_SETUP_SDHCI
	bool
	select S3C2416_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for S3C2416 based SDHCI systems

config S3C2416_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

menu "S3C2416 Machines"

config MACH_SMDK2416
	bool "SMDK2416"
	select CPU_S3C2416
	select MACH_SMDK
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_NAND
	select S3C_DEV_USB_HOST
	select S3C2416_SETUP_SDHCI
	select S3C2416_PM if PM
	help
	  Say Y here if you are using an SMDK2416

endmenu
