Commit 2ceb3ad7 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Kyle McMartin

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: default avatarGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: default avatarAlessandro Zummo <a.zummo@towertech.it>
Signed-off-by: default avatarKyle McMartin <kyle@mcmartin.ca>
parent 3afe6d04
...@@ -36,13 +36,16 @@ static inline unsigned int get_rtc_time(struct rtc_time *time) ...@@ -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.
*/ */
mach_hwclk(0, time); if (mach_hwclk)
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)
{ {
return mach_hwclk(1, time); if (mach_hwclk)
return mach_hwclk(1, time);
return -EINVAL;
} }
static inline unsigned int get_rtc_ss(void) static inline unsigned int get_rtc_ss(void)
......
...@@ -18,6 +18,7 @@ ...@@ -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) ...@@ -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);
...@@ -692,7 +692,7 @@ config RTC_DRV_GENERIC ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment