summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marex@denx.de>2013-01-11 03:19:14 +0000
committerStefano Babic <sbabic@denx.de>2013-01-21 12:05:21 +0100
commit1a3c5ffe4f060455a8121093dc82e005b632c9b4 (patch)
treef5f326521eb2256267a0a1ebb1d784c94771918e
parentdeb0757cc75eb256fc8e7016720fd1b11de1b16b (diff)
mmc: Limit the number of used SSP ports on MX23
The MX23 can only use two SSP ports. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Andy Fleming <afleming@freescale.com> Cc: Fabio Estevam <fabio.estevam@freescale.com> Cc: Otavio Salvador <otavio@ossystems.com.br> Cc: Stefano Babic <sbabic@denx.de>
-rw-r--r--drivers/mmc/mxsmmc.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/mmc/mxsmmc.c b/drivers/mmc/mxsmmc.c
index 76878d08c3..0c4cd54b79 100644
--- a/drivers/mmc/mxsmmc.c
+++ b/drivers/mmc/mxsmmc.c
@@ -356,6 +356,16 @@ int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int))
struct mmc *mmc = NULL;
struct mxsmmc_priv *priv = NULL;
int ret;
+#if defined(CONFIG_MX23)
+ const unsigned int mxsmmc_max_id = 2;
+ const unsigned int mxsmmc_clk_id = 0;
+#elif defined(CONFIG_MX28)
+ const unsigned int mxsmmc_max_id = 4;
+ const unsigned int mxsmmc_clk_id = id;
+#endif
+
+ if (id >= mxsmmc_max_id)
+ return -ENODEV;
mmc = malloc(sizeof(struct mmc));
if (!mmc)
@@ -401,7 +411,7 @@ int mxsmmc_initialize(bd_t *bis, int id, int (*wp)(int))
* CLOCK_RATE could be any integer from 0 to 255.
*/
mmc->f_min = 400000;
- mmc->f_max = mxc_get_clock(MXC_SSP0_CLK + id) * 1000 / 2;
+ mmc->f_max = mxc_get_clock(MXC_SSP0_CLK + mxsmmc_clk_id) * 1000 / 2;
mmc->b_max = 0x20;
mmc_register(mmc);