aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mmc/host/sdhci-iproc.c
diff options
context:
space:
mode:
authorStefan Wahren <stefan.wahren@i2se.com>2016-01-27 22:25:41 +0000
committerUlf Hansson <ulf.hansson@linaro.org>2016-02-29 11:02:54 +0100
commit77cb7d3a4d9b790d929d425f623f48f72fd496c1 (patch)
treecc01088b578ea5c2bbd41f4b248cf265f1f48609 /drivers/mmc/host/sdhci-iproc.c
parentmmc: sdhci-iproc: define MMC caps in platform data (diff)
downloadlinux-dev-77cb7d3a4d9b790d929d425f623f48f72fd496c1.tar.xz
linux-dev-77cb7d3a4d9b790d929d425f623f48f72fd496c1.zip
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: Scott Branden <sbranden@broadcom.com> Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Acked-by: Eric Anholt <eric@anholt.net> Acked-by: Scott Branden <sbranden@broadcom.com> Acked-by: Stephen Warren <swarren@wwwdotorg.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers/mmc/host/sdhci-iproc.c')
-rw-r--r--drivers/mmc/host/sdhci-iproc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c
index cdc6c4a0af84..871c92c03a77 100644
--- a/drivers/mmc/host/sdhci-iproc.c
+++ b/drivers/mmc/host/sdhci-iproc.c
@@ -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 },
{ }
};