#
# MMC subsystem configuration
#

menuconfig MMC
	tristate "MMC/SD/SDIO card support"
	depends on HAS_IOMEM
	help
	  This selects MultiMediaCard, Secure Digital and Secure
	  Digital I/O support.

	  If you want MMC/SD/SDIO support, you should say Y here and
	  also to your specific host controller driver.

config MMC_DEBUG
	bool "MMC debugging"
	depends on MMC != n
	help
	  This is an option for use by developers; most people should
	  say N here.  This enables MMC core and driver debugging.

config MMC_BLOCK_DEFERRED_RESUME
	bool "Enable Deferred Resume"
	depends on MMC != n
	default n

config MMC_SUPPORT_STLOG
	bool "Enable storage log"
	depends on MMC && PROC_STLOG
	default y

config MMC_CMDQ_DEBUG
	bool "MMC CMDQ debugging"
	depends on MMC != n
	help
	  This is an option for use by developers; most people should
	  say N here. This enables MMC core and driver debugging for CMDQ mode.

config MMC_DATA_LOG
	bool "Samsung MMC DATA logging"
	depends on MMC != n
	---help---
	  This feature support for MMC Data logging.
	  Select this option if this feature is needed on working.

config MMC_TEST_MODE
       bool "Samsung MMC TEST feature"
       depends on MMC != n
       ---help---
         This selects support for test mode for debugging.
         Select this option if this feature is needed on working.

if MMC

source "drivers/mmc/core/Kconfig"

source "drivers/mmc/card/Kconfig"

source "drivers/mmc/host/Kconfig"

endif # MMC
