clockevents: Add a clkevt-of mechanism like clksrc-of
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 19 Apr 2016 06:56:27 +0000 (08:56 +0200)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Tue, 7 Feb 2017 19:58:30 +0000 (20:58 +0100)
commit376bc27150f180d9f5eddec6a14117780177589d
tree351ff374c682dfe42c0e24e4c1df5b02bd01e824
parent668802c25729a8e3423015c33c05f1c3be3858e9
clockevents: Add a clkevt-of mechanism like clksrc-of

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: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/clocksource/clkevt-probe.c [new file with mode: 0644]
include/linux/clockchips.h