Current OMAP code supports couple of clocksource options based on compilation flag (CONFIG_OMAP_32K_TIMER). The 32KHz sync-timer and a gptimer which can run on 32KHz or system clock (e.g 38.4 MHz) This patch series cleans up the existing 32k-sync timer implementation, movind SoC init code to respective files (mach-omap1/timer32k.c and mach-omap2/timer.c) and uses kernel parameter to override the default clocksource of "counter_32k", also in order to support some OMAP based derivative SoCs like AM33XX which doesn't have 32K sync-timer hardware IP, adds hwmod lookup for omap2+ devices, and if lookup fails then fall back to gp-timer. if(use_gptimer_clksrc == true) gptimer clocksource init; else if (counter_32 init == false) /* Fallback to gptimer */ gptimer clocksource init(; With this, we should be able to support multi-omap boot including devices with/without 32k-sync timer. This patch-series has been boot tested on AM37xEVM platform, it would be helpful if somebody help me to validate it on OMAP1/2 platforms. The patches are also available at (based on linux-omap/master) - https://github.com/hvaibhav/am335x-linux 32ksync-timer-cleanup History: ======== Changes from V5: http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg67163.html - 2 of the original patch-series (1/3 and 2/3) has already been accepted and queued by Paul, so removing them. Also, add 2 new patches, - OMAP2 timer32k cleanup, check for return values. - Changed name of system timers, "gp timer" => "gp_timer". - Moved SoC specific init code to respective files (mach-omap1/timer32k.c and mach-omap2/timer.c) Changes from V4: http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg67019.html - Fix the possible bug, leftover the cnt addr argument to clocksource_mmio_init(). Changes from V3: http://www.mail-archive.com/linux-omap@xxxxxxxxxxxxxxx/msg66462.html - Fixed all review comments from Kevin H * Moved counter_32k CR register offset handling to counter_32k.c file, so now, calling funtion don't have to maintain or add offset to base addr. * Added comment for function omap_init_clocksource_32k() * Used resource_size() for calculate size * Convert WARN_ON to pr_warn Changes from V2: http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/092037.html - Added early_param support to read clocksource selection from user through kernel parameter ("clocksource=") - Converted to ocp_if changes from Paul Changes from V1: http://lists.infradead.org/pipermail/linux-arm-kernel/2012-January/081037.html - Based on Tony's comment, added pbase & size argument to omap_init_clocksource_32k(), to avoid cpu_is_xxx() check. - Added commit description based on discussion on list (Thanks to Santosh here) - Reorder patch sequence Vaibhav Hiremath (3): ARM: OMAP1: FIX: check possible error condition in timer_init ARM: OMAP2+: Replace space=>underscore in the name field of system timers ARM: OMAP: Make OMAP clocksource source selection using kernel param arch/arm/mach-omap1/common.h | 10 ++- arch/arm/mach-omap1/time.c | 16 +---- arch/arm/mach-omap1/timer32k.c | 28 ++++++- arch/arm/mach-omap2/timer.c | 118 +++++++++++++++++++++++------ arch/arm/plat-omap/counter_32k.c | 91 ++++++++++------------- arch/arm/plat-omap/include/plat/common.h | 2 +- 6 files changed, 167 insertions(+), 98 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html