lkml.org 
[lkml]   [2014]   [Apr]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 17/26] ARM: OMAP2+: timer: Add fallback for of_clk_get
    Date
    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 <joelf@ti.com>
    ---
    arch/arm/mach-omap2/timer.c | 25 ++++++++++++++++++-------
    1 file changed, 18 insertions(+), 7 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,12 +318,17 @@ static int __init omap_dm_timer_init_one(struct omap_dm_timer *timer,
    if (!timer->io_base)
    return -ENXIO;

    + 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);
    -
    - omap_hwmod_setup_one(oh_name);
    - omap_hwmod_enable(oh);
    }

    /*
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2014-04-25 01:21    [W:4.043 / U:0.400 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site