From 77cb7d3a4d9b790d929d425f623f48f72fd496c1 Mon Sep 17 00:00:00 2001 From: Stefan Wahren Date: Wed, 27 Jan 2016 22:25:41 +0000 Subject: 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 Signed-off-by: Stefan Wahren Acked-by: Eric Anholt Acked-by: Scott Branden Acked-by: Stephen Warren Signed-off-by: Ulf Hansson --- drivers/mmc/host/sdhci-iproc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'drivers/mmc/host/sdhci-iproc.c') 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 }, { } }; -- cgit v1.2.3