]> git.sur5r.net Git - u-boot/blobdiff - drivers/mmc/meson_gx_mmc.c
Merge branch 'master' of git://git.denx.de/u-boot-sunxi
[u-boot] / drivers / mmc / meson_gx_mmc.c
index 2dda1b70646cdfe19bbd89580fe7f94b9ab65452..332f1e12a58377dfcb8a7e8b963e9643e17265c0 100644 (file)
@@ -1,16 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2016 Carlo Caione <carlo@caione.org>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
+#include <dm.h>
 #include <fdtdec.h>
 #include <malloc.h>
 #include <mmc.h>
 #include <asm/io.h>
 #include <asm/arch/sd_emmc.h>
-#include <dm/device.h>
 #include <linux/log2.h>
 
 static inline void *get_regbase(const struct mmc *mmc)
@@ -35,6 +34,9 @@ static void meson_mmc_config_clock(struct mmc *mmc)
        uint32_t meson_mmc_clk = 0;
        unsigned int clk, clk_src, clk_div;
 
+       if (!mmc->clock)
+               return;
+
        /* 1GHz / CLK_MAX_DIV = 15,9 MHz */
        if (mmc->clock > 16000000) {
                clk = SD_EMMC_CLKSRC_DIV2;
@@ -221,7 +223,7 @@ static int meson_mmc_ofdata_to_platdata(struct udevice *dev)
        struct meson_mmc_platdata *pdata = dev_get_platdata(dev);
        fdt_addr_t addr;
 
-       addr = dev_get_addr(dev);
+       addr = devfdt_get_addr(dev);
        if (addr == FDT_ADDR_T_NONE)
                return -EINVAL;
 
@@ -250,7 +252,7 @@ static int meson_mmc_probe(struct udevice *dev)
        mmc->priv = pdata;
        upriv->mmc = mmc;
 
-       mmc_set_clock(mmc, cfg->f_min);
+       mmc_set_clock(mmc, cfg->f_min, MMC_CLK_ENABLE);
 
        /* reset all status bits */
        meson_write(mmc, STATUS_MASK, MESON_SD_EMMC_STATUS);