mmc: Limit the number of used SSP ports on MX23
authorMarek Vasut <marex@denx.de>
Fri, 11 Jan 2013 03:19:14 +0000 (03:19 +0000)
committerStefano Babic <sbabic@denx.de>
Mon, 21 Jan 2013 11:05:21 +0000 (12:05 +0100)
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>
drivers/mmc/mxsmmc.c

index 76878d08c3fadb563d7cc752f91b44371dd9c5fc..0c4cd54b79afe05d5c765583af7f5d7d8c986724 100644 (file)
@@ -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);