]> git.kernelconcepts.de Git - karo-tx-uboot.git/blob - patches/0074-ENGR00119706-Add-esdhcv1-support.patch
imported Ka-Ro specific additions to U-Boot 2009.08 for TX28
[karo-tx-uboot.git] / patches / 0074-ENGR00119706-Add-esdhcv1-support.patch
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.
5
6 Add a new config CONFIG_IMX_ESDHC_V1 for v1 support.
7
8 Signed-off-by: Terry Lv <r65388@freescale.com>
9 ---
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(-)
14
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
26  
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)
32  
33         clk = (pre_div << 8) | (div << 4);
34  
35 -#ifdef CONFIG_MX25
36 -       tmp = readl(&regs->sysctl) | (SYSCTL_HCKEN | SYSCTL_IPGEN);
37 -#else
38 +#ifndef CONFIG_IMX_ESDHC_V1
39         tmp = readl(&regs->sysctl) & (~SYSCTL_SDCLKEN);
40 -#endif
41         writel(tmp, &regs->sysctl);
42 +#endif
43  
44         tmp = (readl(&regs->sysctl) & (~SYSCTL_CLOCK_MASK)) | clk;
45         writel(tmp, &regs->sysctl);
46  
47         mdelay(100);
48  
49 -#ifdef CONFIG_MX25
50 +#ifdef CONFIG_IMX_ESDHC_V1
51         tmp = readl(&regs->sysctl) | SYSCTL_PEREN;
52         writel(tmp, &regs->sysctl);
53  #else
54 @@ -372,6 +370,11 @@ static int esdhc_init(struct mmc *mmc)
55         while (readl(&regs->sysctl) & SYSCTL_RSTA)
56             mdelay(1);
57  
58 +#ifdef CONFIG_IMX_ESDHC_V1
59 +       tmp = readl(&regs->sysctl) | (SYSCTL_HCKEN | SYSCTL_IPGEN);
60 +       writel(tmp, &regs->sysctl);
61 +#endif
62 +
63         /* Set the initial clock speed */
64         set_sysctl(mmc, 400000);
65  
66 @@ -389,9 +392,7 @@ static int esdhc_init(struct mmc *mmc)
67         }
68         */
69  
70 -#ifndef CONFIG_MX25
71 -       set_sysctl(mmc, 400000);
72 -
73 +#ifndef CONFIG_IMX_ESDHC_V1
74         tmp = readl(&regs->sysctl) | SYSCTL_INITA;
75         writel(tmp, &regs->sysctl);
76  
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
81 @@ -110,6 +110,7 @@
82         #define CONFIG_MMC                              1
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
88  #endif
89 -- 
90 1.5.4.4
91