Re: [PATCH 7/8] ARM: OMAP2+: timer: Add fallback for of_clk_get

2014-07-21 Thread Tony Lindgren
* Joel Fernandes jo...@ti.com [140422 18:27]:
 Not all platforms currently will support of_clk_get on timer
 because they may not have clock property in their DT nodes. Add
 code to handle this case so that things are kept working. Finally
 we can delete this code once all system timer nodes have a clock
 property.

I think this needs updating now too? Might be best to fix the
platforms that don't have clocks available yet via DT instead :)

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 7/8] ARM: OMAP2+: timer: Add fallback for of_clk_get

2014-04-22 Thread Joel Fernandes
Not all platforms currently will support of_clk_get on timer
because they may not have clock property in their DT nodes. Add
code to handle this case so that things are kept working. Finally
we can delete this code once all system timer nodes have a clock
property.

Signed-off-by: Joel Fernandes jo...@ti.com
---
 arch/arm/mach-omap2/timer.c |   27 +++
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index 519ccfd..b3db1da 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -277,13 +277,19 @@ static int __init omap_dm_timer_init_one(struct 
omap_dm_timer *timer,
if (!timer-io_base)
return -ENXIO;
 
-   timer-fclk = of_clk_get(np, 0);
-   if (IS_ERR(timer-fclk))
-   return PTR_ERR(timer-fclk);
-
r = omap_dmtimer_powerup(np);
if (r)
return r;
+
+   timer-fclk = of_clk_get(np, 0);
+   if (IS_ERR(timer-fclk)) {
+   /*
+* Support DT platforms temporarily that don't have
+* clock property in their dts yet. Ultimately this
+* fall back code is to be deleted and we're to return
+* PTR_ERR(timer-fclk) here.
+*/
+   }
} else {
if (omap_dm_timer_reserve_systimer(timer-id))
return -ENODEV;
@@ -312,14 +318,19 @@ static int __init omap_dm_timer_init_one(struct 
omap_dm_timer *timer,
if (!timer-io_base)
return -ENXIO;
 
-   timer-fclk = clk_get(NULL, omap_hwmod_get_main_clk(oh));
-   if (IS_ERR(timer-fclk))
-   return PTR_ERR(timer-fclk);
-
omap_hwmod_setup_one(oh_name);
omap_hwmod_enable(oh);
}
 
+   if (!timer-fclk || IS_ERR(timer-fclk)) {
+   oh = omap_hwmod_lookup(oh_name);
+   if (!oh)
+   return -ENODEV;
+   timer-fclk = clk_get(NULL, omap_hwmod_get_main_clk(oh));
+   if (IS_ERR(timer-fclk))
+   return PTR_ERR(timer-fclk);
+   }
+
/*
 * Clock reparenting code, goes away for DT-boot atleast,
 * once clock layer can do it through DT.
-- 
1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html