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>
This commit is contained in:
parent
b17b4ab8ce
commit
77cb7d3a4d
|
@ -318,15 +318,15 @@ config MMC_SDHCI_F_SDH30
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
config MMC_SDHCI_IPROC
|
config MMC_SDHCI_IPROC
|
||||||
tristate "SDHCI platform support for the iProc SD/MMC Controller"
|
tristate "SDHCI support for the BCM2835 & iProc SD/MMC Controller"
|
||||||
depends on ARCH_BCM_IPROC || COMPILE_TEST
|
depends on ARCH_BCM2835 || ARCH_BCM_IPROC || COMPILE_TEST
|
||||||
depends on MMC_SDHCI_PLTFM
|
depends on MMC_SDHCI_PLTFM
|
||||||
default ARCH_BCM_IPROC
|
default ARCH_BCM_IPROC
|
||||||
select MMC_SDHCI_IO_ACCESSORS
|
select MMC_SDHCI_IO_ACCESSORS
|
||||||
help
|
help
|
||||||
This selects the iProc SD/MMC controller.
|
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.
|
say Y or M here.
|
||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
|
@ -169,7 +169,22 @@ static const struct sdhci_iproc_data iproc_data = {
|
||||||
.mmc_caps = MMC_CAP_1_8V_DDR,
|
.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[] = {
|
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 },
|
{ .compatible = "brcm,sdhci-iproc-cygnus", .data = &iproc_data },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue