From 19a387f85d3643ec052903223bfdcffe0ab227a6 Mon Sep 17 00:00:00 2001
From: Tim Harvey <tharvey@gateworks.com>
Date: Mon, 1 Mar 2021 14:33:35 -0800
Subject: [PATCH] imx: ventana: enable dm support for MMC and SATA

Enable driver model support for MMC and SATA.

Note that DM_MMC requires aliases for your mmc devices so
they are added to the dts. Linux does not support enumerating mmc
devices by alias so these are not present in the Linux dts.

Note that we still need board_mmc_init() and board_mmc_getcd() for
not DM SPL to support MMC.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
---
 arch/arm/dts/imx6qdl-gw52xx.dtsi        | 1 +
 arch/arm/dts/imx6qdl-gw53xx.dtsi        | 1 +
 arch/arm/dts/imx6qdl-gw54xx.dtsi        | 1 +
 arch/arm/dts/imx6qdl-gw560x.dtsi        | 2 ++
 arch/arm/dts/imx6qdl-gw5904.dtsi        | 1 +
 arch/arm/dts/imx6qdl-gw5910.dtsi        | 1 +
 arch/arm/dts/imx6qdl-gw5912.dtsi        | 1 +
 board/gateworks/gw_ventana/gw_ventana.c | 5 -----
 configs/gwventana_emmc_defconfig        | 2 ++
 configs/gwventana_gw5904_defconfig      | 2 ++
 configs/gwventana_nand_defconfig        | 2 ++
 11 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/arch/arm/dts/imx6qdl-gw52xx.dtsi b/arch/arm/dts/imx6qdl-gw52xx.dtsi
index de54b7c2174..6eedf8d40d8 100644
--- a/arch/arm/dts/imx6qdl-gw52xx.dtsi
+++ b/arch/arm/dts/imx6qdl-gw52xx.dtsi
@@ -13,6 +13,7 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc3;
 		nand = &gpmi;
 		ssi0 = &ssi1;
 		usb0 = &usbh1;
diff --git a/arch/arm/dts/imx6qdl-gw53xx.dtsi b/arch/arm/dts/imx6qdl-gw53xx.dtsi
index 64bb88dc745..9deec7e352d 100644
--- a/arch/arm/dts/imx6qdl-gw53xx.dtsi
+++ b/arch/arm/dts/imx6qdl-gw53xx.dtsi
@@ -13,6 +13,7 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc3;
 		nand = &gpmi;
 		ssi0 = &ssi1;
 		usb0 = &usbh1;
diff --git a/arch/arm/dts/imx6qdl-gw54xx.dtsi b/arch/arm/dts/imx6qdl-gw54xx.dtsi
index 56d090ec0f6..a30ba4848e0 100644
--- a/arch/arm/dts/imx6qdl-gw54xx.dtsi
+++ b/arch/arm/dts/imx6qdl-gw54xx.dtsi
@@ -14,6 +14,7 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc3;
 		nand = &gpmi;
 		ssi0 = &ssi1;
 		usb0 = &usbh1;
diff --git a/arch/arm/dts/imx6qdl-gw560x.dtsi b/arch/arm/dts/imx6qdl-gw560x.dtsi
index d5468fb2606..0786b0d5463 100644
--- a/arch/arm/dts/imx6qdl-gw560x.dtsi
+++ b/arch/arm/dts/imx6qdl-gw560x.dtsi
@@ -55,6 +55,8 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc2;
+		mmc1 = &usdhc3;
 		ssi0 = &ssi1;
 		usb0 = &usbh1;
 		usb1 = &usbotg;
diff --git a/arch/arm/dts/imx6qdl-gw5904.dtsi b/arch/arm/dts/imx6qdl-gw5904.dtsi
index 52b255b726e..5b7bd569328 100644
--- a/arch/arm/dts/imx6qdl-gw5904.dtsi
+++ b/arch/arm/dts/imx6qdl-gw5904.dtsi
@@ -55,6 +55,7 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc3;
 		usb0 = &usbh1;
 		usb1 = &usbotg;
 	};
