rtc: omap: add helper to read raw bcd time
authorJohan Hovold <johan@kernel.org>
Wed, 10 Dec 2014 23:53:07 +0000 (15:53 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Dec 2014 01:41:14 +0000 (17:41 -0800)
Add helper to read raw BCD time that can be used in interrupt context.

Signed-off-by: Johan Hovold <johan@kernel.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: Tony Lindgren <tony@atomide.com>
Cc: Benot Cousson <bcousson@baylibre.com>
Cc: Lokesh Vutla <lokeshvutla@ti.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Sekhar Nori <nsekhar@ti.com>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Keerthy J <j-keerthy@ti.com>
Tested-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-omap.c

index ee20f2d36065f572f84b264309b7a74c4bd4a79a..bcdf3c5962149ec3d61f1c0e4377bd1f52bd67a4 100644 (file)
@@ -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);