# Copyright 2009 Samsung Electronics Co.
#	Byungho Min <bhmin@samsung.com>
#
# Licensed under GPLv2

# Configuration options for the S5PC100 CPU

if ARCH_S5PC100

config CPU_S5PC100
	bool
	select S5P_EXT_INT
	select S3C_PL330_DMA
	help
	  Enable S5PC100 CPU support

config S5PC100_SETUP_FB_24BPP
	bool
	help
	  Common setup code for S5PC1XX with an 24bpp RGB display helper.

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

config S5PC100_SETUP_IDE
	bool
	help
	  Common setup code for S5PC100 IDE GPIO configurations

config S5PC100_SETUP_KEYPAD
	bool
	help
	  Common setup code for KEYPAD GPIO configurations.

config S5PC100_SETUP_SDHCI
	bool
	select S5PC100_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for S5PC100 based SDHCI systems

config S5PC100_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

config MACH_SMDKC100
	bool "SMDKC100"
	select CPU_S5PC100
	select S3C_DEV_FB
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_I2C1
	select S3C_DEV_RTC
	select S3C_DEV_WDT
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_IDE
	select SAMSUNG_DEV_KEYPAD
	select SAMSUNG_DEV_TS
	select S5PC100_SETUP_FB_24BPP
	select S5PC100_SETUP_I2C1
	select S5PC100_SETUP_IDE
	select S5PC100_SETUP_KEYPAD
	select S5PC100_SETUP_SDHCI
	select S5P_DEV_FIMC0
	select S5P_DEV_FIMC1
	select S5P_DEV_FIMC2
	help
	  Machine support for the Samsung SMDKC100

endif
