summaryrefslogtreecommitdiff
path: root/drivers/mmc/mxcmmc.c
diff options
context:
space:
mode:
authorHelmut Raiger <helmut.raiger@hale.at>2012-01-11 03:59:22 +0000
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2012-02-12 10:11:26 +0100
commitfa47a28661719ec73479c96b12823fd4e7373314 (patch)
treec04bb76672f1973f83a54467f35ed893d3066d3c /drivers/mmc/mxcmmc.c
parent2af81e2735bb50a679dd84d54e821b1b2f1c56e3 (diff)
downloadu-boot-imx-fa47a28661719ec73479c96b12823fd4e7373314.zip
u-boot-imx-fa47a28661719ec73479c96b12823fd4e7373314.tar.gz
u-boot-imx-fa47a28661719ec73479c96b12823fd4e7373314.tar.bz2
mmc: access mxcmmc from mx31 boards
This patch modifies mxcmmc.c to be used not only by i.MX27 but also by i.MX31 boards. Both use the same SD controller, but have different clock set-ups. The i.MX27 imx_get_XXXclock functions are made static to generic.c and a public mxc_get_clock() function is provided. Pins, base address and prototypes for an i.MX31 specific board_init_mmc() are provided. Some of the i.MX27 clock getters are unused and marked as such to avoid warnings (./MAKEALL -s mx27), but the code was left in for future use. Signed-off-by: Helmut Raiger <helmut.raiger@hale.at> Acked-by: Stefano Babic <sbabic@denx.de>
Diffstat (limited to 'drivers/mmc/mxcmmc.c')
-rw-r--r--drivers/mmc/mxcmmc.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/mmc/mxcmmc.c b/drivers/mmc/mxcmmc.c
index 8afb221..d58c18b 100644
--- a/drivers/mmc/mxcmmc.c
+++ b/drivers/mmc/mxcmmc.c
@@ -25,9 +25,7 @@
#include <mmc.h>
#include <asm/errno.h>
#include <asm/io.h>
-#ifdef CONFIG_MX27
#include <asm/arch/clock.h>
-#endif
#define DRIVER_NAME "mxc-mmc"
@@ -422,7 +420,7 @@ static void mxcmci_set_clk_rate(struct mxcmci_host *host, unsigned int clk_ios)
{
unsigned int divider;
int prescaler = 0;
- unsigned long clk_in = imx_get_perclk2();
+ unsigned long clk_in = mxc_get_clock(MXC_ESDHC_CLK);
while (prescaler <= 0x800) {
for (divider = 1; divider <= 0xF; divider++) {
@@ -509,8 +507,8 @@ static int mxcmci_initialize(bd_t *bis)
mmc->voltages = MMC_VDD_32_33 | MMC_VDD_33_34;
- mmc->f_min = imx_get_perclk2() >> 7;
- mmc->f_max = imx_get_perclk2() >> 1;
+ mmc->f_min = mxc_get_clock(MXC_ESDHC_CLK) >> 7;
+ mmc->f_max = mxc_get_clock(MXC_ESDHC_CLK) >> 1;
mmc->b_max = 0;