sh: CMT clockevent platform driver

SuperH CMT clockevent driver.

Both 16-bit and 32-bit CMT versions are supported, but only 32-bit
is tested. This driver contains support for both clockevents and
clocksources, but no unregistration is supported at this point.

Works fine as clock source and/or event in periodic or oneshot mode.
Tested on sh7722 and sh7723, but should work with any cpu/architecture.

This version is lacking clocksource and early platform driver support
for now - this to minimize the amount of dependencies.

Signed-off-by: Magnus Damm <damm@igel.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Magnus Damm
2009-01-22 09:55:59 +00:00
committed by Paul Mundt
parent 07821d3310
commit 3fb1b6ad06
4 changed files with 637 additions and 0 deletions
+8
View File
@@ -397,6 +397,14 @@ source "arch/sh/boards/Kconfig"
menu "Timer and clock configuration"
config SH_TIMER_CMT
def_bool n
prompt "CMT support"
select GENERIC_TIME
select GENERIC_CLOCKEVENTS
help
This enables build of the CMT system timer driver.
config SH_TMU
def_bool y
prompt "TMU timer support"
+1
View File
@@ -2,3 +2,4 @@ obj-$(CONFIG_ATMEL_TCB_CLKSRC) += tcb_clksrc.o
obj-$(CONFIG_X86_CYCLONE_TIMER) += cyclone.o
obj-$(CONFIG_X86_PM_TIMER) += acpi_pm.o
obj-$(CONFIG_SCx200HR_TIMER) += scx200_hrt.o
obj-$(CONFIG_SH_TIMER_CMT) += sh_cmt.o
File diff suppressed because it is too large Load Diff
+13
View File
@@ -0,0 +1,13 @@
#ifndef __SH_CMT_H__
#define __SH_CMT_H__
struct sh_cmt_config {
char *name;
unsigned long channel_offset;
int timer_bit;
char *clk;
unsigned long clockevent_rating;
unsigned long clocksource_rating;
};
#endif /* __SH_CMT_H__ */