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

# Configuration options for the S5PV310

if ARCH_S5PV310

config CPU_S5PV310
	bool
	select S3C_PL330_DMA
	help
	  Enable S5PV310 CPU support

config S5PV310_DEV_PD
	bool
	help
	  Compile in platform device definitions for Power Domain

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

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

config S5PV310_SETUP_I2C3
	bool
	help
	  Common setup code for i2c bus 3.

config S5PV310_SETUP_I2C4
	bool
	help
	  Common setup code for i2c bus 4.

config S5PV310_SETUP_I2C5
	bool
	help
	  Common setup code for i2c bus 5.

config S5PV310_SETUP_I2C6
	bool
	help
	  Common setup code for i2c bus 6.

config S5PV310_SETUP_I2C7
	bool
	help
	  Common setup code for i2c bus 7.

config S5PV310_SETUP_SDHCI
	bool
	select S5PV310_SETUP_SDHCI_GPIO
	help
	  Internal helper functions for S5PV310 based SDHCI systems.

config S5PV310_SETUP_SDHCI_GPIO
	bool
	help
	  Common setup code for SDHCI gpio.

config S5PV310_DEV_SYSMMU
	bool
	help
	  Common setup code for SYSTEM MMU in S5PV310

# machine support

menu "S5PC210 Machines"

config MACH_SMDKC210
	bool "SMDKC210"
	select CPU_S5PV310
	select S3C_DEV_RTC
	select S3C_DEV_WDT
	select S3C_DEV_I2C1
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S5PV310_DEV_PD
	select S5PV310_SETUP_I2C1
	select S5PV310_SETUP_SDHCI
	select S5PV310_DEV_SYSMMU
	help
	  Machine support for Samsung SMDKC210
	  S5PC210(MCP) is one of package option of S5PV310

config MACH_UNIVERSAL_C210
	bool "Mobile UNIVERSAL_C210 Board"
	select CPU_S5PV310
	select S5P_DEV_ONENAND
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S5PV310_SETUP_SDHCI
	select S3C_DEV_I2C1
	select S5PV310_SETUP_I2C1
	help
	  Machine support for Samsung Mobile Universal S5PC210 Reference
	  Board. S5PC210(MCP) is one of package option of S5PV310

endmenu

menu "S5PV310 Machines"

config MACH_SMDKV310
	bool "SMDKV310"
	select CPU_S5PV310
	select S3C_DEV_RTC
	select S3C_DEV_WDT
	select S3C_DEV_I2C1
	select S3C_DEV_HSMMC
	select S3C_DEV_HSMMC1
	select S3C_DEV_HSMMC2
	select S3C_DEV_HSMMC3
	select S5PV310_DEV_PD
	select S5PV310_DEV_SYSMMU
	select S5PV310_SETUP_I2C1
	select S5PV310_SETUP_SDHCI
	help
	  Machine support for Samsung SMDKV310

endmenu

comment "Configuration for HSMMC bus width"

menu "Use 8-bit bus width"

config S5PV310_SDHCI_CH0_8BIT
	bool "Channel 0 with 8-bit bus"
	help
	  Support HSMMC Channel 0 8-bit bus.
	  If selected, Channel 1 is disabled.

config S5PV310_SDHCI_CH2_8BIT
	bool "Channel 2 with 8-bit bus"
	help
	  Support HSMMC Channel 2 8-bit bus.
	  If selected, Channel 3 is disabled.

endmenu

endif
