m68k: Hook up rtc-generic

m68k has been a long time user of the generic RTC abstraction, so hook up
rtc-generic:
  - Create the "rtc-generic" platform device if mach_hwclk is set,
  - Add checks for mach_hwclk, in anticipation of RTC chip drivers being moved
    to drivers/rtc/.

Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
This commit is contained in:
Geert Uytterhoeven 2009-02-19 16:50:46 +01:00 committed by Kyle McMartin
parent 3afe6d0462
commit 2ceb3ad705
3 changed files with 24 additions and 3 deletions

View File

@ -36,13 +36,16 @@ static inline unsigned int get_rtc_time(struct rtc_time *time)
* RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
* by the RTC when initially set to a non-zero value. * by the RTC when initially set to a non-zero value.
*/ */
if (mach_hwclk)
mach_hwclk(0, time); mach_hwclk(0, time);
return RTC_24H; return RTC_24H;
} }
static inline int set_rtc_time(struct rtc_time *time) static inline int set_rtc_time(struct rtc_time *time)
{ {
if (mach_hwclk)
return mach_hwclk(1, time); return mach_hwclk(1, time);
return -EINVAL;
} }
static inline unsigned int get_rtc_ss(void) static inline unsigned int get_rtc_ss(void)

View File

@ -18,6 +18,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/rtc.h> #include <linux/rtc.h>
#include <linux/platform_device.h>
#include <asm/machdep.h> #include <asm/machdep.h>
#include <asm/io.h> #include <asm/io.h>
@ -159,3 +160,20 @@ int do_settimeofday(struct timespec *tv)
} }
EXPORT_SYMBOL(do_settimeofday); EXPORT_SYMBOL(do_settimeofday);
static int __init rtc_init(void)
{
struct platform_device *pdev;
if (!mach_hwclk)
return -ENODEV;
pdev = platform_device_register_simple("rtc-generic", -1, NULL, 0);
if (IS_ERR(pdev))
return PTR_ERR(pdev);
return 0;
}
module_init(rtc_init);

View File

@ -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 depends on PARISC || M68K
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