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

config CPU_S3C2440
	bool
	depends on ARCH_S3C2410
	select CPU_ARM920T
	select S3C2410_CLOCK
	select S3C2410_PM if PM
	select S3C2410_GPIO
	select S3C2440_DMA if S3C2410_DMA
	select CPU_S3C244X
	select CPU_LLSERIAL_S3C2440
	help
	  Support for S3C2440 Samsung Mobile CPU based systems.

config S3C2440_DMA
	bool
	depends on ARCH_S3C2410 && CPU_S3C24405B
	help
	  Support for S3C2440 specific DMA code5A


menu "S3C2440 Machines"

config MACH_ANUBIS
	bool "Simtec Electronics ANUBIS"
	select CPU_S3C2440
	select S3C24XX_DCLK
	select PM_SIMTEC if PM
	select HAVE_PATA_PLATFORM
	select S3C24XX_GPIO_EXTRA64
	help
	  Say Y here if you are using the Simtec Electronics ANUBIS
	  development system

config MACH_OSIRIS
	bool "Simtec IM2440D20 (OSIRIS) module"
	select CPU_S3C2440
	select S3C24XX_DCLK
	select PM_SIMTEC if PM
	select S3C24XX_GPIO_EXTRA128
	help
	  Say Y here if you are using the Simtec IM2440D20 module, also
	  known as the Osiris.

config MACH_RX3715
	bool "HP iPAQ rx3715"
	select CPU_S3C2440
	select PM_H1940 if PM
	help
	  Say Y here if you are using the HP iPAQ rx3715.

config ARCH_S3C2440
	bool "SMDK2440"
	select CPU_S3C2440
	select MACH_SMDK
	help
	  Say Y here if you are using the SMDK2440.

config MACH_NEXCODER_2440
 	bool "NexVision NEXCODER 2440 Light Board"
 	select CPU_S3C2440
	help
 	  Say Y here if you are using the Nex Vision NEXCODER 2440 Light Board

config SMDK2440_CPU2440
	bool "SMDK2440 with S3C2440 CPU module"
	depends on ARCH_S3C2440
	default y if ARCH_S3C2440
	select CPU_S3C2440

config MACH_AT2440EVB
	bool "Avantech AT2440EVB development board"
	select CPU_S3C2440
	help
	  Say Y here if you are using the AT2440EVB development board

endmenu

