From: Jon Nettleton <jon@solid-run.com>
Date: Mon, 11 Jun 2018 12:26:22 +0000 (+0300)
Subject: mx6cuboxi: Use mmc_get_op_cond() to check for an eMMC
X-Git-Tag: v2025.01-rc5-pxa1908~3900^2~40
X-Git-Url: http://git.dujemihanovic.xyz/projects?a=commitdiff_plain;h=19ed6063a567c6924dbfc358bf4ce9a60a31c567;p=u-boot.git

mx6cuboxi: Use mmc_get_op_cond() to check for an eMMC

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 <jon@solid-run.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---

diff --git a/board/solidrun/mx6cuboxi/mx6cuboxi.c b/board/solidrun/mx6cuboxi/mx6cuboxi.c
index 9324650119..cf63427e52 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;