Skip to contentSkip to conversation

mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

PATCH New Abbas Raza 3 participants 6 messages Mar 21, 2013 – Jun 6, 2013 MMC, SD and SDIO

lore
Share & tools
lore

Abbas Raza

author
#0 lore raw

PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

From: Abbas Raza <[email protected]>

Maximum bus width supported by SabreLite board is not 8bit like all other mx6q specific boards. In case where both host controller and card support 8bit transfers, they agree to communicate on 8bit interface while boards like the SabreLite support only 4bit interface. Due to this reason the mmc 8bit default mode fails on the SabreLite. To rectify this, define maximum bus width supported by this board (4bit). If max_bus_width is not defined, it is 0 by default and 8bit width support will be enabled in host capabilities otherwise host capabilities are modified accordingly.

It is tested with a MMCplus card.

---
 board/freescale/mx6qsabrelite/mx6qsabrelite.c | 3 +++
 drivers/mmc/fsl_esdhc.c                       | 7 +++++++
 include/fsl_esdhc.h                           | 1 +
 3 files changed, 11 insertions(+)
board/freescale/mx6qsabrelite/mx6qsabrelite.c +3 -0
index d563464..14c299b 100644
@@ -110,6 +110,9 @@ int board_mmc_init(bd_t *bis)
 	usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
 	usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
 
+	usdhc_cfg[0].max_bus_width = 4;
+	usdhc_cfg[1].max_bus_width = 4;
+
 	for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index)
 		status |= fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
 
drivers/mmc/fsl_esdhc.c +7 -0
index 3d5c9c0..d2a505e 100644
@@ -579,6 +579,13 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg)
 
 	mmc->host_caps = MMC_MODE_4BIT | MMC_MODE_8BIT | MMC_MODE_HC;
 
+	if (cfg->max_bus_width > 0) {
+		if (cfg->max_bus_width < 8)
+			mmc->host_caps &= ~MMC_MODE_8BIT;
+		if (cfg->max_bus_width < 4)
+			mmc->host_caps &= ~MMC_MODE_4BIT;
+	}
+
 	if (caps & ESDHC_HOSTCAPBLT_HSS)
 		mmc->host_caps |= MMC_MODE_HS_52MHz | MMC_MODE_HS;
 
include/fsl_esdhc.h +1 -0
index 47d2fe4..0a1a071 100644
@@ -168,6 +168,7 @@
 struct fsl_esdhc_cfg {
 	u32	esdhc_base;
 	u32	sdhc_clk;
+	u8	max_bus_width;
 };
 
 /* Select the correct accessors depending on endianess */
Signature · 1 line
1.8.2
#1 lore raw

PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

Thanks Abbas,

Quoted 19 lines · Abbas Raza

From: Abbas Raza <[email protected]>

Maximum bus width supported by SabreLite board is not 8bit like all other mx6q specific boards. In case where both host controller and card support 8bit transfers, they agree to communicate on 8bit interface while boards like the SabreLite support only 4bit interface. Due to this reason the mmc 8bit default mode fails on the SabreLite. To rectify this, define maximum bus width supported by this board (4bit). If max_bus_width is not defined, it is 0 by default and 8bit width support will be enabled in host capabilities otherwise host capabilities are modified accordingly.

It is tested with a MMCplus card.

Quoted 6 lines
---
  board/freescale/mx6qsabrelite/mx6qsabrelite.c | 3 +++
  drivers/mmc/fsl_esdhc.c                       | 7 +++++++
  include/fsl_esdhc.h                           | 1 +
  3 files changed, 11 insertions(+)

Note that the board settings also apply to nitrogen6x and wandboard if you want to expand the patch a bit:

	http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=229c2378396d43a365d6682af35c0e519ccd69d4;hb=HEAD#l304
	http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/wandboard/wandboard.c;h=d95189f77de4c3573ec30c53e04fe1b083c1d2b5;hb=HEAD#l107

I also tested against a custom board with 8-bit eMMC.

Regards,

Eric

author
#2 lore raw

PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

Hi,

Quoted 9 lines · Eric Nelson

Thanks Abbas,

Note that the board settings also apply to nitrogen6x and wandboard if you want to expand the patch a bit:

    http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=229c2378396d43a365d6682af35c0e519ccd69d4;hb=HEAD#l304
    http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/wandboard/wandboard.c;h=d95189f77de4c3573ec30c53e04fe1b083c1d2b5;hb=HEAD#l107

