mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board
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
@@ -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
@@ -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
@@ -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
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_widthis 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.
Signed-off-by Abbas Raza <[email protected]>cc stefano Babic <[email protected]>cc Andy Fleming <[email protected]>Acked-by Dirk Behme <[email protected]>Acked-by Andrew Gabbasov <[email protected]>
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
PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board
Hi,
Quoted 9 lines · Eric Nelson
Thanks Abbas,
Tested-by Eric Nelson <[email protected]>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
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,
Tested-by Eric Nelson <[email protected]>
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#l107I 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
PATCH 1/1 mmc: mx6qsabrelite: fsl_esdhc: Define maximum bus width supported by SabreLite board
In reply to Abbas RazaHi Abbas,
Quoted 7 lines · Abbas Raza
Hi,
Quoted 4 lines · Eric Nelson
Thanks Abbas,
Tested-by Eric Nelson <[email protected]>
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#l107I 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.
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