const char *clk_name)
 {
        struct clk *r;
-       struct clk_lookup *l;
+       int rc;
 
        if (!clk_alias || !clk_name)
                return;
                return;
        }
 
-       r = clk_get(NULL, clk_name);
-       if (IS_ERR(r)) {
-               dev_err(&od->pdev->dev,
-                       "clk_get for %s failed\n", clk_name);
-               return;
+       rc = clk_add_alias(clk_alias, dev_name(&od->pdev->dev), clk_name, NULL);
+       if (rc) {
+               if (rc == -ENODEV || rc == -ENOMEM)
+                       dev_err(&od->pdev->dev,
+                               "clkdev_alloc for %s failed\n", clk_alias);
+               else
+                       dev_err(&od->pdev->dev,
+                               "clk_get for %s failed\n", clk_name);
        }
-
-       l = clkdev_alloc(r, clk_alias, dev_name(&od->pdev->dev));
-       if (!l) {
-               dev_err(&od->pdev->dev,
-                       "clkdev_alloc for %s failed\n", clk_alias);
-               return;
-       }
-
-       clkdev_add(l);
 }
 
 /**