summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/timer.c
diff options
context:
space:
mode:
authorTarun Kanti DebBarma2011-09-20 13:30:20 +0200
committerTony Lindgren2011-09-22 00:50:31 +0200
commit3392cdd33a0419e3226910a08b8bdc43b56c95d0 (patch)
treea5cf298efd7c9d3fc0a19e713ff7926bcbb938e9 /arch/arm/mach-omap2/timer.c
parentARM: OMAP: dmtimer: platform driver (diff)
downloadkernel-qcow2-linux-3392cdd33a0419e3226910a08b8bdc43b56c95d0.tar.gz
kernel-qcow2-linux-3392cdd33a0419e3226910a08b8bdc43b56c95d0.tar.xz
kernel-qcow2-linux-3392cdd33a0419e3226910a08b8bdc43b56c95d0.zip
ARM: OMAP: dmtimer: switch-over to platform device driver
Register timer devices by going through hwmod database using hwmod API. The driver probes each of the registered devices. Functionality which are already performed by hwmod framework are removed from timer code. New set of timers present on OMAP4 are now supported. Signed-off-by: Tarun Kanti DebBarma <tarun.kanti@ti.com> Acked-by: Cousson, Benoit <b-cousson@ti.com> [tony@atomide.com: folded in spinlock changes, left out is_omap2] Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/timer.c')
-rw-r--r--arch/arm/mach-omap2/timer.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c
index b2829ee0c4e4..9c2f58895a16 100644
--- a/arch/arm/mach-omap2/timer.c
+++ b/arch/arm/mach-omap2/timer.c
@@ -478,3 +478,23 @@ static int __init omap_timer_init(struct omap_hwmod *oh, void *unused)
return ret;
}
+
+/**
+ * omap2_dm_timer_init - top level regular device initialization
+ *
+ * Uses dedicated hwmod api to parse through hwmod database for
+ * given class name and then build and register the timer device.
+ */
+static int __init omap2_dm_timer_init(void)
+{
+ int ret;
+
+ ret = omap_hwmod_for_each_by_class("timer", omap_timer_init, NULL);
+ if (unlikely(ret)) {
+ pr_err("%s: device registration failed.\n", __func__);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+arch_initcall(omap2_dm_timer_init);