Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 77cb7d3a authored by Stefan Wahren's avatar Stefan Wahren Committed by Ulf Hansson
Browse files

mmc: sdhci-iproc: add bcm2835 support



Scott Branden from Broadcom said that the BCM2835 eMMC IP core is
very similar to IPROC and share most of the quirks. So use this driver
instead of separate one.

The sdhci-iproc contains a better workaround for the clock domain
crossing problem which doesn't need any delays. This results in a
better write performance.

Btw we get the rid of the SDHCI_CAPABILITIES hack in the sdhci_readl
function.

Suggested-by: default avatarScott Branden <sbranden@broadcom.com>
Signed-off-by: default avatarStefan Wahren <stefan.wahren@i2se.com>
Acked-by: default avatarEric Anholt <eric@anholt.net>
Acked-by: default avatarScott Branden <sbranden@broadcom.com>
Acked-by: default avatarStephen Warren <swarren@wwwdotorg.org>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent b17b4ab8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -318,15 +318,15 @@ config MMC_SDHCI_F_SDH30
	  If unsure, say N.

config MMC_SDHCI_IPROC
	tristate "SDHCI platform support for the iProc SD/MMC Controller"
	depends on ARCH_BCM_IPROC || COMPILE_TEST
	tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
	depends on ARCH_BCM2835 || ARCH_BCM_IPROC || COMPILE_TEST
	depends on MMC_SDHCI_PLTFM
	default ARCH_BCM_IPROC
	select MMC_SDHCI_IO_ACCESSORS
	help
	  This selects the iProc SD/MMC controller.

	  If you have an IPROC platform with SD or MMC devices,
	  If you have a BCM2835 or IPROC platform with SD or MMC devices,
	  say Y or M here.

	  If unsure, say N.
+15 −0
Original line number Diff line number Diff line
@@ -169,7 +169,22 @@ static const struct sdhci_iproc_data iproc_data = {
	.mmc_caps = MMC_CAP_1_8V_DDR,
};

static const struct sdhci_pltfm_data sdhci_bcm2835_pltfm_data = {
	.quirks = SDHCI_QUIRK_BROKEN_CARD_DETECTION |
		  SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
		  SDHCI_QUIRK_MISSING_CAPS,
	.ops = &sdhci_iproc_ops,
};

static const struct sdhci_iproc_data bcm2835_data = {
	.pdata = &sdhci_bcm2835_pltfm_data,
	.caps = SDHCI_CAN_VDD_330,
	.caps1 = 0x00000000,
	.mmc_caps = 0x00000000,
};

static const struct of_device_id sdhci_iproc_of_match[] = {
	{ .compatible = "brcm,bcm2835-sdhci", .data = &bcm2835_data },
	{ .compatible = "brcm,sdhci-iproc-cygnus", .data = &iproc_data },
	{ }
};