m68k: ColdFire mcf5441x, add eSDHC support
authorAngelo Dureghello <angelo@sysam.it>
Thu, 25 Jan 2018 21:42:52 +0000 (22:42 +0100)
committerAngelo Dureghello <angelo@sysam.it>
Sat, 15 Sep 2018 22:01:13 +0000 (00:01 +0200)
This patch adds mcf5441x eSDHC support for the mcf5441x family.

Signed-off-by: Angelo Dureghello <angelo@sysam.it>
arch/m68k/cpu/mcf5445x/cpu_init.c
arch/m68k/cpu/mcf5445x/speed.c
arch/m68k/include/asm/global_data.h

index 0b86020204cd779cf30ba25a9457e9207aa4ff3a..7632d9262c4ad02678498338d47457a10c1bdda4 100644 (file)
@@ -173,6 +173,15 @@ void cpu_init_f(void)
 
        /* Lowest slew rate for UART0,1,2 */
        out_8(&gpio->srcr_uart, 0x00);
+
+#ifdef CONFIG_FSL_ESDHC
+       /* eSDHC pin as faster speed */
+       out_8(&gpio->srcr_sdhc, 0x03);
+
+       /* All esdhc pins as SD */
+       out_8(&gpio->par_sdhch, 0xff);
+       out_8(&gpio->par_sdhcl, 0xff);
+#endif
 #endif         /* CONFIG_MCF5441x */
 
 #ifdef CONFIG_MCF5445x
@@ -534,4 +543,5 @@ void cfspi_release_bus(uint bus, uint cs)
                clrbits_8(&gpio->par_dspiow, GPIO_PAR_DSPIOW_DSPI0PSC1);
 #endif
 }
+
 #endif
index 5214730a0fea09641b19ca73c1e85608ef99c06b..e15e32ebde6a1bd0b8011b7c80027f911b1ebcc4 100644 (file)
@@ -120,6 +120,8 @@ void setup_5441x_clocks(void)
        temp = ((pdr & PLL_DR_OUTDIV2_BITS) >> 5) + 1;
        gd->bus_clk = vco / temp;       /* bus clock */
 
+       temp = ((pdr & PLL_DR_OUTDIV3_BITS) >> 10) + 1;
+       gd->arch.sdhc_clk = vco / temp;
 }
 #endif
 
index aa0be8191ae98d95d4a71a0be81d69f5e54b9e5d..188055e9d3142c5cccd308bc0aa1c4d4ce21b8f9 100644 (file)
@@ -18,6 +18,9 @@ struct arch_global_data {
        unsigned long vco_clk;
        unsigned long flb_clk;
 #endif
+#ifdef CONFIG_MCF5441x
+       unsigned long sdhc_clk;
+#endif
 };
 
 #include <asm-generic/global_data.h>