[U-Boot] [v2] armv8: ls1012a: enable/disable eSDHC1 through hwconfig for RDB

Yangbo Lu yangbo.lu at nxp.com
Mon Nov 27 08:39:03 UTC 2017


For LS1012ARDB RevD and later versions, the I2C reading for DIP
switch setting had been no longer reliable since the board was
reworked. This patch is to add hwconfig support to enable/disable
eSDHC1 manually.

Signed-off-by: Yangbo Lu <yangbo.lu at nxp.com>
---
Changes for v2:
	- Just used hwconfig() instead of getenv() and hwconfig_f().
---
 board/freescale/ls1012ardb/ls1012ardb.c | 28 ++--------------------------
 1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/board/freescale/ls1012ardb/ls1012ardb.c b/board/freescale/ls1012ardb/ls1012ardb.c
index c6c1c71202..3e2b9c27eb 100644
--- a/board/freescale/ls1012ardb/ls1012ardb.c
+++ b/board/freescale/ls1012ardb/ls1012ardb.c
@@ -132,39 +132,15 @@ int board_init(void)
 
 int esdhc_status_fixup(void *blob, const char *compat)
 {
-	char esdhc0_path[] = "/soc/esdhc at 1560000";
 	char esdhc1_path[] = "/soc/esdhc at 1580000";
-	u8 io = 0;
-	u8 mux_sdhc2;
 
-	do_fixup_by_path(blob, esdhc0_path, "status", "okay",
-			 sizeof("okay"), 1);
-
-	i2c_set_bus_num(0);
-
-	/*
-	 * The I2C IO-expander for mux select is used to control the muxing
-	 * of various onboard interfaces.
-	 *
-	 * IO1[3:2] indicates SDHC2 interface demultiplexer select lines.
-	 *	00 - SDIO wifi
-	 *	01 - GPIO (to Arduino)
-	 *	10 - eMMC Memory
-	 *	11 - SPI
-	 */
-	if (i2c_read(I2C_MUX_IO1_ADDR, 0, 1, &io, 1) < 0) {
-		printf("Error reading i2c boot information!\n");
-		return 0; /* Don't want to hang() on this error */
-	}
-
-	mux_sdhc2 = (io & 0x0c) >> 2;
-	/* Enable SDHC2 only when use SDIO wifi and eMMC */
-	if (mux_sdhc2 == 2 || mux_sdhc2 == 0)
+	if (hwconfig("esdhc1"))
 		do_fixup_by_path(blob, esdhc1_path, "status", "okay",
 				 sizeof("okay"), 1);
 	else
 		do_fixup_by_path(blob, esdhc1_path, "status", "disabled",
 				 sizeof("disabled"), 1);
+
 	return 0;
 }
 
-- 
2.14.1



More information about the U-Boot mailing list