[U-Boot] [PATCH 5/6] i.mx: fsl_esdhc: add the i.mx6q support
Jason Liu
jason.hui at linaro.org
Sat Nov 12 11:36:29 CET 2011
The mmc host controller on the i.mx6q is called usdhc which
is redesigned based on the freescale esdhc controller.
The usdhc controller is almost compatible with esdhc except
it adds one misc control register from user using experience.
Signed-off-by: Jason Liu <jason.hui at linaro.org>
---
drivers/mmc/fsl_esdhc.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/drivers/mmc/fsl_esdhc.c b/drivers/mmc/fsl_esdhc.c
index ec953f0..cd17ef2 100644
--- a/drivers/mmc/fsl_esdhc.c
+++ b/drivers/mmc/fsl_esdhc.c
@@ -58,7 +58,12 @@ struct fsl_esdhc {
uint autoc12err;
uint hostcapblt;
uint wml;
- char reserved1[8];
+#if defined(CONFIG_FSL_USDHC)
+ uint mixctrl;
+ char reserved1[4];
+#else
+ char reserved1[8];
+#endif
uint fevt;
char reserved2[168];
uint hostver;
@@ -298,6 +303,9 @@ esdhc_send_cmd(struct mmc *mmc, struct mmc_cmd *cmd, struct mmc_data *data)
/* Send the command */
esdhc_write32(®s->cmdarg, cmd->cmdarg);
+#if defined(CONFIG_FSL_USDHC)
+ esdhc_write32(®s->mixctrl, xfertyp & 0xFFFF);
+#endif
esdhc_write32(®s->xfertyp, xfertyp);
/* Wait for the command to complete */
@@ -482,7 +490,11 @@ int fsl_esdhc_initialize(bd_t *bis, struct fsl_esdhc_cfg *cfg)
mmc = malloc(sizeof(struct mmc));
+#if defined(CONFIG_FSL_USDHC)
+ sprintf(mmc->name, "FSL_USDHC");
+#else
sprintf(mmc->name, "FSL_ESDHC");
+#endif
regs = (struct fsl_esdhc *)cfg->esdhc_base;
/* First reset the eSDHC controller */
--
1.7.4.1
More information about the U-Boot
mailing list