MLK-21848-5 fsl_esdhc: fix problem when using clk driver
authorYe Li <ye.li@nxp.com>
Fri, 26 Apr 2019 01:39:12 +0000 (18:39 -0700)
committerYe Li <ye.li@nxp.com>
Wed, 28 Apr 2021 20:48:55 +0000 (13:48 -0700)
Should use CONFIG_IS_ENABLED not IS_ENABLED for CLK driver, so it will
check the CONFIG_SPL_CLK when building SPL

Move init_clk_usdhc to non-clk driver case, since assigned-clocks properties
will initialize the clocks by clk driver.

Signed-off-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit be51cba531a985f6bde70213856ee957b80562dd)
(cherry picked from commit 23b99dc837c94c5337fb92fbc9d46fa8c23b644b)

drivers/mmc/fsl_esdhc_imx.c

index 6a9403d..f43fe4c 100644 (file)
@@ -1567,8 +1567,6 @@ static int fsl_esdhc_probe(struct udevice *dev)
         * work as expected.
         */
 
-       init_clk_usdhc(dev_seq(dev));
-
 #if CONFIG_IS_ENABLED(CLK)
        /* Assigned clock already set clock */
        ret = clk_get_by_name(dev, "per", &priv->per_clk);
@@ -1584,6 +1582,8 @@ static int fsl_esdhc_probe(struct udevice *dev)
 
        priv->sdhc_clk = clk_get_rate(&priv->per_clk);
 #else
+       init_clk_usdhc(dev_seq(dev));
+
        priv->sdhc_clk = mxc_get_clock(MXC_ESDHC_CLK + dev_seq(dev));
        if (priv->sdhc_clk <= 0) {
                dev_err(dev, "Unable to get clk for %s\n", dev->name);