Drop CONFIG_FSL_ESDHC_USE_PERIPHERAL_CLK usage
[oweals/u-boot.git] / drivers / mmc / Kconfig
index 0a0d4aaf6ca0d4438fd184261108ee5aceaf1839..6371ffef11ae21892ac3792ae812017c2a340f24 100644 (file)
@@ -46,6 +46,24 @@ config SPL_DM_MMC
 
 if MMC
 
 
 if MMC
 
+config MMC_SPI
+       bool "Support for SPI-based MMC controller"
+       depends on DM_MMC && DM_SPI
+       help
+         This selects SPI-based MMC controllers.
+         If you have an MMC controller on a SPI bus, say Y here.
+
+         If unsure, say N.
+
+config MMC_SPI_CRC_ON
+       bool "Support CRC for SPI-based MMC controller"
+       depends on MMC_SPI
+       default y
+       help
+         This enables CRC for SPI-based MMC controllers.
+
+         If unsure, say N.
+
 config ARM_PL180_MMCI
        bool "ARM AMBA Multimedia Card Interface and compatible support"
        depends on DM_MMC && OF_CONTROL
 config ARM_PL180_MMCI
        bool "ARM AMBA Multimedia Card Interface and compatible support"
        depends on DM_MMC && OF_CONTROL
@@ -78,6 +96,12 @@ config SUPPORT_EMMC_RPMB
          Enable support for reading, writing and programming the
          key for the Replay Protection Memory Block partition in eMMC.
 
          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
 config MMC_IO_VOLTAGE
        bool "Support IO voltage configuration"
        help
@@ -111,6 +135,18 @@ 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)
 
          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_ES_SUPPORT
+       bool "enable HS400 Enhanced Strobe support"
+       help
+         The HS400 Enhanced Strobe mode is support by some eMMC. The bus
+         frequency is up to 200MHz. This mode does not tune the IO.
+
+config SPL_MMC_HS400_ES_SUPPORT
+       bool "enable HS400 Enhanced Strobe support in SPL"
+       help
+         The HS400 Enhanced Strobe mode is support by some eMMC. The bus
+         frequency is up to 200MHz. This mode does not tune the IO.
+
 config MMC_HS400_SUPPORT
        bool "enable HS400 support"
        select MMC_HS200_SUPPORT
 config MMC_HS400_SUPPORT
        bool "enable HS400 support"
        select MMC_HS200_SUPPORT
@@ -120,6 +156,7 @@ config MMC_HS400_SUPPORT
 
 config SPL_MMC_HS400_SUPPORT
        bool "enable HS400 support in SPL"
 
 config SPL_MMC_HS400_SUPPORT
        bool "enable HS400 support in SPL"
+       select SPL_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.
        help
          The HS400 mode is support by some eMMC. The bus frequency is up to
          200MHz. This mode requires tuning the IO.
@@ -130,7 +167,6 @@ config MMC_HS200_SUPPORT
          The HS200 mode is support by some eMMC. The bus frequency is up to
          200MHz. This mode requires tuning the IO.
 
          The HS200 mode is support by some eMMC. The bus frequency is up to
          200MHz. This mode requires tuning the IO.
 
-
 config SPL_MMC_HS200_SUPPORT
        bool "enable HS200 support in SPL"
        help
 config SPL_MMC_HS200_SUPPORT
        bool "enable HS200 support in SPL"
        help
@@ -152,21 +188,6 @@ config MMC_TRACE
 
          If you need to see the MMC core message, say Y.
 
 
          If you need to see the MMC core message, say Y.
 
-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 MMC_DAVINCI
        bool "TI DAVINCI Multimedia Card Interface support"
        depends on ARCH_DAVINCI
 config MMC_DAVINCI
        bool "TI DAVINCI Multimedia Card Interface support"
        depends on ARCH_DAVINCI
@@ -178,6 +199,7 @@ config MMC_DAVINCI
 
 config MMC_DW
        bool "Synopsys DesignWare Memory Card Interface"
 
 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
        help
          This selects support for the Synopsys DesignWare Mobile Storage IP
          block, this provides host support for SD and MMC interfaces, in both
@@ -221,6 +243,16 @@ config MMC_DW_SOCFPGA
          Synopsys DesignWare Memory Card Interface driver. Select this option
          for platforms based on Altera 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
 config MMC_MESON_GX
        bool "Meson GX EMMC controller support"
        depends on DM_MMC && BLK && ARCH_MESON
@@ -239,6 +271,7 @@ config MMC_MXC
 config MMC_MXS
        bool "Freescale MXS Multimedia Card Interface support"
        depends on MX23 || MX28 || MX6 || MX7
 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
        select APBH_DMA
        select APBH_DMA_BURST if ARCH_MX6 || ARCH_MX7
        select APBH_DMA_BURST8 if ARCH_MX6 || ARCH_MX7
@@ -332,6 +365,12 @@ config MMC_BCM2835
 
          If unsure, say N.
 
 
          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"
        depends on SANDBOX
 config MMC_SANDBOX
        bool "Sandbox MMC support"
        depends on SANDBOX
@@ -367,6 +406,31 @@ config MMC_SDHCI_SDMA
          This enables support for the SDMA (Single Operation DMA) defined
          in the SD Host Controller Standard Specification Version 1.00 .
 
          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_ASPEED
+       bool "Aspeed SDHCI controller"
+       depends on ARCH_ASPEED
+       depends on DM_MMC
+       depends on MMC_SDHCI
+       help
+         Enables support for the Aspeed SDHCI 2.0 controller present on Aspeed
+         SoCs. This device is compatible with SD 3.0 and/or MMC 4.3
+         specifications. On the AST2600, the device is also compatible with
+         MMC 5.1 and eMMC 3.0.
+
 config MMC_SDHCI_ATMEL
        bool "Atmel SDHCI controller support"
        depends on ARCH_AT91
 config MMC_SDHCI_ATMEL
        bool "Atmel SDHCI controller support"
        depends on ARCH_AT91
