Pick commit 4e518816a938187b3bfe1b62fa291d4e38dca06e from Linux
upstream.

    crypto: caam - add support for iMX6UL

    i.MX6UL does only require three clocks to enable CAAM module.

    Signed-off-by: Marcus Folkesson <[email protected]>
    Acked-by: Rob Herring <[email protected]>
    Reviewed-by: Horia Geantă <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>

Signed-off-by: Marcin Niestroj <[email protected]>
---
 drivers/crypto/caam/ctrl.c | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/crypto/caam/ctrl.c b/drivers/crypto/caam/ctrl.c
index 0baddf733..55193f6ef 100644
--- a/drivers/crypto/caam/ctrl.c
+++ b/drivers/crypto/caam/ctrl.c
@@ -224,7 +224,8 @@ static void caam_remove(struct device_d *dev)
        clk_disable(ctrlpriv->caam_ipg);
        clk_disable(ctrlpriv->caam_mem);
        clk_disable(ctrlpriv->caam_aclk);
-       clk_disable(ctrlpriv->caam_emi_slow);
+       if (ctrlpriv->caam_emi_slow)
+               clk_disable(ctrlpriv->caam_emi_slow);
 }
 
 /*
@@ -341,12 +342,14 @@ static int caam_probe(struct device_d *dev)
                return -ENODEV;
        }
 
-       ctrlpriv->caam_emi_slow = clk_get(dev, "emi_slow");
-       if (IS_ERR(ctrlpriv->caam_emi_slow)) {
-               ret = PTR_ERR(ctrlpriv->caam_emi_slow);
-               dev_err(dev,
-                       "can't identify CAAM emi slow clk: %d\n", ret);
-               return -ENODEV;
+       if (!of_machine_is_compatible("fsl,imx6ul")) {
+               ctrlpriv->caam_emi_slow = clk_get(dev, "emi_slow");
+               if (IS_ERR(ctrlpriv->caam_emi_slow)) {
+                       ret = PTR_ERR(ctrlpriv->caam_emi_slow);
+                       dev_err(dev,
+                               "can't identify CAAM emi slow clk: %d\n", ret);
+                       return -ENODEV;
+               }
        }
 
        ret = clk_enable(ctrlpriv->caam_ipg);
@@ -368,11 +371,13 @@ static int caam_probe(struct device_d *dev)
                return -ENODEV;
        }
 
-       ret = clk_enable(ctrlpriv->caam_emi_slow);
-       if (ret < 0) {
-               dev_err(dev, "can't enable CAAM emi slow clock: %d\n",
-                       ret);
-               return -ENODEV;
+       if (ctrlpriv->caam_emi_slow) {
+               ret = clk_enable(ctrlpriv->caam_emi_slow);
+               if (ret < 0) {
+                       dev_err(dev, "can't enable CAAM emi slow clock: %d\n",
+                               ret);
+                       return -ENODEV;
+               }
        }
 
        /* Get configuration properties from device tree */
-- 
2.18.0


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to