summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorRyan QIAN <b32804@freescale.com>2012-06-21 14:40:40 +0800
committerJason Liu <r64343@freescale.com>2012-07-20 13:38:58 +0800
commitd95ecbd625a9b9d1cd98e49a6d065eba26e99692 (patch)
treea242218f77c700236693b790694d9e1462da0ae0 /drivers/mmc
parenta4c1285dfd07bd482fa538c628b056850ea8bf72 (diff)
ENGR00213944-02: mmc: sdhci: [MX6] support SD v3.0 memory cards.
- Add variable pad speed setting per SD clk freq. - Add SD3.0 support on SD1, SD2, and SD3. - Enhance drive strength on SD pad to improve its compatibility. - change the definition of pad speed changing interface - combine pad speed setting for different SD host controllers into one function. Signed-off-by: Ryan QIAN <b32804@freescale.com> Acked-by: Lily Zhang
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci-esdhc.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci-esdhc.h b/drivers/mmc/host/sdhci-esdhc.h
index c64cdcdca4ba..82e045517326 100644
--- a/drivers/mmc/host/sdhci-esdhc.h
+++ b/drivers/mmc/host/sdhci-esdhc.h
@@ -13,6 +13,7 @@
#ifndef _DRIVERS_MMC_SDHCI_ESDHC_H
#define _DRIVERS_MMC_SDHCI_ESDHC_H
+#include <linux/platform_device.h>
/*
* Ops and quirks for the Freescale eSDHC controller.
@@ -52,6 +53,7 @@ static inline void esdhc_set_clock(struct sdhci_host *host, unsigned int clock)
u32 temp;
struct esdhc_platform_data *boarddata;
int ddr_mode = 0;
+ struct platform_device *pdev = to_platform_device(host->mmc->parent);
boarddata = host->mmc->parent->platform_data;
if (cpu_is_mx6q() || cpu_is_mx6dl()) {
@@ -94,8 +96,10 @@ static inline void esdhc_set_clock(struct sdhci_host *host, unsigned int clock)
* board needs to reconfig its pad for
* corresponding sd bus frequency
*/
- if (boarddata->platform_pad_change)
- boarddata->platform_pad_change(clock);
+ if (boarddata->platform_pad_change) {
+ BUG_ON(!pdev);
+ boarddata->platform_pad_change(pdev->id, clock);
+ }
out:
host->clock = clock;
}