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

login
register
mail settings
Submitter Marek Vasut
Date Jan. 23, 2013, 1:01 a.m.
Message ID <1358902865-20475-6-git-send-email-marex@denx.de>
Download mbox | patch
Permalink /patch/214700/
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Comments

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(-)
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

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