diff --git a/arch/arm/dts/imx6qdl-gw5910.dtsi b/arch/arm/dts/imx6qdl-gw5910.dtsi
index 56d0c4ff6c8..248e077a56e 100644
--- a/arch/arm/dts/imx6qdl-gw5910.dtsi
+++ b/arch/arm/dts/imx6qdl-gw5910.dtsi
@@ -13,6 +13,7 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc3;
 	};
 
 	chosen {
diff --git a/arch/arm/dts/imx6qdl-gw5912.dtsi b/arch/arm/dts/imx6qdl-gw5912.dtsi
index 797f160249f..7593872c07e 100644
--- a/arch/arm/dts/imx6qdl-gw5912.dtsi
+++ b/arch/arm/dts/imx6qdl-gw5912.dtsi
@@ -13,6 +13,7 @@
 		led0 = &led0;
 		led1 = &led1;
 		led2 = &led2;
+		mmc0 = &usdhc3;
 		nand = &gpmi;
 		usb0 = &usbh1;
 		usb1 = &usbotg;
diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
index 50bb202a723..7be4555d4ba 100644
--- a/board/gateworks/gw_ventana/gw_ventana.c
+++ b/board/gateworks/gw_ventana/gw_ventana.c
@@ -28,7 +28,6 @@
 #include <hwconfig.h>
 #include <i2c.h>
 #include <fdt_support.h>
-#include <fsl_esdhc_imx.h>
 #include <jffs2/load_kernel.h>
 #include <linux/ctype.h>
 #include <miiphy.h>
@@ -650,10 +649,6 @@ int board_init(void)
 	setup_ventana_i2c(1);
 	setup_ventana_i2c(2);
 
-#ifdef CONFIG_SATA
-	setup_sata();
-#endif
-
 	setup_iomux_gpio(board_type, &ventana_info);
 
 	return 0;
diff --git a/configs/gwventana_emmc_defconfig b/configs/gwventana_emmc_defconfig
index 696f49ca8ae..d383a85f8bf 100644
--- a/configs/gwventana_emmc_defconfig
+++ b/configs/gwventana_emmc_defconfig
@@ -19,6 +19,7 @@ CONFIG_SPL=y
 CONFIG_ENV_OFFSET_REDUND=0xD1400
 CONFIG_CMD_HDMIDETECT=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6q-gw54xx"
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_SPL_LOAD_FIT=y
@@ -79,6 +80,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_RPMB=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
diff --git a/configs/gwventana_gw5904_defconfig b/configs/gwventana_gw5904_defconfig
index 0e697017b1f..b6ef9e6f8a7 100644
--- a/configs/gwventana_gw5904_defconfig
+++ b/configs/gwventana_gw5904_defconfig
@@ -19,6 +19,7 @@ CONFIG_SPL=y
 CONFIG_ENV_OFFSET_REDUND=0xD1400
 CONFIG_CMD_HDMIDETECT=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6q-gw54xx"
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_SPL_LOAD_FIT=y
@@ -79,6 +80,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_RPMB=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
diff --git a/configs/gwventana_nand_defconfig b/configs/gwventana_nand_defconfig
index 9b204c72637..533d31af9fc 100644
--- a/configs/gwventana_nand_defconfig
+++ b/configs/gwventana_nand_defconfig
@@ -19,6 +19,7 @@ CONFIG_SPL=y
 CONFIG_ENV_OFFSET_REDUND=0x1080000
 CONFIG_CMD_HDMIDETECT=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6q-gw54xx"
+CONFIG_AHCI=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_SPL_LOAD_FIT=y
@@ -81,6 +82,7 @@ CONFIG_NETCONSOLE=y
 CONFIG_DM=y
 CONFIG_BOUNCE_BUFFER=y
 CONFIG_DWC_AHSATA=y
+CONFIG_DM_MMC=y
 CONFIG_SUPPORT_EMMC_RPMB=y
 CONFIG_SUPPORT_EMMC_BOOT=y
 CONFIG_FSL_USDHC=y
-- 
GitLab