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

if ARCH_S5P64X0

config CPU_S5P6440
	bool
	select S5P_SLEEP if PM
	select SAMSUNG_DMADEV
	select SAMSUNG_WAKEMASK if PM
	help
	  Enable S5P6440 CPU support

config CPU_S5P6450
	bool
	select S5P_SLEEP if PM
	select SAMSUNG_DMADEV
	select SAMSUNG_WAKEMASK if PM
	help
	  Enable S5P6450 CPU support

config S5P64X0_SETUP_FB_24BPP
	bool
	help
	  Common setup code for S5P64X0 based boards with a LCD display
	  through RGB interface.

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

config S5P64X0_SETUP_SPI
	bool
	help
	  Common setup code for SPI GPIO configurations

config S5P64X0_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

# machine support

config MACH_SMDK6440
	bool "SMDK6440"
	select CPU_S5P6440
	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 S5P64X0_SETUP_FB_24BPP
	select S5P64X0_SETUP_I2C1
	select S5P64X0_SETUP_SDHCI_GPIO
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_PWM
	select SAMSUNG_DEV_TS
	help
	  Machine support for the Samsung SMDK6440

config MACH_SMDK6450
	bool "SMDK6450"
	select CPU_S5P6450
	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 S5P64X0_SETUP_FB_24BPP
	select S5P64X0_SETUP_I2C1
	select S5P64X0_SETUP_SDHCI_GPIO
	select SAMSUNG_DEV_ADC
	select SAMSUNG_DEV_BACKLIGHT
	select SAMSUNG_DEV_PWM
	select SAMSUNG_DEV_TS
	help
	  Machine support for the Samsung SMDK6450

menu "Use 8-bit SDHCI bus width"

config S5P64X0_SD_CH1_8BIT
	bool "SDHCI Channel 1 (Slot 1)"
	depends on MACH_SMDK6450 || MACH_SMDK6440
	help
	  Support SDHCI Channel 1 8-bit bus.
	  If selected, Channel 2 is disabled.

endmenu

endif
