Patchwork [U-Boot,5/9] mx23_olinuxino: Add MMC support

login
register
mail settings
Submitter Otavio Salvador
Date Jan. 22, 2013, 1:47 a.m.
Message ID <1358819250-31625-6-git-send-email-otavio@ossystems.com.br>
Download mbox | patch
Permalink /patch/214307/
State Not Applicable
Headers show

Comments

Marek Vasut - Jan. 22, 2013, 1:47 a.m.
Dear Otavio Salvador,

Description is missing.

> From: Marek Vasut <marex@denx.de>
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> ---
>  board/olimex/mx23_olinuxino/mx23_olinuxino.c | 17 ++++++++++++++++-
>  board/olimex/mx23_olinuxino/spl_boot.c       | 10 ++++++++++
>  include/configs/mx23_olinuxino.h             | 12 ++++++++++++
>  3 files changed, 38 insertions(+), 1 deletion(-)
> 
> diff --git a/board/olimex/mx23_olinuxino/mx23_olinuxino.c
> b/board/olimex/mx23_olinuxino/mx23_olinuxino.c index 2fcad26..421ed9c
> 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,13 @@ int dram_init(void)
>  	return mxs_dram_init();
>  }
> 
> +#ifdef	CONFIG_CMD_MMC
> +int board_mmc_init(bd_t *bis)
> +{
> +	return mxsmmc_initialize(bis, 0, NULL);
> +}
> +#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 aaebe6c..3cc40cd 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_12MA | MXS_PAD_NOPULL)
> +#define	MUX_CONFIG_SSP	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
> 
>  const iomux_cfg_t iomux_setup[] = {
>  	/* DUART */
> @@ -82,6 +83,15 @@ 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_DETECT__SSP1_DETECT | 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

Best regards,
Marek Vasut
Otavio Salvador - Jan. 22, 2013, 1:47 a.m.
From: Marek Vasut <marex@denx.de>

Signed-off-by: Marek Vasut <marex@denx.de>
---
 board/olimex/mx23_olinuxino/mx23_olinuxino.c | 17 ++++++++++++++++-
 board/olimex/mx23_olinuxino/spl_boot.c       | 10 ++++++++++
 include/configs/mx23_olinuxino.h             | 12 ++++++++++++
 3 files changed, 38 insertions(+), 1 deletion(-)
Otavio Salvador - Jan. 22, 2013, 1:58 a.m.
On Mon, Jan 21, 2013 at 11:47 PM, Marek Vasut <marex@denx.de> wrote:
> Dear Otavio Salvador,
>
> Description is missing.
>
>> From: Marek Vasut <marex@denx.de>
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>

Please provide me the description you wish and I amend it.

--
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..421ed9c 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,13 @@  int dram_init(void)
 	return mxs_dram_init();
 }
 
+#ifdef	CONFIG_CMD_MMC
+int board_mmc_init(bd_t *bis)
+{
+	return mxsmmc_initialize(bis, 0, NULL);
+}
+#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 aaebe6c..3cc40cd 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_12MA | MXS_PAD_NOPULL)
+#define	MUX_CONFIG_SSP	(MXS_PAD_3V3 | MXS_PAD_8MA | MXS_PAD_PULLUP)
 
 const iomux_cfg_t iomux_setup[] = {
 	/* DUART */
@@ -82,6 +83,15 @@  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_DETECT__SSP1_DETECT | 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