diff options
author | Zhangfei Gao <zgao6@marvell.com> | 2010-08-20 14:02:36 -0400 |
---|---|---|
committer | Chris Ball <cjb@laptop.org> | 2010-10-23 09:11:14 -0400 |
commit | c4687d5f601be3f928b815b46964f7426c31aec7 (patch) | |
tree | b58c75fd2e7615f6e34637665633b55f02f2d171 /drivers/mmc | |
parent | 85105c53b0ce70a277160379f9d89309cefc0bfd (diff) |
mmc: SDHC 3.0: Base clock frequency change in spec 3.0
SDHC Spec 3.0: Capabilities Register bits[15-08] are Base Clock Frequency
1.0/2.0: Capabilities Register bits[13-08] are Base Clock Frequency
Signed-off-by: Zhangfei Gao <zgao6@marvell.com>
Cc: David Vrabel <david.vrabel@csr.com>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Michal Miroslaw <mirqus@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/host/sdhci.c | 9 | ||||
-rw-r--r-- | drivers/mmc/host/sdhci.h | 1 |
2 files changed, 8 insertions, 2 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 4432fec7467a..ac8b12b18fa4 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c | |||
@@ -1794,8 +1794,13 @@ int sdhci_add_host(struct sdhci_host *host) | |||
1794 | mmc_dev(host->mmc)->dma_mask = &host->dma_mask; | 1794 | mmc_dev(host->mmc)->dma_mask = &host->dma_mask; |
1795 | } | 1795 | } |
1796 | 1796 | ||
1797 | host->max_clk = | 1797 | if (host->version >= SDHCI_SPEC_300) |
1798 | (caps & SDHCI_CLOCK_BASE_MASK) >> SDHCI_CLOCK_BASE_SHIFT; | 1798 | host->max_clk = (caps & SDHCI_CLOCK_V3_BASE_MASK) |
1799 | >> SDHCI_CLOCK_BASE_SHIFT; | ||
1800 | else | ||
1801 | host->max_clk = (caps & SDHCI_CLOCK_BASE_MASK) | ||
1802 | >> SDHCI_CLOCK_BASE_SHIFT; | ||
1803 | |||
1799 | host->max_clk *= 1000000; | 1804 | host->max_clk *= 1000000; |
1800 | if (host->max_clk == 0 || host->quirks & | 1805 | if (host->max_clk == 0 || host->quirks & |
1801 | SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN) { | 1806 | SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN) { |
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h index 950d4fd90072..ae28a310a6a1 100644 --- a/drivers/mmc/host/sdhci.h +++ b/drivers/mmc/host/sdhci.h | |||
@@ -144,6 +144,7 @@ | |||
144 | #define SDHCI_TIMEOUT_CLK_SHIFT 0 | 144 | #define SDHCI_TIMEOUT_CLK_SHIFT 0 |
145 | #define SDHCI_TIMEOUT_CLK_UNIT 0x00000080 | 145 | #define SDHCI_TIMEOUT_CLK_UNIT 0x00000080 |
146 | #define SDHCI_CLOCK_BASE_MASK 0x00003F00 | 146 | #define SDHCI_CLOCK_BASE_MASK 0x00003F00 |
147 | #define SDHCI_CLOCK_V3_BASE_MASK 0x0000FF00 | ||
147 | #define SDHCI_CLOCK_BASE_SHIFT 8 | 148 | #define SDHCI_CLOCK_BASE_SHIFT 8 |
148 | #define SDHCI_MAX_BLOCK_MASK 0x00030000 | 149 | #define SDHCI_MAX_BLOCK_MASK 0x00030000 |
149 | #define SDHCI_MAX_BLOCK_SHIFT 16 | 150 | #define SDHCI_MAX_BLOCK_SHIFT 16 |