diff options
author | Johan Hovold <[email protected]> | 2014-12-10 15:53:07 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2014-12-10 17:41:14 -0800 |
commit | cbbe326fa8ad0fddb91e2d77d992d95e9137412d (patch) | |
tree | ac3983ae2bc0ace7b4fd02f02efa74c16cab0252 | |
parent | 9291e340fc630b62552fe9dcffca0a1706da5410 (diff) |
rtc: omap: add helper to read raw bcd time
Add helper to read raw BCD time that can be used in interrupt context.
Signed-off-by: Johan Hovold <[email protected]>
Cc: Alessandro Zummo <[email protected]>
Cc: Tony Lindgren <[email protected]>
Cc: Benot Cousson <[email protected]>
Cc: Lokesh Vutla <[email protected]>
Cc: Guenter Roeck <[email protected]>
Cc: Sekhar Nori <[email protected]>
Cc: Tero Kristo <[email protected]>
Cc: Keerthy J <[email protected]>
Tested-by: Felipe Balbi <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/rtc/rtc-omap.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/rtc/rtc-omap.c b/drivers/rtc/rtc-omap.c index ee20f2d36065..bcdf3c596214 100644 --- a/drivers/rtc/rtc-omap.c +++ b/drivers/rtc/rtc-omap.c @@ -234,22 +234,24 @@ static void bcd2tm(struct rtc_time *tm) tm->tm_year = bcd2bin(tm->tm_year) + 100; } - -static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm) +static void omap_rtc_read_time_raw(struct omap_rtc *rtc, struct rtc_time *tm) { - struct omap_rtc *rtc = dev_get_drvdata(dev); - - /* we don't report wday/yday/isdst ... */ - local_irq_disable(); - rtc_wait_not_busy(rtc); - tm->tm_sec = rtc_read(rtc, OMAP_RTC_SECONDS_REG); tm->tm_min = rtc_read(rtc, OMAP_RTC_MINUTES_REG); tm->tm_hour = rtc_read(rtc, OMAP_RTC_HOURS_REG); tm->tm_mday = rtc_read(rtc, OMAP_RTC_DAYS_REG); tm->tm_mon = rtc_read(rtc, OMAP_RTC_MONTHS_REG); tm->tm_year = rtc_read(rtc, OMAP_RTC_YEARS_REG); +} + +static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm) +{ + struct omap_rtc *rtc = dev_get_drvdata(dev); + /* we don't report wday/yday/isdst ... */ + local_irq_disable(); + rtc_wait_not_busy(rtc); + omap_rtc_read_time_raw(rtc, tm); local_irq_enable(); bcd2tm(tm); |