]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/mmc/Kconfig
mmc: omap_hsmmc: make it possible to compile out ADMA support
[people/ms/u-boot.git] / drivers / mmc / Kconfig
index ddef59a3c01db3f591b2d3592570aaba0428b0ea..88a13591adf330f5f7db38e1ed59a5447c551289 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.
@@ -10,9 +11,17 @@ config MMC
          If you want MMC/SD/SDIO support, you should say Y here and
          also to your specific host controller driver.
 
-config GENERIC_MMC
-       bool "Generic MMC driver framework"
-       default MMC
+config MMC_WRITE
+       bool "support for MMC/SD write operations"
+       depends on MMC
+       default y
+       help
+         Enable write access to MMC and SD Cards
+
+config MMC_BROKEN_CD
+       bool "Poll for broken card detection case"
+       help
+         If card  detection feature is broken, just poll to detect.
 
 config DM_MMC
        bool "Enable MMC controllers using Driver Model"
@@ -24,18 +33,97 @@ config DM_MMC
          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
+config SPL_DM_MMC
+       bool "Enable MMC controllers using Driver Model in SPL"
+       depends on SPL_DM && DM_MMC
+       default y
        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.
+         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.
 
 if MMC
 
+config ARM_PL180_MMCI
+       bool "ARM AMBA Multimedia Card Interface and compatible support"
+       depends on DM_MMC && OF_CONTROL
+       help
+         This selects the ARM(R) AMBA(R) PrimeCell Multimedia Card
+         Interface (PL180, PL181 and compatible) support.
+         If you have an ARM(R) platform with a Multimedia Card slot,
+         say Y or M here.
+
+config MMC_QUIRKS
+       bool "Enable quirks"
+       default y
+       help
+         Some cards and hosts may sometimes behave unexpectedly (quirks).
+         This option enable workarounds to handle those quirks. Some of them
+         are enabled by default, other may require additionnal flags or are
+         enabled by the host driver.
+
+config MMC_HW_PARTITIONING
+       bool "Support for HW partitioning command(eMMC)"
+       default y
+       help
+         This adds a command and an API to do hardware partitioning on eMMC
+         devices.
+
+config MMC_IO_VOLTAGE
+       bool "Support IO voltage configuration"
+       help
+         IO voltage configuration allows selecting the voltage level of the IO
+         lines (not the level of main supply). This is required for UHS
+         support. For eMMC this not mandatory, but not enabling this option may
+         prevent the driver of using the faster modes.
+
+config SPL_MMC_IO_VOLTAGE
+       bool "Support IO voltage configuration in SPL"
+       default n
+       help
+         IO voltage configuration allows selecting the voltage level of the IO
+         lines (not the level of main supply). This is required for UHS
+         support. For eMMC this not mandatory, but not enabling this option may
+         prevent the driver of using the faster modes.
+
+config MMC_UHS_SUPPORT
+       bool "enable UHS support"
+       depends on MMC_IO_VOLTAGE
+       help
+         The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
+         cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
+         frequency can go up to 208MHz (SDR104)
+
+config SPL_MMC_UHS_SUPPORT
+       bool "enable UHS support in SPL"
+       depends on SPL_MMC_IO_VOLTAGE
+       help
+         The Ultra High Speed (UHS) bus is available on some SDHC and SDXC
+         cards. The IO voltage must be switchable from 3.3v to 1.8v. The bus
+         frequency can go up to 208MHz (SDR104)
+
+config MMC_HS200_SUPPORT
+       bool "enable HS200 support"
+       help
+         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
+         The HS200 mode is support by some eMMC. The bus frequency is up to
+         200MHz. This mode requires tuning the IO.
+
+config MMC_VERBOSE
+       bool "Output more information about the MMC"
+       default y
+       help
+         Enable the output of more information about the card such as the
+         operating mode.
+
 config SPL_MMC_TINY
        bool "Tiny MMC framework in SPL"
        help
@@ -105,6 +193,12 @@ config MMC_DW_SOCFPGA
          Synopsys DesignWare Memory Card Interface driver. Select this option
          for platforms based on Altera SOCFPGA.
 
+config MMC_MESON_GX
+       bool "Meson GX EMMC controller support"
+       depends on DM_MMC && BLK && ARCH_MESON
+       help
+        Support for EMMC host controller on Meson GX ARM SoCs platform (S905)
+
 config MMC_MXC
        bool "Freescale i.MX21/27/31 or MPC512x Multimedia Card support"
        help
@@ -116,14 +210,28 @@ config MMC_MXC
 
 config MMC_MXS
        bool "Freescale MXS Multimedia Card Interface support"
+       depends on MX23 || MX28 || MX6 || MX7
+       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.
 
          If unsure, say N.
 
+config MMC_PCI
+       bool "Support for MMC controllers on PCI"
+       help
+         This selects PCI-based MMC controllers.
+         If you have an MMC controller on a PCI bus, say Y here.
+
+         If unsure, say N.
+
 config MMC_OMAP_HS
        bool "TI OMAP High Speed Multimedia Card Interface support"
+       select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
+       select DM_REGULATOR_PBIAS if DM_MMC && DM_REGULATOR
        help
          This selects the TI OMAP High Speed Multimedia card Interface.
          If you have an omap2plus board with a Multimedia Card slot,
