Merge branch '2019-05-10-master-imports'
[oweals/u-boot.git] / drivers / mmc / Kconfig
index bc29611d783be4788777ef70e7ed14cbe1c8004b..c23299ea962b6f435071550de5d6693e4c303a6b 100644 (file)
@@ -3,6 +3,7 @@ menu "MMC Host controller Support"
 config MMC
        bool "MMC/SD/SDIO card support"
        default ARM || PPC || SANDBOX
+       select HAVE_BLOCK_DEVICE
        help
          This selects MultiMediaCard, Secure Digital and Secure
          Digital I/O support.
@@ -70,6 +71,19 @@ config MMC_HW_PARTITIONING
          This adds a command and an API to do hardware partitioning on eMMC
          devices.
 
+config SUPPORT_EMMC_RPMB
+       bool "Support eMMC replay protected memory block (RPMB)"
+       imply CMD_MMC_RPMB
+       help
+         Enable support for reading, writing and programming the
+         key for the Replay Protection Memory Block partition in eMMC.
+
+config SUPPORT_EMMC_BOOT
+       bool "Support some additional features of the eMMC boot partitions"
+       help
+         Enable support for eMMC boot partitions. This also enables
+         extensions within the mmc command.
+
 config MMC_IO_VOLTAGE
        bool "Support IO voltage configuration"
        help
@@ -103,6 +117,19 @@ config SPL_MMC_UHS_SUPPORT
          cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
          frequency can go up to 208MHz (SDR104)
 
+config MMC_HS400_SUPPORT
+       bool "enable HS400 support"
+       select MMC_HS200_SUPPORT
+       help
+         The HS400 mode is support by some eMMC. The bus frequency is up to
+         200MHz. This mode requires tuning the IO.
+
+config SPL_MMC_HS400_SUPPORT
+       bool "enable HS400 support in SPL"
+       help
+         The HS400 mode is support by some eMMC. The bus frequency is up to
+         200MHz. This mode requires tuning the IO.
+
 config MMC_HS200_SUPPORT
        bool "enable HS200 support"
        help
@@ -123,6 +150,14 @@ config MMC_VERBOSE
          Enable the output of more information about the card such as the
          operating mode.
 
+config MMC_TRACE
+       bool "MMC debugging"
+       default n
+       help
+         This is an option for use by developer. Enable MMC core debugging.
+
+         If you need to see the MMC core message, say Y.
+
 config SPL_MMC_TINY
        bool "Tiny MMC framework in SPL"
        help
@@ -149,6 +184,7 @@ config MMC_DAVINCI
 
 config MMC_DW
        bool "Synopsys DesignWare Memory Card Interface"
+       select BOUNCE_BUFFER
        help
          This selects support for the Synopsys DesignWare Mobile Storage IP
          block, this provides host support for SD and MMC interfaces, in both
@@ -192,6 +228,16 @@ config MMC_DW_SOCFPGA
          Synopsys DesignWare Memory Card Interface driver. Select this option
          for platforms based on Altera SOCFPGA.
 
+config MMC_DW_SNPS
+       bool "Extensions for DW Memory Card Interface used in Synopsys ARC devboards"
+       depends on MMC_DW
+       depends on DM_MMC
+       depends on OF_CONTROL
+       depends on CLK
+       help
+         This selects support for Synopsys DesignWare Memory Card Interface driver
+         extensions used in various Synopsys ARC devboards.
+
 config MMC_MESON_GX
        bool "Meson GX EMMC controller support"
        depends on DM_MMC && BLK && ARCH_MESON
@@ -209,6 +255,11 @@ config MMC_MXC
 
 config MMC_MXS
        bool "Freescale MXS Multimedia Card Interface support"
+       depends on MX23 || MX28 || MX6 || MX7
+       select BOUNCE_BUFFER
+       select APBH_DMA
+       select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
+       select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
        help
          This selects the Freescale SSP MMC controller found on MXS based
          platforms like mx23/28.
@@ -234,6 +285,15 @@ config MMC_OMAP_HS
 
          If unsure, say N.
 
