From ae278a935f086775e8ae31a8ec9f7224ea25ea3c Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Mon, 19 Nov 2012 16:41:20 -0700 Subject: clocksource: add common of_clksrc_init() function It is desirable to move all clocksource drivers to drivers/clocksource, yet each requires its own initialization function. We'd rather not pollute with a header for each function. Instead, create a single of_clksrc_init() function which will determine which clocksource driver to initialize based on device tree. Based on a similar patch for drivers/irqchip by Thomas Petazzoni. Signed-off-by: Stephen Warren --- include/linux/clocksource.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'include/linux/clocksource.h') diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 4dceaf8ae152..7944f14ea947 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h @@ -332,4 +332,13 @@ extern int clocksource_mmio_init(void __iomem *, const char *, extern int clocksource_i8253_init(void); +#ifdef CONFIG_CLKSRC_OF +extern void clocksource_of_init(void); + +#define CLOCKSOURCE_OF_DECLARE(name, compat, fn) \ + static const struct of_device_id __clksrc_of_table_##name \ + __used __section(__clksrc_of_table) \ + = { .compatible = compat, .data = fn }; +#endif + #endif /* _LINUX_CLOCKSOURCE_H */ -- cgit v1.2.3 From e1d7ef1cc472de30995a50ecb9c7aa3361f985f9 Mon Sep 17 00:00:00 2001 From: Stephen Warren Date: Wed, 30 Jan 2013 10:49:30 -0700 Subject: clocksource: always define CLOCKSOURCE_OF_DECLARE This allows clocksource drivers that support both DT and non-DT to always invoke macro CLOCKSOURCE_OF_DECLARE(), rather than wrapping it in a #ifdef CONFIG_CLKSRC_OF, which simplifies their code. Signed-off-by: Stephen Warren Signed-off-by: Olof Johansson --- include/linux/clocksource.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include/linux/clocksource.h') diff --git a/include/linux/clocksource.h b/include/linux/clocksource.h index 7944f14ea947..27cfda427dd9 100644 --- a/include/linux/clocksource.h +++ b/include/linux/clocksource.h @@ -339,6 +339,8 @@ extern void clocksource_of_init(void); static const struct of_device_id __clksrc_of_table_##name \ __used __section(__clksrc_of_table) \ = { .compatible = compat, .data = fn }; +#else +#define CLOCKSOURCE_OF_DECLARE(name, compat, fn) #endif #endif /* _LINUX_CLOCKSOURCE_H */ -- cgit v1.2.3