I would like to expand the patch but i cannot test it for boards you mentioned above. Are you sure these boards have 4-bit mmc buses?

Quoted 7 lines

I also tested against a custom board with 8-bit eMMC.

Regards,

Eric

Thanks.
Abbas

#3 lore raw

PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

Hi Abbas,

Quoted 7 lines · Abbas Raza

Hi,

Quoted 4 lines · Eric Nelson

Thanks Abbas,

Quoted 8 lines
Quoted 5 lines

Note that the board settings also apply to nitrogen6x and wandboard if you want to expand the patch a bit:

     http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=229c2378396d43a365d6682af35c0e519ccd69d4;hb=HEAD#l304
     http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/wandboard/wandboard.c;h=d95189f77de4c3573ec30c53e04fe1b083c1d2b5;hb=HEAD#l107

I would like to expand the patch but i cannot test it for boards you mentioned above. Are you sure these boards have 4-bit mmc buses?

Yes. The pin-mux settings confirm this.
Nitrogen6x:

	http://git.denx.de/?p=u-boot/u-boot-imx.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=229c2378396d43a365d6682af35c0e519ccd69d4;hb=HEAD#l148

Wandboard:

	http://git.denx.de/?p=u-boot/u-boot-imx.git;a=blob;f=board/wandboard/wandboard.c;h=d95189f77de4c3573ec30c53e04fe1b083c1d2b5;hb=HEAD#l55

Regards,

Eric

#4 lore raw

PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

In reply to Abbas Raza

Hi Abbas,

Quoted 7 lines · Abbas Raza

Hi,

Quoted 4 lines · Eric Nelson

Thanks Abbas,

Quoted 8 lines
Quoted 5 lines

Note that the board settings also apply to nitrogen6x and wandboard if you want to expand the patch a bit:

     http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=229c2378396d43a365d6682af35c0e519ccd69d4;hb=HEAD#l304
     http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/wandboard/wandboard.c;h=d95189f77de4c3573ec30c53e04fe1b083c1d2b5;hb=HEAD#l107

I would like to expand the patch but i cannot test it for boards you mentioned above. Are you sure these boards have 4-bit mmc buses?

I'm certain about the Nitrogen6x. Less so about Wandboard.

I think I looked it up, but can't recall precisely.

#5 lore raw

PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board

On Thu, Jun 6, 2013 at 5:25 PM, Eric Nelson <[email protected]

Quoted 26 lines

wrote:

Hi Abbas,

Quoted 20 lines · Abbas Raza

Hi,

Quoted 15 lines · Eric Nelson

Thanks Abbas,

Tested-by Eric Nelson <eric.nelson at boundarydevices.**com<[email protected]>
Quoted 1 line

Note that the board settings also apply to nitrogen6x and wandboard if you want to expand the patch a bit:

     http://git.denx.de/u-boot.git/**?p=u-boot/u-boot-imx.git;a=**
blob;f=board/boundary/**nitrogen6x/nitrogen6x.c;h=**
229c2378396d43a365d6682af35c0e**519ccd69d4;hb=HEAD#l304<http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/boundary/nitrogen6x/nitrogen6x.c;h=229c2378396d43a365d6682af35c0e519ccd69d4;hb=HEAD#l304>
     http://git.denx.de/u-boot.git/**?p=u-boot/u-boot-imx.git;a=**

blob;f=board/wandboard/**wandboard.c;h=**d95189f77de4c3573ec30c53e04fe1* *b083c1d2b5;hb=HEAD#l107<http://git.denx.de/u-boot.git/?p=u-boot/u-boot-imx.git;a=blob;f=board/wandboard/wandboard.c;h=d95189f77de4c3573ec30c53e04fe1b083c1d2b5;hb=HEAD#l107>

Quoted 7 lines
Quoted 4 lines

I would like to expand the patch but i cannot test it for boards you mentioned above. Are you sure these boards have 4-bit mmc buses?

I'm certain about the Nitrogen6x. Less so about Wandboard.

I think I looked it up, but can't recall precisely.

I can test a patch for Wandboard :)

Signature · 3 lines
Otavio Salvador                             O.S. Systems
http://www.ossystems.com.br        http://projetos.ossystems.com.br
Mobile: +55 (53) 9981-7854            Mobile: +1 (347) 903-9750