+config MMC_OMAP_HS_ADMA
+       bool "ADMA support for OMAP HS MMC"
+       depends on MMC_OMAP_HS && !OMAP34XX
+       default y if !AM33XX
+       help
+         This enables support for the ADMA2 controller (SDA3.00 Part A2 DMA
+         controller). If supported by the hardware, selecting this option will
+         increase performances.
+
 config MMC_OMAP36XX_PINS
        bool "Enable MMC1 on OMAP36xx/37xx"
        depends on OMAP34XX && MMC_OMAP_HS
@@ -252,14 +312,49 @@ config SH_SDHI
        help
          Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
 
+config SH_MMCIF
+       bool "SuperH/Renesas ARM SoCs on-chip MMCIF host controller support"
+       depends on ARCH_RMOBILE || SH
+       help
+         Support for the on-chip MMCIF host controller on SuperH/Renesas ARM SoCs platform
+
 config MMC_UNIPHIER
-       bool "UniPhier/RCar SD/MMC Host Controller support"
-       depends on ARCH_UNIPHIER || ARCH_RMOBILE
+       bool "UniPhier SD/MMC Host Controller support"
+       depends on ARCH_UNIPHIER
+       depends on BLK && DM_MMC
+       depends on OF_CONTROL
+       help
+         This selects support for the Matsushita SD/MMC Host Controller on
+         SocioNext UniPhier SoCs.
+
+config RENESAS_SDHI
+       bool "Renesas R-Car SD/MMC Host Controller support"
+       depends on ARCH_RMOBILE
        depends on BLK && DM_MMC
        depends on OF_CONTROL
        help
          This selects support for the Matsushita SD/MMC Host Controller on
-         SocioNext UniPhier and Renesas RCar SoCs.
+         Renesas R-Car SoCs.
+
+config MMC_BCM2835
+       bool "BCM2835 family custom SD/MMC Host Controller support"
+       depends on ARCH_BCM283X
+       depends on BLK && DM_MMC
+       depends on OF_CONTROL
+       default y
+       help
+         This selects support for the custom SD host controller in the BCM2835
+         family of devices.
+
+         If you have a BCM2835 platform with SD or MMC devices, say Y here.
+
+         If unsure, say N.
+
+config JZ47XX_MMC
+       bool "Ingenic JZ47xx SD/MMC Host Controller support"
+       depends on ARCH_JZ47XX
+       help
+         This selects support for the SD Card Controller on Ingenic JZ47xx SoCs.
 
 config MMC_SANDBOX
        bool "Sandbox MMC support"
@@ -296,6 +391,20 @@ config MMC_SDHCI_SDMA
          This enables support for the SDMA (Single Operation DMA) defined
          in the SD Host Controller Standard Specification Version 1.00 .
 
+config MMC_SDHCI_ADMA
+       bool "Support SDHCI ADMA2"
+       depends on MMC_SDHCI
+       help
+         This enables support for the ADMA (Advanced DMA) defined
+         in the SD Host Controller Standard Specification Version 3.00
+
+config SPL_MMC_SDHCI_ADMA
+       bool "Support SDHCI ADMA2 in SPL"
+       depends on MMC_SDHCI
+       help
+         This enables support for the ADMA (Advanced DMA) defined
+         in the SD Host Controller Standard Specification Version 3.00 in SPL.
+
 config MMC_SDHCI_ATMEL
        bool "Atmel SDHCI controller support"
        depends on ARCH_AT91
@@ -321,6 +430,17 @@ config MMC_SDHCI_BCM2835
 
          If unsure, say N.
 
+config MMC_SDHCI_BCMSTB
+       tristate "SDHCI support for the BCMSTB SD/MMC Controller"
+       depends on MMC_SDHCI
+       help
+         This selects the Broadcom set-top box SD/MMC controller.
+
+         If you have a BCMSTB platform with SD or MMC devices,
+         say Y here.
+
+         If unsure, say N.
+
 config MMC_SDHCI_CADENCE
        bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
        depends on BLK && DM_MMC
@@ -333,6 +453,15 @@ config MMC_SDHCI_CADENCE
 
          If unsure, say N.
 
