# arch/arm/mach-s3c2412/Kconfig
#
# Copyright 2007 Simtec Electronics
#
# Licensed under GPLv2

config CPU_S3C2412
	bool
	depends on ARCH_S3C2410
	select CPU_ARM926T
	select CPU_LLSERIAL_S3C2440
	select S3C2412_PM if PM
	select S3C2412_DMA if S3C2410_DMA
	select S3C2410_GPIO
	help
	  Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line

config CPU_S3C2412_ONLY
	bool
	depends on ARCH_S3C2410 && !CPU_S3C2400 && !CPU_S3C2410 && \
		   !CPU_S3C2440 && !CPU_S3C2442 && !CPU_S3C2443 && CPU_S3C2412
	default y if CPU_S3C2412

config S3C2412_DMA
	bool
	depends on CPU_S3C2412
	help
	  Internal config node for S3C2412 DMA support

config S3C2412_PM
	bool
	help
	  Internal config node to apply S3C2412 power management

# Note, the S3C2412 IOtiming support is in plat-s3c24xx

config S3C2412_CPUFREQ
	bool
	depends on CPU_FREQ_S3C24XX && CPU_S3C2412
	select S3C2412_IOTIMING
	default y
	help
	  CPU Frequency scaling support for S3C2412 and S3C2413 SoC CPUs.

menu "S3C2412 Machines"

config MACH_JIVE
	bool "Logitech Jive"
	select CPU_S3C2412
	select S3C_DEV_USB_HOST
	select S3C_DEV_NAND
	help
	  Say Y here if you are using the Logitech Jive.

config MACH_JIVE_SHOW_BOOTLOADER
	bool "Allow access to bootloader partitions in MTD"
	depends on MACH_JIVE && EXPERIMENTAL

config MACH_SMDK2413
	bool "SMDK2413"
	select CPU_S3C2412
	select MACH_S3C2413
	select MACH_SMDK
	select S3C_DEV_USB_HOST
	select S3C_DEV_NAND
	help
	  Say Y here if you are using an SMDK2413

config MACH_S3C2413
	bool
	help
	  Internal node for S3C2413 version of SMDK2413, so that
	  machine_is_s3c2413() will work when MACH_SMDK2413 is
	  selected

config MACH_SMDK2412
	bool "SMDK2412"
	select MACH_SMDK2413
	help
	  Say Y here if you are using an SMDK2412

	  Note, this shares support with SMDK2413, so will automatically
	  select MACH_SMDK2413.

config MACH_VSTMS
	bool "VMSTMS"
	select CPU_S3C2412
	select S3C_DEV_USB_HOST
	select S3C_DEV_NAND
	help
	  Say Y here if you are using an VSTMS board


endmenu

