]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arm/mach-msm/timer.c
ARM: msm: Migrate msm_timer to CLOCKSOURCE_OF_DECLARE
[karo-tx-linux.git] / arch / arm / mach-msm / timer.c
index b6418fd5fe0dc49eb6c6fbfef7d30b918ba2e193..57a9aecd4f418ecaaa2eca8314e7e0ea30bfb618 100644 (file)
@@ -139,7 +139,7 @@ static struct clocksource msm_clocksource = {
 };
 
 #ifdef CONFIG_LOCAL_TIMERS
-static int __cpuinit msm_local_timer_setup(struct clock_event_device *evt)
+static int msm_local_timer_setup(struct clock_event_device *evt)
 {
        /* Use existing clock_event for cpu 0 */
        if (!smp_processor_id())
@@ -164,7 +164,7 @@ static void msm_local_timer_stop(struct clock_event_device *evt)
        disable_percpu_irq(evt->irq);
 }
 
-static struct local_timer_ops msm_local_timer_ops __cpuinitdata = {
+static struct local_timer_ops msm_local_timer_ops = {
        .setup  = msm_local_timer_setup,
        .stop   = msm_local_timer_stop,
 };
@@ -219,15 +219,8 @@ err:
 }
 
 #ifdef CONFIG_OF
-static const struct of_device_id msm_timer_match[] __initconst = {
-       { .compatible = "qcom,kpss-timer" },
-       { .compatible = "qcom,scss-timer" },
-       { },
-};
-
-void __init msm_dt_timer_init(void)
+static void __init msm_dt_timer_init(struct device_node *np)
 {
-       struct device_node *np;
        u32 freq;
        int irq;
        struct resource res;
@@ -235,12 +228,6 @@ void __init msm_dt_timer_init(void)
        void __iomem *base;
        void __iomem *cpu0_base;
 
-       np = of_find_matching_node(NULL, msm_timer_match);
-       if (!np) {
-               pr_err("Can't find msm timer DT node\n");
-               return;
-       }
-
        base = of_iomap(np, 0);
        if (!base) {
                pr_err("Failed to map event base\n");
@@ -283,6 +270,8 @@ void __init msm_dt_timer_init(void)
 
        msm_timer_init(freq, 32, irq, !!percpu_offset);
 }
+CLOCKSOURCE_OF_DECLARE(kpss_timer, "qcom,kpss-timer", msm_dt_timer_init);
+CLOCKSOURCE_OF_DECLARE(scss_timer, "qcom,scss-timer", msm_dt_timer_init);
 #endif
 
 static int __init msm_timer_map(phys_addr_t addr, u32 event, u32 source,