Skip to content
  • Daniel Lezcano's avatar
    clockevents: Add a clkevt-of mechanism like clksrc-of · 376bc271
    Daniel Lezcano authored
    
    
    The current code uses the CLOCKSOURCE_OF_DECLARE macro to fill the clksrc
    table with a t-uple (name, init_function).
    
    Unfortunately it ends up to the clockevent and the clocksource being
    both initialized with this macro. It is not a problem by itself but there
    is not a clear distinction between a clockevent and a clocksource in the
    code initialization path. Somebody can argue there are the same IP block
    and the same DT node. But conceptually from the software side, there are
    two distincts entities and as is they should be initialized separetely.
    Some drivers which do not have a clocksource end up by using the
    CLOCKSOURCE_OF_DECLARE macro to declare a clockevent.
    
    Another result is the fuzzy organization in the clocksource directory,
    where the clockevents are implemented in the same file than the
    clocksources or file labelled timer-something implementing a clocksource.
    
    This patch provides another macro to specifically declare a clockevent in
    the same way than the clocksource and gives the opportunity to write two
    separate drivers, one for the clocksource and another for the clockevents.
    
    Hopefully, that can help to do some housework in the directory, perhaps
    split the drivers in to entities, for example:
    	- clksrc-rockchip.c
    	- clkevt-rockchip.c
    
    Also, it gives the possibility to declare clocksources separately in the
    DT and then use a clocksource from IP block while while clockevents are
    used from another IP block.
    
    Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
    376bc271