[ARM] 4989/1: [AT91] SAM9 ClockSource / ClockEvents
authorAndrew Victor <linux@maxim.org.za>
Wed, 16 Apr 2008 19:43:49 +0000 (20:43 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 17 Apr 2008 14:55:54 +0000 (15:55 +0100)
commitad48ce74f70a201c4c1cf3b4e8f6b6203a2e4a8d
tree982ac3f881a9c09115ae9b9723c343ed00dcfc8d
parent11aadac4f6adc032cfd1e41c348a7a568819ed94
[ARM] 4989/1: [AT91] SAM9 ClockSource / ClockEvents

Update AT91SAM9/CAP9 PIT driver to use generic time and clockevent
infrastructure:

 - Clocksource gives sub-microsecond timestamp precision, assuming
 memory is clocked at over 16 MHz.  It's less than a 32 bit counter,
 unless it's is also generating IRQs.

 - Clockevent device supports periodic mode only; no oneshot
 support from this hardware.  No IRQs generated unless it's the
 active clocksource.

Later, another timer (probably from a TC module) can provide a oneshot
clockevent device to get NO_HZ and High-Res-Timer behavior.

This also updates the timekeeping to use the actual master clock rate
on the system, instead of compile-time <asm/arch/timex.h> constants
matching what Atmel's EK boards use.  (Product boards may well differ!)

Plus cleanup:  rename "*_timer*" symbols to "*_pit*" (there are other
timers, but only one PIT); shorter lines; remove needless CPP stuff;
make several symbols static; etc.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-at91/Kconfig
arch/arm/mach-at91/at91sam926x_time.c