[U-Boot,6/6] mxs: mmc: mx23_olinuxino: Add MMC support

Submitted by Marek Vasut on Jan. 23, 2013, 1:01 a.m.

Details

Message ID 1358902865-20475-6-git-send-email-marex@denx.de
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Marek Vasut Jan. 23, 2013, 1:01 a.m.
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 |   22 +++++++++++++++++++++-
 board/olimex/mx23_olinuxino/spl_boot.c       |    9 +++++++++
 include/configs/mx23_olinuxino.h             |   12 ++++++++++++
 3 files changed, 42 insertions(+), 1 deletion(-)

Comments

Fabio Estevam Jan. 23, 2013, 1:23 a.m.
Hi Marek,

On Tue, Jan 22, 2013 at 11:01 PM, Marek Vasut <marex@denx.de> wrote:
> 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 |   22 +++++++++++++++++++++-
>  board/olimex/mx23_olinuxino/spl_boot.c       |    9 +++++++++
>  include/configs/mx23_olinuxino.h             |   12 ++++++++++++
>  3 files changed, 42 insertions(+), 1 deletion(-)

Good job, that's a nice series!

Can you also remove
#define	CONFIG_ENV_IS_NOWHERE

and put the env into mmc now that you have mmc working?

Thanks,

Fabio Estevam
Marek Vasut Jan. 23, 2013, 3:33 a.m.
Dear Fabio Estevam,

> Hi Marek,
> 
> On Tue, Jan 22, 2013 at 11:01 PM, Marek Vasut <marex@denx.de> wrote:
> > 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 |   22
> >  +++++++++++++++++++++- board/olimex/mx23_olinuxino/spl_boot.c       |  
> >   9 +++++++++
> >  include/configs/mx23_olinuxino.h             |   12 ++++++++++++
> >  3 files changed, 42 insertions(+), 1 deletion(-)
> 
> Good job, that's a nice series!
> 
> Can you also remove
> #define	CONFIG_ENV_IS_NOWHERE
> 
> and put the env into mmc now that you have mmc working?

Let's do it in a subsequent patch, I don't want to mix env patch with MMC 
addition patch. I guess there's no other place for env than MMC, eh. That sucks.

Fabio, do you feel like rolling out the env patch?

Best regards,
Marek Vasut
Fabio Estevam Jan. 23, 2013, 3:51 a.m.
On Wed, Jan 23, 2013 at 1:33 AM, Marek Vasut <marex@denx.de> wrote:

> Fabio, do you feel like rolling out the env patch?

Sure, I can send it after it reaches Stefano's tree.
Otavio Salvador Jan. 23, 2013, 12:24 p.m.
On Wed, Jan 23, 2013 at 1:51 AM, Fabio Estevam <festevam@gmail.com> wrote:
> On Wed, Jan 23, 2013 at 1:33 AM, Marek Vasut <marex@denx.de> wrote:
>
>> Fabio, do you feel like rolling out the env patch?
>
> Sure, I can send it after it reaches Stefano's tree.

I have it done; will send it with the fixes Marek has asked.

--
Otavio Salvador                             O.S. Systems
E-mail: otavio@ossystems.com.br  http://www.ossystems.com.br
Mobile: +55 53 9981-7854              http://projetos.ossystems.com.br

Patch hide | download patch | download mbox

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..bc63481 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