]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - drivers/mmc/uniphier-sd.c
clk: convert API to match reset/mailbox style
[karo-tx-uboot.git] / drivers / mmc / uniphier-sd.c
index 81a80cdbc2ca98728a28ea8466b4bd9c8dfb6bd9..152e9873970b3a80e6e14f44fba9c4598ad696c4 100644 (file)
@@ -651,8 +651,7 @@ int uniphier_sd_probe(struct udevice *dev)
        struct uniphier_sd_priv *priv = dev_get_priv(dev);
        struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
        fdt_addr_t base;
-       struct udevice *clk_dev;
-       int clk_id;
+       struct clk clk;
        int ret;
 
        priv->dev = dev;
@@ -665,20 +664,22 @@ int uniphier_sd_probe(struct udevice *dev)
        if (!priv->regbase)
                return -ENOMEM;
 
-       clk_id = clk_get_by_index(dev, 0, &clk_dev);
-       if (clk_id < 0) {
+       ret = clk_get_by_index(dev, 0, &clk);
+       if (ret < 0) {
                dev_err(dev, "failed to get host clock\n");
-               return clk_id;
+               return ret;
        }
 
        /* set to max rate */
-       priv->mclk = clk_set_periph_rate(clk_dev, clk_id, ULONG_MAX);
+       priv->mclk = clk_set_rate(&clk, ULONG_MAX);
        if (IS_ERR_VALUE(priv->mclk)) {
                dev_err(dev, "failed to set rate for host clock\n");
+               clk_free(&clk);
                return priv->mclk;
        }
 
-       ret = clk_enable(clk_dev, clk_id);
+       ret = clk_enable(&clk);
+       clk_free(&clk);
        if (ret) {
                dev_err(dev, "failed to enable host clock\n");
                return ret;
@@ -725,6 +726,7 @@ int uniphier_sd_probe(struct udevice *dev)
                return -EIO;
 
        upriv->mmc = priv->mmc;
+       priv->mmc->dev = dev;
 
        return 0;
 }