summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2013-01-22 15:01:05 +0000
committerStefano Babic <sbabic@denx.de>2013-01-28 11:43:01 +0100
commit13b1ebdec649dbab0d0f8653e088f2df89c031e3 (patch)
tree5f2be3cd2138e9462b37318b6a3463a92ea19df3
parente5b380ac68c86ec8c579421658152b1a90828c17 (diff)
downloadu-boot-imx-13b1ebdec649dbab0d0f8653e088f2df89c031e3.zip
u-boot-imx-13b1ebdec649dbab0d0f8653e088f2df89c031e3.tar.gz
u-boot-imx-13b1ebdec649dbab0d0f8653e088f2df89c031e3.tar.bz2
mxs: mmc: mx23_olinuxino: Add MMC support
Add support for the MMC attached to SSP1. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Stefano Babic <sbabic@denx.de>
-rw-r--r--board/olimex/mx23_olinuxino/mx23_olinuxino.c22
-rw-r--r--board/olimex/mx23_olinuxino/spl_boot.c9
-rw-r--r--include/configs/mx23_olinuxino.h12
3 files changed, 42 insertions, 1 deletions
diff --git a/board/olimex/mx23_olinuxino/mx23_olinuxino.c b/board/olimex/mx23_olinuxino/mx23_olinuxino.c
index 2fcad26..6a6053b 100644
--- a/board/olimex/mx23_olinuxino/mx23_olinuxino.c
+++ b/board/olimex/mx23_olinuxino/mx23_olinuxino.c
@@ -23,7 +23,10 @@
*/
#include <common.h>
+#include <asm/io.h>
+#include <asm/arch/iomux-mx23.h>
#include <asm/arch/imx-regs.h>
+#include <asm/arch/clock.h>
#include <asm/arch/sys_proto.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -33,7 +36,12 @@ DECLARE_GLOBAL_DATA_PTR;
*/
int board_early_init_f(void)
{
- /* SSP clock init will come here soon. */
+ /* IO0 clock at 480MHz */
+ mxs_set_ioclk(MXC_IOCLK0, 480000);
+
+ /* SSP0 clock at 96MHz */
+ mxs_set_sspclk(MXC_SSPCLK0, 96000, 0);
+
return 0;
}
@@ -42,6 +50,18 @@ int dram_init(void)
return mxs_dram_init();
}
+#ifdef CONFIG_CMD_MMC
+static int mx23_olx_mmc_cd(int id)
+{
+ return 1; /* Card always present */
+}
+
+int board_mmc_init(bd_t *bis)
+{
+ return mxsmmc_initialize(bis, 0, NULL, mx23_olx_mmc_cd);
+}
+#endif
+
int board_init(void)
{
/* Adress of boot parameters */
diff --git a/board/olimex/mx23_olinuxino/spl_boot.c b/board/olimex/mx23_olinuxino/spl_boot.c
index 6cf669f..7def8bc 100644
--- a/board/olimex/mx23_olinuxino/spl_boot.c
+++ b/board/olimex/mx23_olinuxino/spl_boot.c
@@ -30,6 +30,7 @@
#include <asm/arch/sys_proto.h>
#define MUX_CONFIG_EMI (MXS_PAD_3V3 | MXS_PAD_16MA | MXS_PAD_PULLUP)
+#define MUX_CONFIG_SSP (MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
const iomux_cfg_t iomux_setup[] = {
/* DUART */
@@ -82,6 +83,14 @@ const iomux_cfg_t iomux_setup[] = {
MX23_PAD_EMI_CKE__EMI_CKE | MUX_CONFIG_EMI,
MX23_PAD_EMI_RASN__EMI_RASN | MUX_CONFIG_EMI,
MX23_PAD_EMI_WEN__EMI_WEN | MUX_CONFIG_EMI,
+
+ /* MMC 0 */
+ MX23_PAD_SSP1_CMD__SSP1_CMD | MUX_CONFIG_SSP,
+ MX23_PAD_SSP1_DATA0__SSP1_DATA0 | MUX_CONFIG_SSP,
+ MX23_PAD_SSP1_DATA1__SSP1_DATA1 | MUX_CONFIG_SSP,
+ MX23_PAD_SSP1_DATA2__SSP1_DATA2 | MUX_CONFIG_SSP,
+ MX23_PAD_SSP1_DATA3__SSP1_DATA3 | MUX_CONFIG_SSP,
+ MX23_PAD_SSP1_SCK__SSP1_SCK | MUX_CONFIG_SSP,
};
void board_init_ll(void)
diff --git a/include/configs/mx23_olinuxino.h b/include/configs/mx23_olinuxino.h
index e5e718c..303a9e5 100644
--- a/include/configs/mx23_olinuxino.h
+++ b/include/configs/mx23_olinuxino.h
@@ -53,8 +53,10 @@
#define CONFIG_DOS_PARTITION
#define CONFIG_CMD_CACHE
+#define CONFIG_CMD_EXT2
#define CONFIG_CMD_FAT
#define CONFIG_CMD_GPIO
+#define CONFIG_CMD_MMC
/*
* Memory configurations
@@ -110,6 +112,16 @@
#define CONFIG_BAUDRATE 115200 /* Default baud rate */
/*
+ * MMC Driver
+ */
+#ifdef CONFIG_CMD_MMC
+#define CONFIG_MMC
+#define CONFIG_BOUNCE_BUFFER
+#define CONFIG_GENERIC_MMC
+#define CONFIG_MXS_MMC
+#endif
+
+/*
* APBH DMA
*/
#define CONFIG_APBH_DMA