diff options
author | Ryan QIAN <b32804@freescale.com> | 2012-06-21 14:40:40 +0800 |
---|---|---|
committer | Jason Liu <r64343@freescale.com> | 2012-07-20 13:38:58 +0800 |
commit | d95ecbd625a9b9d1cd98e49a6d065eba26e99692 (patch) | |
tree | a242218f77c700236693b790694d9e1462da0ae0 /drivers/mmc | |
parent | a4c1285dfd07bd482fa538c628b056850ea8bf72 (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.h | 8 |
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; } |