@@ -131,6 +239,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
@@ -145,22 +262,37 @@ config MMC_OMAP36XX_PINS
 
 config SH_SDHI
        bool "SuperH/Renesas ARM SoCs on-chip SDHI host controller support"
-       depends on RMOBILE
+       depends on ARCH_RMOBILE
        help
          Support for the on-chip SDHI host controller on SuperH/Renesas ARM SoCs platform
 
 config MMC_UNIPHIER
-       bool "UniPhier SD/MMC Host Controller support"
-       depends on ARCH_UNIPHIER
-       depends on BLK && DM_MMC_OPS
+       bool "UniPhier/RCar SD/MMC Host Controller support"
+       depends on ARCH_UNIPHIER || 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.
+
+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 SD/MMC Host Controller on UniPhier SoCs.
+         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 MMC_SANDBOX
        bool "Sandbox MMC support"
        depends on SANDBOX
-       depends on BLK && DM_MMC_OPS && OF_CONTROL
+       depends on BLK && DM_MMC && OF_CONTROL
        help
          This select a dummy sandbox MMC driver. At present this does nothing
          other than allow sandbox to be build with MMC support. This
@@ -195,7 +327,7 @@ config MMC_SDHCI_SDMA
 config MMC_SDHCI_ATMEL
        bool "Atmel SDHCI controller support"
        depends on ARCH_AT91
-       depends on DM_MMC && BLK && DM_MMC_OPS && ARCH_AT91
+       depends on DM_MMC && BLK && ARCH_AT91
        depends on MMC_SDHCI
        help
          This enables support for the Atmel SDHCI controller, which supports
@@ -219,7 +351,7 @@ config MMC_SDHCI_BCM2835
 
 config MMC_SDHCI_CADENCE
        bool "SDHCI support for the Cadence SD/SDIO/eMMC controller"
-       depends on BLK && DM_MMC_OPS
+       depends on BLK && DM_MMC
        depends on MMC_SDHCI
        depends on OF_CONTROL
        help
@@ -241,7 +373,7 @@ config MMC_SDHCI_KONA
 
 config MMC_SDHCI_MSM
        bool "Qualcomm SDHCI controller"
-       depends on BLK && DM_MMC_OPS
+       depends on BLK && DM_MMC
        depends on MMC_SDHCI
        help
          Enables support for SDHCI 2.0 controller present on some Qualcomm
@@ -271,7 +403,7 @@ config MMC_SDHCI_PIC32
 config MMC_SDHCI_ROCKCHIP
        bool "Arasan SDHCI controller for Rockchip support"
        depends on ARCH_ROCKCHIP
-       depends on DM_MMC && BLK && DM_MMC_OPS
+       depends on DM_MMC && BLK
        depends on MMC_SDHCI
        help
          Support for Arasan SDHCI host controller on Rockchip ARM SoCs platform
@@ -317,6 +449,20 @@ config MMC_SDHCI_XENON
 
          If unsure, say N.
 
+config MMC_SDHCI_TANGIER
+       bool "Tangier SDHCI controller support"
+       depends on DM_MMC && BLK
+       depends on MMC_SDHCI
+       help
+         This selects support for SDHCI controller on Tanginer
+         SoC. Note that this controller does not sit on PCI bus and,
+         hence, cannot be enumerated by standard PCI means.
+
+         If you're using an Intel Tangier SoC (available on Intel
+         Edison board), say Y here.
+
+         If unsure, say N.
+
 config MMC_SDHCI_TEGRA
        bool "SDHCI platform support for the Tegra SD/MMC Controller"
        depends on TEGRA
@@ -330,7 +476,7 @@ config MMC_SDHCI_TEGRA
 config MMC_SDHCI_ZYNQ
        bool "Arasan SDHCI controller support"
        depends on ARCH_ZYNQ || ARCH_ZYNQMP
-       depends on DM_MMC && OF_CONTROL && BLK && DM_MMC_OPS
+       depends on DM_MMC && OF_CONTROL && BLK
        depends on MMC_SDHCI
        help
          Support for Arasan SDHCI host controller on Zynq/ZynqMP ARM SoCs platform
@@ -343,8 +489,52 @@ config MMC_SUNXI
          This selects support for the SD/MMC Host Controller on
          Allwinner sunxi SoCs.
 
+config MMC_SUNXI_HAS_NEW_MODE
+       bool
+       depends on MMC_SUNXI
+
+config GENERIC_ATMEL_MCI
+       bool "Atmel Multimedia Card Interface support"
+       depends on DM_MMC && BLK && ARCH_AT91
+       help
+         This enables support for Atmel High Speed Multimedia Card Interface
+         (HSMCI), which supports the MultiMedia Card (MMC) Specification V4.3,
+         the SD Memory Card Specification V2.0, the SDIO V2.0 specification
+         and CE-ATA V1.1.
+
+config STM32_SDMMC2
+       bool "STMicroelectronics STM32H7 SD/MMC Host Controller support"
+       depends on DM_MMC && BLK && OF_CONTROL
+       help
+         This selects support for the SD/MMC controller on STM32H7 SoCs.
+         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.
+
 endif
 
+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.
+
 endmenu
 
 config SYS_FSL_ERRATUM_ESDHC111