Loading arch/sh/Kconfig +1 −0 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,7 @@ config SUPERH32 select HAVE_DYNAMIC_FTRACE select HAVE_DYNAMIC_FTRACE select HAVE_ARCH_KGDB select HAVE_ARCH_KGDB select ARCH_HIBERNATION_POSSIBLE if MMU select ARCH_HIBERNATION_POSSIBLE if MMU select RTC_LIB config SUPERH64 config SUPERH64 def_bool ARCH = "sh64" def_bool ARCH = "sh64" Loading arch/sh/include/asm/rtc.h +11 −0 Original line number Original line Diff line number Diff line Loading @@ -6,6 +6,17 @@ extern void (*board_time_init)(void); extern void (*rtc_sh_get_time)(struct timespec *); extern void (*rtc_sh_get_time)(struct timespec *); extern int (*rtc_sh_set_time)(const time_t); 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) #define RTC_CAP_4_DIGIT_YEAR (1 << 0) struct sh_rtc_platform_info { struct sh_rtc_platform_info { Loading arch/sh/kernel/time_32.c +23 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <linux/mc146818rtc.h> /* for rtc_lock */ #include <linux/mc146818rtc.h> /* for rtc_lock */ #include <linux/platform_device.h> #include <linux/platform_device.h> #include <linux/smp.h> #include <linux/smp.h> #include <linux/rtc.h> #include <asm/clock.h> #include <asm/clock.h> #include <asm/rtc.h> #include <asm/rtc.h> #include <asm/timer.h> #include <asm/timer.h> Loading @@ -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; void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time; int (*rtc_sh_set_time)(const time_t) = null_rtc_set_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 #ifndef CONFIG_GENERIC_TIME void do_gettimeofday(struct timeval *tv) void do_gettimeofday(struct timeval *tv) { { Loading drivers/rtc/Kconfig +1 −1 Original line number Original line Diff line number Diff line Loading @@ -692,7 +692,7 @@ config RTC_DRV_GENERIC tristate "Generic RTC support" tristate "Generic RTC support" # Please consider writing a new RTC driver instead of using the generic # Please consider writing a new RTC driver instead of using the generic # RTC abstraction # RTC abstraction depends on PARISC || M68K || PPC depends on PARISC || M68K || PPC || SUPERH32 help help Say Y or M here to enable RTC support on systems using the generic 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 RTC abstraction. If you do not know what you are doing, you should Loading Loading
arch/sh/Kconfig +1 −0 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,7 @@ config SUPERH32 select HAVE_DYNAMIC_FTRACE select HAVE_DYNAMIC_FTRACE select HAVE_ARCH_KGDB select HAVE_ARCH_KGDB select ARCH_HIBERNATION_POSSIBLE if MMU select ARCH_HIBERNATION_POSSIBLE if MMU select RTC_LIB config SUPERH64 config SUPERH64 def_bool ARCH = "sh64" def_bool ARCH = "sh64" Loading
arch/sh/include/asm/rtc.h +11 −0 Original line number Original line Diff line number Diff line Loading @@ -6,6 +6,17 @@ extern void (*board_time_init)(void); extern void (*rtc_sh_get_time)(struct timespec *); extern void (*rtc_sh_get_time)(struct timespec *); extern int (*rtc_sh_set_time)(const time_t); 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) #define RTC_CAP_4_DIGIT_YEAR (1 << 0) struct sh_rtc_platform_info { struct sh_rtc_platform_info { Loading
arch/sh/kernel/time_32.c +23 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,7 @@ #include <linux/mc146818rtc.h> /* for rtc_lock */ #include <linux/mc146818rtc.h> /* for rtc_lock */ #include <linux/platform_device.h> #include <linux/platform_device.h> #include <linux/smp.h> #include <linux/smp.h> #include <linux/rtc.h> #include <asm/clock.h> #include <asm/clock.h> #include <asm/rtc.h> #include <asm/rtc.h> #include <asm/timer.h> #include <asm/timer.h> Loading @@ -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; void (*rtc_sh_get_time)(struct timespec *) = null_rtc_get_time; int (*rtc_sh_set_time)(const time_t) = null_rtc_set_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 #ifndef CONFIG_GENERIC_TIME void do_gettimeofday(struct timeval *tv) void do_gettimeofday(struct timeval *tv) { { Loading
drivers/rtc/Kconfig +1 −1 Original line number Original line Diff line number Diff line Loading @@ -692,7 +692,7 @@ config RTC_DRV_GENERIC tristate "Generic RTC support" tristate "Generic RTC support" # Please consider writing a new RTC driver instead of using the generic # Please consider writing a new RTC driver instead of using the generic # RTC abstraction # RTC abstraction depends on PARISC || M68K || PPC depends on PARISC || M68K || PPC || SUPERH32 help help Say Y or M here to enable RTC support on systems using the generic 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 RTC abstraction. If you do not know what you are doing, you should Loading