mirror of
https://github.com/torvalds/linux.git
synced 2024-11-30 08:01:59 +00:00
ed80a13bb4
Add a driver for the SDIO/MMC host found on the Amlogic Meson SoCs. This is an MMC controller which provides an interface between the application processor and various memory cards. It supports the SD specification v2.0 and the eMMC specification v4.41. The controller provides an internal "mux" which allows connecting up to three MMC devices to it. Only one device can be used at a time though since the registers are shared across all devices. The driver takes care of synchronizing access (similar to the dw_mmc driver). The maximum supported bus-width is 4-bits. Amlogic's GPL kernel sources call the corresponding driver "aml_sdio" to differentiate it from the other MMC controller in (at least the Meson8 and Meson8b) the SoCs (they call the other drivers aml_sdhc and aml_sdhc_m8, which seem to support a bus-width of up to 8-bits). This means that there are three different MMC host controller IP blocks from Amlogic (each of them with completely own register layout and features): - "SDIO": 1 and 4 bit bus width, support for high-speed modes up to UHS-I SDR50, part of Meson6, Meson8 and Meson8b (the driver from this patch targets this controller) - "SDHC": 1, 4 and 8 bit bus width, compatible with standard iNAND interface, support for speeds up to HS200 and MMC spec up to version 4.5x, part of Meson8 and Meson8b SoCs (there is no mainline driver for this controller yet) - "SDEMMC": 1, 4 and 8 bit bus width, support for speeds up to HS400 and MMC spec up to version 5.0, part of the Meson GX (64-bit) SoCs (supported by the meson-gx MMC host driver) Signed-off-by: Carlo Caione <carlo@endlessm.com> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
101 lines
3.9 KiB
Makefile
101 lines
3.9 KiB
Makefile
#
|
|
# Makefile for MMC/SD host controller drivers
|
|
#
|
|
|
|
obj-$(CONFIG_MMC_ARMMMCI) += armmmci.o
|
|
armmmci-y := mmci.o
|
|
armmmci-$(CONFIG_MMC_QCOM_DML) += mmci_qcom_dml.o
|
|
obj-$(CONFIG_MMC_PXA) += pxamci.o
|
|
obj-$(CONFIG_MMC_MXC) += mxcmmc.o
|
|
obj-$(CONFIG_MMC_MXS) += mxs-mmc.o
|
|
obj-$(CONFIG_MMC_SDHCI) += sdhci.o
|
|
obj-$(CONFIG_MMC_SDHCI_PCI) += sdhci-pci.o
|
|
sdhci-pci-y += sdhci-pci-core.o sdhci-pci-o2micro.o
|
|
obj-$(subst m,y,$(CONFIG_MMC_SDHCI_PCI)) += sdhci-pci-data.o
|
|
obj-$(CONFIG_MMC_SDHCI_ACPI) += sdhci-acpi.o
|
|
obj-$(CONFIG_MMC_SDHCI_PXAV3) += sdhci-pxav3.o
|
|
obj-$(CONFIG_MMC_SDHCI_PXAV2) += sdhci-pxav2.o
|
|
obj-$(CONFIG_MMC_SDHCI_S3C) += sdhci-s3c.o
|
|
obj-$(CONFIG_MMC_SDHCI_SIRF) += sdhci-sirf.o
|
|
obj-$(CONFIG_MMC_SDHCI_F_SDH30) += sdhci_f_sdh30.o
|
|
obj-$(CONFIG_MMC_SDHCI_SPEAR) += sdhci-spear.o
|
|
obj-$(CONFIG_MMC_WBSD) += wbsd.o
|
|
obj-$(CONFIG_MMC_AU1X) += au1xmmc.o
|
|
obj-$(CONFIG_MMC_MTK) += mtk-sd.o
|
|
obj-$(CONFIG_MMC_OMAP) += omap.o
|
|
obj-$(CONFIG_MMC_OMAP_HS) += omap_hsmmc.o
|
|
obj-$(CONFIG_MMC_ATMELMCI) += atmel-mci.o
|
|
obj-$(CONFIG_MMC_TIFM_SD) += tifm_sd.o
|
|
obj-$(CONFIG_MMC_MVSDIO) += mvsdio.o
|
|
obj-$(CONFIG_MMC_DAVINCI) += davinci_mmc.o
|
|
obj-$(CONFIG_MMC_GOLDFISH) += android-goldfish.o
|
|
obj-$(CONFIG_MMC_SPI) += mmc_spi.o
|
|
ifeq ($(CONFIG_OF),y)
|
|
obj-$(CONFIG_MMC_SPI) += of_mmc_spi.o
|
|
endif
|
|
obj-$(CONFIG_MMC_S3C) += s3cmci.o
|
|
obj-$(CONFIG_MMC_SDRICOH_CS) += sdricoh_cs.o
|
|
obj-$(CONFIG_MMC_TMIO) += tmio_mmc.o
|
|
obj-$(CONFIG_MMC_TMIO_CORE) += tmio_mmc_core.o
|
|
obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_core.o
|
|
ifeq ($(subst m,y,$(CONFIG_MMC_SDHI_SYS_DMAC)),y)
|
|
obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_sys_dmac.o
|
|
endif
|
|
ifeq ($(subst m,y,$(CONFIG_MMC_SDHI_INTERNAL_DMAC)),y)
|
|
obj-$(CONFIG_MMC_SDHI) += renesas_sdhi_internal_dmac.o
|
|
endif
|
|
obj-$(CONFIG_MMC_CB710) += cb710-mmc.o
|
|
obj-$(CONFIG_MMC_VIA_SDMMC) += via-sdmmc.o
|
|
obj-$(CONFIG_SDH_BFIN) += bfin_sdh.o
|
|
octeon-mmc-objs := cavium.o cavium-octeon.o
|
|
obj-$(CONFIG_MMC_CAVIUM_OCTEON) += octeon-mmc.o
|
|
thunderx-mmc-objs := cavium.o cavium-thunderx.o
|
|
obj-$(CONFIG_MMC_CAVIUM_THUNDERX) += thunderx-mmc.o
|
|
obj-$(CONFIG_MMC_DW) += dw_mmc.o
|
|
obj-$(CONFIG_MMC_DW_PLTFM) += dw_mmc-pltfm.o
|
|
obj-$(CONFIG_MMC_DW_EXYNOS) += dw_mmc-exynos.o
|
|
obj-$(CONFIG_MMC_DW_K3) += dw_mmc-k3.o
|
|
obj-$(CONFIG_MMC_DW_PCI) += dw_mmc-pci.o
|
|
obj-$(CONFIG_MMC_DW_ROCKCHIP) += dw_mmc-rockchip.o
|
|
obj-$(CONFIG_MMC_DW_ZX) += dw_mmc-zx.o
|
|
obj-$(CONFIG_MMC_SH_MMCIF) += sh_mmcif.o
|
|
obj-$(CONFIG_MMC_JZ4740) += jz4740_mmc.o
|
|
obj-$(CONFIG_MMC_VUB300) += vub300.o
|
|
obj-$(CONFIG_MMC_USHC) += ushc.o
|
|
obj-$(CONFIG_MMC_WMT) += wmt-sdmmc.o
|
|
obj-$(CONFIG_MMC_MESON_GX) += meson-gx-mmc.o
|
|
obj-$(CONFIG_MMC_MESON_MX_SDIO) += meson-mx-sdio.o
|
|
obj-$(CONFIG_MMC_MOXART) += moxart-mmc.o
|
|
obj-$(CONFIG_MMC_SUNXI) += sunxi-mmc.o
|
|
obj-$(CONFIG_MMC_USDHI6ROL0) += usdhi6rol0.o
|
|
obj-$(CONFIG_MMC_TOSHIBA_PCI) += toshsd.o
|
|
obj-$(CONFIG_MMC_BCM2835) += bcm2835.o
|
|
|
|
obj-$(CONFIG_MMC_REALTEK_PCI) += rtsx_pci_sdmmc.o
|
|
obj-$(CONFIG_MMC_REALTEK_USB) += rtsx_usb_sdmmc.o
|
|
|
|
obj-$(CONFIG_MMC_SDHCI_PLTFM) += sdhci-pltfm.o
|
|
obj-$(CONFIG_MMC_SDHCI_CADENCE) += sdhci-cadence.o
|
|
obj-$(CONFIG_MMC_SDHCI_CNS3XXX) += sdhci-cns3xxx.o
|
|
obj-$(CONFIG_MMC_SDHCI_ESDHC_IMX) += sdhci-esdhc-imx.o
|
|
obj-$(CONFIG_MMC_SDHCI_DOVE) += sdhci-dove.o
|
|
obj-$(CONFIG_MMC_SDHCI_TEGRA) += sdhci-tegra.o
|
|
obj-$(CONFIG_MMC_SDHCI_OF_ARASAN) += sdhci-of-arasan.o
|
|
obj-$(CONFIG_MMC_SDHCI_OF_AT91) += sdhci-of-at91.o
|
|
obj-$(CONFIG_MMC_SDHCI_OF_ESDHC) += sdhci-of-esdhc.o
|
|
obj-$(CONFIG_MMC_SDHCI_OF_HLWD) += sdhci-of-hlwd.o
|
|
obj-$(CONFIG_MMC_SDHCI_BCM_KONA) += sdhci-bcm-kona.o
|
|
obj-$(CONFIG_MMC_SDHCI_IPROC) += sdhci-iproc.o
|
|
obj-$(CONFIG_MMC_SDHCI_MSM) += sdhci-msm.o
|
|
obj-$(CONFIG_MMC_SDHCI_ST) += sdhci-st.o
|
|
obj-$(CONFIG_MMC_SDHCI_MICROCHIP_PIC32) += sdhci-pic32.o
|
|
obj-$(CONFIG_MMC_SDHCI_BRCMSTB) += sdhci-brcmstb.o
|
|
obj-$(CONFIG_MMC_SDHCI_OMAP) += sdhci-omap.o
|
|
|
|
ifeq ($(CONFIG_CB710_DEBUG),y)
|
|
CFLAGS-cb710-mmc += -DDEBUG
|
|
endif
|
|
|
|
obj-$(CONFIG_MMC_SDHCI_XENON) += sdhci-xenon-driver.o
|
|
sdhci-xenon-driver-y += sdhci-xenon.o sdhci-xenon-phy.o
|