ARM: OMAP2+: timer: add support for fetching fck handle from DT
authorTero Kristo <t-kristo@ti.com>
Wed, 31 May 2017 14:59:58 +0000 (17:59 +0300)
committerTony Lindgren <tony@atomide.com>
Tue, 6 Jun 2017 07:13:41 +0000 (00:13 -0700)
The mux clock handle shall be provided via "fck" DT handle. This avoids
the need to lookup the main clock via hwmod core, which will not work
with the clkctrl clock support anymore; the main clock is not going to
be a mux.

Signed-off-by: Tero Kristo <t-kristo@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/timer.c

index 07dd692c47372f8aa145d00cb5532b75774429c5..af90f95c2433894ed2950538d73451847eb32816 100644 (file)
@@ -255,6 +255,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
 
                timer->io_base = of_iomap(np, 0);
 
+               timer->fclk = of_clk_get_by_name(np, "fck");
+
                of_node_put(np);
        } else {
                if (omap_dm_timer_reserve_systimer(timer->id))
@@ -292,7 +294,8 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
        omap_hwmod_setup_one(oh_name);
 
        /* After the dmtimer is using hwmod these clocks won't be needed */
-       timer->fclk = clk_get(NULL, omap_hwmod_get_main_clk(oh));
+       if (IS_ERR_OR_NULL(timer->fclk))
+               timer->fclk = clk_get(NULL, omap_hwmod_get_main_clk(oh));
        if (IS_ERR(timer->fclk))
                return PTR_ERR(timer->fclk);