ARM: imx: dh-imx6: Convert SD/MMC support to DM
authorMarek Vasut <marex@denx.de>
Fri, 17 May 2019 14:58:51 +0000 (16:58 +0200)
committerStefano Babic <sbabic@denx.de>
Tue, 11 Jun 2019 08:42:48 +0000 (10:42 +0200)
Enable DM block and DM MMC support on DHCOM iMX6 PDK2.
Convert board code to match the DM support.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Ludwig Zenz <lzenz@dh-electronics.com>
Cc: Stefano Babic <sbabic@denx.de>
board/dhelectronics/dh_imx6/dh_imx6.c
configs/dh_imx6_defconfig

index 44f4ef813080bee06171cbf5fce5689333bab3bc..193bb0eadea829e67556ffb2a27861cab07c7f24 100644 (file)
@@ -6,6 +6,8 @@
  */
 
 #include <common.h>
+#include <dm.h>
+#include <dm/device-internal.h>
 #include <asm/arch/clock.h>
 #include <asm/arch/crm_regs.h>
 #include <asm/arch/imx-regs.h>
@@ -189,63 +191,6 @@ int board_eth_init(bd_t *bis)
 }
 #endif
 
-#ifdef CONFIG_FSL_ESDHC
-
-#define USDHC2_CD_GPIO IMX_GPIO_NR(6, 16)
-#define USDHC3_CD_GPIO IMX_GPIO_NR(7, 8)
-
-static struct fsl_esdhc_cfg usdhc_cfg[3] = {
-       { USDHC2_BASE_ADDR },
-       { USDHC3_BASE_ADDR },
-       { USDHC4_BASE_ADDR },
-};
-
-int board_mmc_getcd(struct mmc *mmc)
-{
-       struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
-
-       switch (cfg->esdhc_base) {
-       case USDHC2_BASE_ADDR:
-               return gpio_get_value(USDHC2_CD_GPIO);
-       case USDHC3_BASE_ADDR:
-               return !gpio_get_value(USDHC3_CD_GPIO);
-       case USDHC4_BASE_ADDR:
-               return 1; /* eMMC/uSDHC4 is always present */
-       }
-
-       return 0;
-}
-
-int board_mmc_init(bd_t *bis)
-{
-       int i, ret;
-
-       /*
-        * According to the board_mmc_init() the following map is done:
-        * (U-Boot device node)    (Physical Port)
-        * mmc0                    SD interface
-        * mmc1                    micro SD
-        * mmc2                    eMMC
-        */
-       gpio_request(USDHC2_CD_GPIO, "SD2-CD");
-       gpio_request(USDHC3_CD_GPIO, "SD3-CD");
-       gpio_direction_input(USDHC2_CD_GPIO);
-       gpio_direction_input(USDHC3_CD_GPIO);
-
-       usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC2_CLK);
-       usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
-       usdhc_cfg[2].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
-
-       for (i = 0; i < CONFIG_SYS_FSL_USDHC_NUM; i++) {
-               ret = fsl_esdhc_initialize(bis, &usdhc_cfg[i]);
-               if (ret)
-                       return ret;
-       }
-
-       return 0;
-}
-#endif
-
 #ifdef CONFIG_USB_EHCI_MX6
 static void setup_usb(void)
 {
index 2443156b87fe26a1d1b4a7a07937022fc83d3f04..37c2f014857efabc52f6375aa03da09440a862a0 100644 (file)
@@ -11,6 +11,7 @@ CONFIG_NR_DRAM_BANKS=1
 CONFIG_SPL=y
 CONFIG_SYS_BOOTCOUNT_ADDR=0x00900000
 CONFIG_DM_GPIO=y
+CONFIG_DM_MMC=y
 CONFIG_SPL_SPI_FLASH_SUPPORT=y
 CONFIG_SPL_SPI_SUPPORT=y
 CONFIG_DISTRO_DEFAULTS=y