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

# Configuration options for the S5PV210/S5PC110

if ARCH_S5PV210

config CPU_S5PV210
	bool
	select PLAT_S5P
	select S3C_PL330_DMA
	select S5P_EXT_INT
	help
	  Enable S5PV210 CPU support

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

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

config S5PV210_SETUP_FB_24BPP
	bool
	help
          Common setup code for S5PV210 with an 24bpp RGB display helper.

config S5PV210_SETUP_SDHCI
        bool
        select S5PV210_SETUP_SDHCI_GPIO
        help
          Internal helper functions for S5PV210 based SDHCI systems

config S5PV210_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

# machine support

config MACH_AQUILA
	bool "Samsung Aquila"
	select CPU_S5PV210
	select ARCH_SPARSEMEM_ENABLE
	select S5PV210_SETUP_FB_24BPP
	select S3C_DEV_FB
	help
	  Machine support for the Samsung Aquila target based on S5PC110 SoC

config MACH_GONI
	bool "GONI"
	select CPU_S5PV210
	select ARCH_SPARSEMEM_ENABLE
	help
	  Machine support for Samsung GONI board
	  S5PC110(MCP) is one of package option of S5PV210

config S5PC110_DEV_ONENAND
	bool
	help
	  Compile in platform device definition for OneNAND1 controller

config MACH_SMDKV210
	bool "SMDKV210"
	select CPU_S5PV210
	select ARCH_SPARSEMEM_ENABLE
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_TS
	select S3C_DEV_WDT
	select HAVE_S3C2410_WATCHDOG
	help
	  Machine support for Samsung SMDKV210

config MACH_SMDKC110
	bool "SMDKC110"
	select CPU_S5PV210
	select ARCH_SPARSEMEM_ENABLE
	select S3C_DEV_WDT
	select HAVE_S3C2410_WATCHDOG
	help
	  Machine support for Samsung SMDKC110
	  S5PC110(MCP) is one of package option of S5PV210

endif
