1 From cb4d53ad84e809a9d6d4354db0e140803cff27a2 Mon Sep 17 00:00:00 2001
2 From: Terry Lv <r65388@freescale.com>
3 Date: Tue, 29 Dec 2009 11:18:46 +0800
4 Subject: [PATCH] ENGR00119706: Add esdhcv1 support.
6 Add a new config CONFIG_IMX_ESDHC_V1 for v1 support.
8 Signed-off-by: Terry Lv <r65388@freescale.com>
10 drivers/mmc/Makefile | 1 -
11 drivers/mmc/imx_esdhc.c | 17 +++++++++--------
12 include/configs/mx25_3stack.h | 1 +
13 3 files changed, 10 insertions(+), 9 deletions(-)
15 diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile
16 index 15c07ca..2902ba5 100644
17 --- a/drivers/mmc/Makefile
18 +++ b/drivers/mmc/Makefile
19 @@ -32,7 +32,6 @@ COBJS-$(CONFIG_OMAP3_MMC) += omap3_mmc.o
20 COBJS-$(CONFIG_FSL_ESDHC) += fsl_esdhc.o
21 COBJS-$(CONFIG_MXC_MMC) += mxcmmc.o
22 COBJS-$(CONFIG_PXA_MMC) += pxa_mmc.o
23 -COBJS-$(CONFIG_FSL_MMC) += fsl_mmc.o
24 COBJS-$(CONFIG_FSL_MMC) += fsl_esdhc.o
25 COBJS-$(CONFIG_IMX_MMC) += imx_esdhc.o
27 diff --git a/drivers/mmc/imx_esdhc.c b/drivers/mmc/imx_esdhc.c
28 index 025be87..39a0b49 100644
29 --- a/drivers/mmc/imx_esdhc.c
30 +++ b/drivers/mmc/imx_esdhc.c
31 @@ -315,19 +315,17 @@ void set_sysctl(struct mmc *mmc, uint clock)
33 clk = (pre_div << 8) | (div << 4);
36 - tmp = readl(®s->sysctl) | (SYSCTL_HCKEN | SYSCTL_IPGEN);
38 +#ifndef CONFIG_IMX_ESDHC_V1
39 tmp = readl(®s->sysctl) & (~SYSCTL_SDCLKEN);
41 writel(tmp, ®s->sysctl);
44 tmp = (readl(®s->sysctl) & (~SYSCTL_CLOCK_MASK)) | clk;
45 writel(tmp, ®s->sysctl);
50 +#ifdef CONFIG_IMX_ESDHC_V1
51 tmp = readl(®s->sysctl) | SYSCTL_PEREN;
52 writel(tmp, ®s->sysctl);
54 @@ -372,6 +370,11 @@ static int esdhc_init(struct mmc *mmc)
55 while (readl(®s->sysctl) & SYSCTL_RSTA)
58 +#ifdef CONFIG_IMX_ESDHC_V1
59 + tmp = readl(®s->sysctl) | (SYSCTL_HCKEN | SYSCTL_IPGEN);
60 + writel(tmp, ®s->sysctl);
63 /* Set the initial clock speed */
64 set_sysctl(mmc, 400000);
66 @@ -389,9 +392,7 @@ static int esdhc_init(struct mmc *mmc)
71 - set_sysctl(mmc, 400000);
73 +#ifndef CONFIG_IMX_ESDHC_V1
74 tmp = readl(®s->sysctl) | SYSCTL_INITA;
75 writel(tmp, ®s->sysctl);
77 diff --git a/include/configs/mx25_3stack.h b/include/configs/mx25_3stack.h
78 index e1a35f6..b0401cd 100644
79 --- a/include/configs/mx25_3stack.h
80 +++ b/include/configs/mx25_3stack.h
83 #define CONFIG_GENERIC_MMC
84 #define CONFIG_IMX_MMC
85 + #define CONFIG_IMX_ESDHC_V1
86 #define CONFIG_DOS_PARTITION 1
87 #define CONFIG_CMD_FAT 1