mxs: mmc: mx23_olinuxino: Add MMC support
authorMarek Vasut <marex@denx.de>
Tue, 22 Jan 2013 15:01:05 +0000 (15:01 +0000)
committerStefano Babic <sbabic@denx.de>
Mon, 28 Jan 2013 10:43:01 +0000 (11:43 +0100)
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>
board/olimex/mx23_olinuxino/mx23_olinuxino.c
board/olimex/mx23_olinuxino/spl_boot.c
include/configs/mx23_olinuxino.h

index 2fcad26..6a6053b 100644 (file)
  */
 
 #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 */
index 6cf669f..7def8bc 100644 (file)
@@ -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)
index e5e718c..303a9e5 100644 (file)
 #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
 #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