sh: rtc-generic support.
This adds rtc-generic support for SUPERH32. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
5be7c0a4d3
commit
47c8a08bbe
4 changed files with 36 additions and 1 deletions
|
@ -30,6 +30,7 @@ config SUPERH32
|
|||
select HAVE_DYNAMIC_FTRACE
|
||||
select HAVE_ARCH_KGDB
|
||||
select ARCH_HIBERNATION_POSSIBLE if MMU
|
||||
select RTC_LIB
|
||||
|
||||
config SUPERH64
|
||||
def_bool ARCH = "sh64"
|
||||
|
|
|
@ -6,6 +6,17 @@ extern void (*board_time_init)(void);
|
|||
extern void (*rtc_sh_get_time)(struct timespec *);
|
||||
extern int (*rtc_sh_set_time)(const time_t);
|
||||
|
||||
/* some dummy definitions */
|
||||
#define RTC_BATT_BAD 0x100 /* battery bad */
|
||||
#define RTC_SQWE 0x08 /* enable square-wave output */
|
||||
#define RTC_DM_BINARY 0x04 /* all time/date values are BCD if clear */
|
||||
#define RTC_24H 0x02 /* 24 hour mode - else hours bit 7 means pm */
|
||||
#define RTC_DST_EN 0x01 /* auto switch DST - works f. USA only */
|
||||
|
||||
struct rtc_time;
|
||||
unsigned int get_rtc_time(struct rtc_time *);
|
||||
int set_rtc_time(struct rtc_time *);
|
||||
|
||||
#define RTC_CAP_4_DIGIT_YEAR (1 << 0)
|
||||
|
||||
struct sh_rtc_platform_info {
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -692,7 +692,7 @@ config RTC_DRV_GENERIC
|
|||
tristate "Generic RTC support"
|
||||
# Please consider writing a new RTC driver instead of using the generic
|
||||
# RTC abstraction
|
||||
depends on PARISC || M68K || PPC
|
||||
depends on PARISC || M68K || PPC || SUPERH32
|
||||
help
|
||||
Say Y or M here to enable RTC support on systems using the generic
|
||||
RTC abstraction. If you do not know what you are doing, you should
|
||||
|
|
Loading…
Reference in a new issue