From ba816f983f5dac44d9f4461906b9bc0101237ac8 Mon Sep 17 00:00:00 2001 From: Terry Lv Date: Thu, 29 Oct 2009 19:19:00 +0800 Subject: u-boot v2009.08 sd/mmc support. Signed-off-by: Terry Lv --- board/freescale/mx25_3stack/config.mk | 2 ++ board/freescale/mx25_3stack/mx25_3stack.c | 23 ++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) (limited to 'board/freescale/mx25_3stack') diff --git a/board/freescale/mx25_3stack/config.mk b/board/freescale/mx25_3stack/config.mk index 4c401e7..083613a 100644 --- a/board/freescale/mx25_3stack/config.mk +++ b/board/freescale/mx25_3stack/config.mk @@ -1 +1,3 @@ +LDSCRIPT := $(SRCTREE)/board/$(VENDOR)/$(BOARD)/u-boot.lds + TEXT_BASE = 0x83F00000 diff --git a/board/freescale/mx25_3stack/mx25_3stack.c b/board/freescale/mx25_3stack/mx25_3stack.c index b33eaa1..f79b1b9 100644 --- a/board/freescale/mx25_3stack/mx25_3stack.c +++ b/board/freescale/mx25_3stack/mx25_3stack.c @@ -35,7 +35,6 @@ DECLARE_GLOBAL_DATA_PTR; static u32 system_rev; -volatile u32 *esdhc_base_pointer; u32 get_board_rev(void) { @@ -67,9 +66,11 @@ int dram_init(void) return 0; } -#ifdef CONFIG_FSL_MMC +#ifdef CONFIG_CMD_MMC -int sdhc_init(void) +u32 *imx_esdhc_base_addr; + +int esdhc_gpio_init(void) { u32 interface_esdhc = 0, val = 0; @@ -77,7 +78,7 @@ int sdhc_init(void) switch (interface_esdhc) { case 0: - esdhc_base_pointer = (volatile u32 *)MMC_SDHC1_BASE; + imx_esdhc_base_addr = (u32 *)MMC_SDHC1_BASE; /* Pins */ writel(0x10, IOMUXC_BASE + 0x190); /* SD1_CMD */ writel(0x10, IOMUXC_BASE + 0x194); /* SD1_CLK */ @@ -114,7 +115,7 @@ int sdhc_init(void) writel(val, GPIO1_BASE + GPIO_GDIR); break; case 1: - esdhc_base_pointer = (volatile u32 *)MMC_SDHC2_BASE; + imx_esdhc_base_addr = (u32 *)MMC_SDHC2_BASE; /* Pins */ writel(0x16, IOMUXC_BASE + 0x0e8); /* LD8 (SD1_CMD) */ writel(0x16, IOMUXC_BASE + 0x0ec); /* LD9 (SD1_CLK) */ @@ -144,6 +145,14 @@ int sdhc_init(void) } return 0; } + +int board_mmc_init(void) +{ + if (!esdhc_gpio_init()) + return fsl_esdhc_mmc_init(gd->bd); + else + return -1; +} #endif int board_init(void) @@ -264,8 +273,8 @@ int checkboard(void) int board_eth_init(bd_t *bis) { int rc = -ENODEV; -#if defined(CONFIG_DRIVER_SMC911X) - rc = smc911x_initialize(bis); +#if defined(CONFIG_SMC911X) + rc = smc911x_initialize(0, CONFIG_SMC911X_BASE); #endif return rc; } -- cgit v1.1