diff options
author | Paul Mundt <lethal@linux-sh.org> | 2009-04-27 17:34:39 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2009-04-27 17:34:39 +0900 |
commit | 47c8a08bbe77ad3c06f63919a14b0f0b0cd54390 (patch) | |
tree | 0cc31001058390e56bb1437553adfbe451cd714d /arch/sh/kernel/time_32.c | |
parent | 5be7c0a4d3dfe25091f2e4e524103e81d9e7e180 (diff) |
sh: rtc-generic support.
This adds rtc-generic support for SUPERH32.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/time_32.c')
-rw-r--r-- | arch/sh/kernel/time_32.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/sh/kernel/time_32.c b/arch/sh/kernel/time_32.c index c770413c3213..109409f5ca53 100644 --- a/arch/sh/kernel/time_32.c +++ b/arch/sh/kernel/time_32.c @@ -19,6 +19,7 @@ #include <linux/mc146818rtc.h> /* for rtc_lock */ #include <linux/platform_device.h> #include <linux/smp.h> +#include <linux/rtc.h> #include <asm/clock.h> #include <asm/rtc.h> #include <asm/timer.h> @@ -45,6 +46,28 @@ static int null_rtc_set_time(const time_t secs) void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time; int (*rtc_sh_set_time)(const time_t) = null_rtc_set_time; +unsigned int get_rtc_time(struct rtc_time *tm) +{ + if (rtc_sh_get_time != null_rtc_get_time) { + struct timespec tv; + + rtc_sh_get_time(&tv); + rtc_time_to_tm(tv.tv_sec, tm); + } + + return RTC_24H; +} +EXPORT_SYMBOL(get_rtc_time); + +int set_rtc_time(struct rtc_time *tm) +{ + unsigned long secs; + + rtc_tm_to_time(tm, &secs); + return rtc_sh_set_time(secs); +} +EXPORT_SYMBOL(set_rtc_time); + #ifndef CONFIG_GENERIC_TIME void do_gettimeofday(struct timeval *tv) { |