@@ -415,14 +479,26 @@ config MMC_SDHCI_CADENCE
 
          If unsure, say N.
 
 
          If unsure, say N.
 
-config MMC_SDHCI_K3_ARASAN
-       bool "Arasan SDHCI controller for TI's K3 based SoCs"
+config MMC_SDHCI_AM654
+       bool "SDHCI Controller on TI's Am654 devices"
        depends on ARCH_K3
        depends on MMC_SDHCI
        depends on DM_MMC && OF_CONTROL && BLK
        depends on ARCH_K3
        depends on MMC_SDHCI
        depends on DM_MMC && OF_CONTROL && BLK
+       depends on REGMAP
        help
        help
-         Support for Arasan SDHCI host controller on Texas Instruments'
-         K3 family based SoC platforms
+         Support for Secure Digital Host Controller Interface (SDHCI)
+         controllers present on TI's AM654 SOCs.
+
+config MMC_SDHCI_IPROC
+       bool "SDHCI support for the iProc SD/MMC Controller"
+       depends on MMC_SDHCI
+       help
+         This selects the iProc SD/MMC controller.
+
+         If you have a Broadcom IPROC platform with SD or MMC devices,
+         say Y or M here.
+
+         If unsure, say N.
 
 config MMC_SDHCI_KONA
        bool "SDHCI support on Broadcom KONA platform"
 
 config MMC_SDHCI_KONA
        bool "SDHCI support on Broadcom KONA platform"
@@ -529,6 +605,7 @@ config MMC_SDHCI_TANGIER
 config MMC_SDHCI_TEGRA
        bool "SDHCI platform support for the Tegra SD/MMC Controller"
        depends on TEGRA
 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
        default y
        help
          This selects the Tegra SD/MMC controller. If you have a Tegra
@@ -536,9 +613,20 @@ config MMC_SDHCI_TEGRA
 
          If unsure, say N.
 
 
          If unsure, say N.
 
+config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
+       bool "Disable external clock loopback"
+       depends on MMC_SDHCI_TEGRA && TEGRA124
+       help
+         Disable the external clock loopback and use the internal one on SDMMC3
+         as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
+         being set to 0xfffd according to the TRM.
+
+         TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
+         approach once proper kernel integration made it mainline.
+
 config MMC_SDHCI_ZYNQ
        bool "Arasan SDHCI controller support"
 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
        depends on DM_MMC && OF_CONTROL && BLK
        depends on MMC_SDHCI
        help
@@ -557,6 +645,12 @@ config ZYNQ_SDHCI_MIN_FREQ
        help
          Set the minimum frequency of the controller.
 
        help
          Set the minimum frequency of the controller.
 
+config ZYNQ_HISPD_BROKEN
+       bool "High speed broken for Zynq SDHCI controller"
+       depends on MMC_SDHCI_ZYNQ
+       help
+         Set if high speed mode is broken.
+
 config MMC_SUNXI
        bool "Allwinner sunxi SD/MMC Host Controller support"
        depends on ARCH_SUNXI && !UART0_PORT_F
 config MMC_SUNXI
        bool "Allwinner sunxi SD/MMC Host Controller support"
        depends on ARCH_SUNXI && !UART0_PORT_F
@@ -569,6 +663,10 @@ config MMC_SUNXI_HAS_NEW_MODE
        bool
        depends on MMC_SUNXI
 
        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
 config GENERIC_ATMEL_MCI
        bool "Atmel Multimedia Card Interface support"
        depends on DM_MMC && BLK && ARCH_AT91
@@ -598,24 +696,37 @@ config FTSDC010_SDIO
        help
                This can enable ftsdc010 sdio function.
 
        help
                This can enable ftsdc010 sdio function.
 
-endif
-
-config TEGRA124_MMC_DISABLE_EXT_LOOPBACK
-       bool "Disable external clock loopback"
-       depends on MMC_SDHCI_TEGRA && TEGRA124
+config MMC_MTK
+       bool "MediaTek SD/MMC Card Interface support"
+       depends on ARCH_MEDIATEK || ARCH_MTMIPS
+       depends on BLK && DM_MMC
+       depends on OF_CONTROL
        help
        help
-         Disable the external clock loopback and use the internal one on SDMMC3
-         as per the SDMMC_VENDOR_MISC_CNTRL_0 register's SDMMC_SPARE1 bits
-         being set to 0xfffd according to the TRM.
+         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.
 
 
-         TODO(marcel.ziswiler@toradex.com): Move to device tree controlled
-         approach once proper kernel integration made it mainline.
+endif
 
 config FSL_ESDHC
        bool "Freescale/NXP eSDHC controller support"
        help
 
 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.
+         This selects support for the eSDHC (Enhanced Secure Digital Host
+         Controller) found on numerous Freescale/NXP SoCs.
+
+config FSL_ESDHC_IMX
+       bool "Freescale/NXP i.MX eSDHC controller support"
+       help
+         This selects support for the i.MX eSDHC (Enhanced Secure Digital Host
+         Controller) found on numerous Freescale/NXP SoCs.
+
+config FSL_USDHC
+       bool "Freescale/NXP i.MX uSDHC controller support"
+       depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMXRT || TARGET_S32V234EVB
+       select FSL_ESDHC_IMX
+       help
+         This enables the Ultra Secured Digital Host Controller enhancements
 
 endmenu
 
 
 endmenu