# 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 S3C_GPIO_PULL_UPDOWN
	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
	help
	  Internal config node to apply S3C2416 power management

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_PM if PM
	help
	  Say Y here if you are using an SMDK2416

endmenu
