menu "MMC Host controller Support"

config MMC
	bool "Enable MMC support"
	depends on ARCH_SUNXI || SANDBOX
	help
	  TODO: Move all architectures to use this option

config DM_MMC
	bool "Enable MMC controllers using Driver Model"
	depends on DM
	help
	  This enables the MultiMediaCard (MMC) uclass which supports MMC and
	  Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.)
	  and non-removable (e.g. eMMC chip) devices are supported. These
	  appear as block devices in U-Boot and can support filesystems such
	  as EXT4 and FAT.

config DM_MMC_OPS
	bool "Support MMC controller operations using Driver Model"
	depends on DM_MMC
	default y if DM_MMC
	help
	  Driver model provides a means of supporting device operations. This
	  option moves MMC operations under the control of driver model. The
	  option will be removed as soon as all DM_MMC drivers use it, as it
	  will the only supported behaviour.

config SPL_MMC_TINY
	bool "Tiny MMC framework in SPL"
	help
	  Enable MMC framework tinification support. This option is useful if
	  if your SPL is extremely size constrained. Heed the warning, enable
	  this option if and only if you know exactly what you are doing, if
	  you are reading this help text, you most likely have no idea :-)

	  The MMC framework is reduced to bare minimum to be useful. No malloc
	  support is needed for the MMC framework operation with this option
	  enabled. The framework supports exactly one MMC device and exactly
	  one MMC driver. The MMC driver can be adjusted to avoid any malloc
	  operations too, which can remove the need for malloc support in SPL
	  and thus further reduce footprint.

config MSM_SDHCI
	bool "Qualcomm SDHCI controller"
	depends on DM_MMC && BLK && DM_MMC_OPS
	help
	  Enables support for SDHCI 2.0 controller present on some Qualcomm
          Snapdragon devices. This device is compatible with eMMC v4.5 and
          SD 3.0 specifications. Both SD and eMMC devices are supported.
	  Card-detect gpios are not supported.

config ATMEL_SDHCI
	bool "Atmel SDHCI controller support"
	depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91
	help
	  This enables support for the Atmel SDHCI controller, which supports
	  the embedded MultiMedia Card (e.MMC) Specification V4.51, the SD
	  Memory Card Specification V3.0, and the SDIO V3.0 specification.
	  It is compliant with the SD Host Controller Standard V3.0
	  specification.

config ROCKCHIP_DWMMC
	bool "Rockchip SD/MMC controller support"
	depends on DM_MMC && OF_CONTROL
	help
	  This enables support for the Rockchip SD/MMM controller, which is
	  based on Designware IP. The device is compatible with at least
	  SD 3.0, SDIO 3.0 and MMC 4.5 and supports common eMMC chips as well
	  as removeable SD and micro-SD cards.

config SH_SDHI
	bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
	depends on RMOBILE
	help
	  Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform

config PIC32_SDHCI
	bool "Microchip PIC32 on-chip SDHCI support"
	depends on DM_MMC && MACH_PIC32
	help
	  Support for Microchip PIC32 SDHCI controller.

config ZYNQ_SDHCI
	bool "Arasan SDHCI controller support"
	depends on DM_MMC && OF_CONTROL && BLK && DM_MMC_OPS
	help
	  Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform

config ROCKCHIP_SDHCI
	bool "Arasan SDHCI controller for Rockchip support"
	depends on DM_MMC && BLK && DM_MMC_OPS
	help
	  Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform

config MMC_UNIPHIER
	bool "UniPhier SD/MMC Host Controller support"
	depends on ARCH_UNIPHIER
	depends on BLK
	select DM_MMC_OPS
	help
	  This selects support for the SD/MMC Host Controller on UniPhier SoCs.

config SANDBOX_MMC
	bool "Sandbox MMC support"
	depends on MMC && SANDBOX
	help
	  This select a dummy sandbox MMC driver. At present this does nothing
	  other than allow sandbox to be build with MMC support. This
	  improves build coverage for sandbox and makes it easier to detect
	  MMC build errors with sandbox.

endmenu
