]> git.sur5r.net Git - u-boot/commitdiff
mx35: Fix eSDHC clocks
authorBenoît Thébaudeau <benoit.thebaudeau@advansee.com>
Thu, 27 Sep 2012 10:26:02 +0000 (10:26 +0000)
committerStefano Babic <sbabic@denx.de>
Tue, 16 Oct 2012 10:35:10 +0000 (12:35 +0200)
Each eSDHC instance has a dedicated clock.

gd->sdhc_clk must also be set accordingly. This is good for the case only a
single SDHC instance is used (initialization made with fsl_esdhc_mmc_init()). A
future patch will fix the multi-instance use case (initialization made directly
with fsl_esdhc_initialize()).

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Cc: Stefano Babic <sbabic@denx.de>
Cc: Eric Bénard <eric@eukrea.com>
Cc: Otavio Salvador <otavio@ossystems.com.br>
arch/arm/cpu/arm1136/mx35/generic.c
arch/arm/include/asm/arch-mx35/clock.h

index 7dc1a8ec58482fe03d46935d67593d83d06e8310..41e9639d9c4cd92cfcaded97a12c5d448f75a7dd 100644 (file)
@@ -361,8 +361,12 @@ unsigned int mxc_get_clock(enum mxc_clock clk)
                return get_ipg_per_clk();
        case MXC_UART_CLK:
                return imx_get_uartclk();
-       case MXC_ESDHC_CLK:
+       case MXC_ESDHC1_CLK:
                return mxc_get_peri_clock(ESDHC1_CLK);
+       case MXC_ESDHC2_CLK:
+               return mxc_get_peri_clock(ESDHC2_CLK);
+       case MXC_ESDHC3_CLK:
+               return mxc_get_peri_clock(ESDHC3_CLK);
        case MXC_USB_CLK:
                return mxc_get_main_clock(USB_CLK);
        case MXC_FEC_CLK:
@@ -472,7 +476,13 @@ int cpu_mmc_init(bd_t *bis)
 int get_clocks(void)
 {
 #ifdef CONFIG_FSL_ESDHC
-       gd->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK);
+#if CONFIG_SYS_FSL_ESDHC_ADDR == MMC_SDHC2_BASE_ADDR
+       gd->sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
+#elif CONFIG_SYS_FSL_ESDHC_ADDR == MMC_SDHC3_BASE_ADDR
+       gd->sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
+#else
+       gd->sdhc_clk = mxc_get_clock(MXC_ESDHC1_CLK);
+#endif
 #endif
        return 0;
 }
index 2eff08d1d49a681aed726f7a15e0987f39a7d78f..00679ef6a91a47a3a1e761bd18fd9ac13643644a 100644 (file)
@@ -44,7 +44,9 @@ enum mxc_clock {
        MXC_IPG_CLK,
        MXC_IPG_PERCLK,
        MXC_UART_CLK,
-       MXC_ESDHC_CLK,
+       MXC_ESDHC1_CLK,
+       MXC_ESDHC2_CLK,
+       MXC_ESDHC3_CLK,
        MXC_USB_CLK,
        MXC_CSPI_CLK,
        MXC_FEC_CLK,