Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[deliverable/linux.git] / arch / arm / mach-omap2 / omap_device.c
index f7ff3b9dad8784aeab4d3752061514a8498774ae..e920dd83e443753ccced325ce19c48c6bca398c6 100644 (file)
@@ -63,7 +63,22 @@ static void _add_clkdev(struct omap_device *od, const char *clk_alias,
                return;
        }
 
-       rc = clk_add_alias(clk_alias, dev_name(&od->pdev->dev), clk_name, NULL);
+       r = clk_get_sys(NULL, clk_name);
+
+       if (IS_ERR(r) && of_have_populated_dt()) {
+               struct of_phandle_args clkspec;
+
+               clkspec.np = of_find_node_by_name(NULL, clk_name);
+
+               r = of_clk_get_from_provider(&clkspec);
+
+               rc = clk_register_clkdev(r, clk_alias,
+                                        dev_name(&od->pdev->dev));
+       } else {
+               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,
@@ -194,7 +209,7 @@ static int _omap_device_notifier_call(struct notifier_block *nb,
        int err;
 
        switch (event) {
-       case BUS_NOTIFY_DEL_DEVICE:
+       case BUS_NOTIFY_REMOVED_DEVICE:
                if (pdev->archdata.od)
                        omap_device_delete(pdev->archdata.od);
                break;
@@ -268,7 +283,7 @@ static int _omap_device_idle_hwmods(struct omap_device *od)
  * function returns a value different than the value the caller got
  * the last time it called this function.
  *
- * If any hwmods exist for the omap_device assoiated with @pdev,
+ * If any hwmods exist for the omap_device associated with @pdev,
  * return the context loss counter for that hwmod, otherwise return
  * zero.
  */
This page took 0.057201 seconds and 5 git commands to generate.