From: Jon Nettleton <[email protected]>

Previously we had just made broad assumptions with which of our
boards had an eMMC or not even though this is a manufacturing time
assembly option.  This takes the guessing away and actually checks for
the existence of an eMMC and sets up the has_emmc environment variable.

Signed-off-by: Jon Nettleton <[email protected]>
Signed-off-by: Baruch Siach <[email protected]>
---
 board/solidrun/mx6cuboxi/mx6cuboxi.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c 
b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 932465011971..cf63427e52f1 100644
--- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
+++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
@@ -189,7 +189,7 @@ int board_mmc_getcd(struct mmc *mmc)
                ret = !gpio_get_value(USDHC2_CD_GPIO);
                break;
        case USDHC3_BASE_ADDR:
-               ret = 1; /* eMMC/uSDHC3 has no CD GPIO */
+               ret = (mmc_get_op_cond(mmc) < 0) ? 0 : 1; /* eMMC/uSDHC3 has no 
CD GPIO */
                break;
        }
 
@@ -527,6 +527,15 @@ static bool is_rev_15_som(void)
        return false;
 }
 
+static bool has_emmc(void)
+{
+       struct mmc *mmc;
+       mmc = find_mmc_device(1);
+       if (!mmc)
+               return 0;
+       return (mmc_get_op_cond(mmc) < 0) ? 0 : 1;
+}
+
 int checkboard(void)
 {
        switch (board_type()) {
@@ -579,6 +588,10 @@ int board_late_init(void)
 
        if (is_rev_15_som())
                env_set("som_rev", "V15");
+
+       if (has_emmc())
+               env_set("has_emmc", "yes");
+
 #endif
 
        return 0;
-- 
2.17.1

_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to