+config MMC_SDHCI_K3_ARASAN
+       bool "Arasan SDHCI controller for TI's K3 based SoCs"
+       depends on ARCH_K3
+       depends on MMC_SDHCI
+       depends on DM_MMC && OF_CONTROL && BLK
+       help
+         Support for Arasan SDHCI host controller on Texas Instruments'
+         K3 family based SoC platforms
+
 config MMC_SDHCI_KONA
        bool "SDHCI support on Broadcom KONA platform"
        depends on MMC_SDHCI
@@ -438,6 +567,7 @@ config MMC_SDHCI_TANGIER
 config MMC_SDHCI_TEGRA
        bool "SDHCI platform support for the Tegra SD/MMC Controller"
        depends on TEGRA
+       select BOUNCE_BUFFER
        default y
        help
          This selects the Tegra SD/MMC controller. If you have a Tegra
@@ -447,12 +577,25 @@ config MMC_SDHCI_TEGRA
 
 config MMC_SDHCI_ZYNQ
        bool "Arasan SDHCI controller support"
-       depends on ARCH_ZYNQ || ARCH_ZYNQMP
+       depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL
        depends on DM_MMC && OF_CONTROL && BLK
        depends on MMC_SDHCI
        help
          Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
 
+config ZYNQ_SDHCI_MAX_FREQ
+       int "Set the maximum frequency of the controller"
+       depends on MMC_SDHCI_ZYNQ
+       help
+         Set the maximum frequency of the controller.
+
+config ZYNQ_SDHCI_MIN_FREQ
+       int "Set the minimum frequency of the controller"
+       depends on MMC_SDHCI_ZYNQ
+       default 0
+       help
+         Set the minimum frequency of the controller.
+
 config MMC_SUNXI
        bool "Allwinner sunxi SD/MMC Host Controller support"
        depends on ARCH_SUNXI && !UART0_PORT_F
@@ -465,6 +608,10 @@ config MMC_SUNXI_HAS_NEW_MODE
        bool
        depends on MMC_SUNXI
 
+config MMC_SUNXI_HAS_MODE_SWITCH
+       bool
+       depends on MMC_SUNXI
+
 config GENERIC_ATMEL_MCI
        bool "Atmel Multimedia Card Interface support"
        depends on DM_MMC && BLK && ARCH_AT91
@@ -482,18 +629,29 @@ config STM32_SDMMC2
          If you have a board based on such a SoC and with a SD/MMC slot,
          say Y or M here.
 
-config MMC_NDS32
-       bool "Andestech SD/MMC controller support"
-       depends on DM_MMC && OF_CONTROL && BLK && FTSDC010
-       help
-         This enables support for the Andestech SD/MMM controller, which is
-         based on Faraday IP.
-
 config FTSDC010
        bool "Ftsdc010 SD/MMC controller Support"
        help
          This SD/MMC controller is present in Andestech SoCs which is based on Faraday IP.
 
+config FTSDC010_SDIO
+       bool "Support ftsdc010 sdio"
+       default n
+       depends on FTSDC010
+       help
+               This can enable ftsdc010 sdio function.
+
+config MMC_MTK
+       bool "MediaTek SD/MMC Card Interface support"
+       depends on ARCH_MEDIATEK
+       depends on BLK && DM_MMC
+       depends on OF_CONTROL
+       help
+         This selects the MediaTek(R) Secure digital and Multimedia card Interface.
+         If you have a machine with a integrated SD/MMC card reader, say Y or M here.
+         This is needed if support for any SD/SDIO/MMC devices is required.
+         If unsure, say N.
+
 endif
 
 config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
@@ -507,6 +665,12 @@ config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
          TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
          approach once proper kernel integration made it mainline.
 
+config FSL_ESDHC
+       bool "Freescale/NXP eSDHC controller support"
+       help
+         This selects support for the eSDHC (enhanced secure digital host
+         controller) found on numerous Freescale/NXP SoCs.
+
 endmenu
 
 config SYS_FSL_ERRATUM_ESDHC111