aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/rtc/rtc-omap.c18
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)
234 tm->tm_year = bcd2bin(tm->tm_year) + 100; 234 tm->tm_year = bcd2bin(tm->tm_year) + 100;
235} 235}
236 236
237 237static void omap_rtc_read_time_raw(struct omap_rtc *rtc, struct rtc_time *tm)
238static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm)
239{ 238{
240 struct omap_rtc *rtc = dev_get_drvdata(dev);
241
242 /* we don't report wday/yday/isdst ... */
243 local_irq_disable();
244 rtc_wait_not_busy(rtc);
245
246 tm->tm_sec = rtc_read(rtc, OMAP_RTC_SECONDS_REG); 239 tm->tm_sec = rtc_read(rtc, OMAP_RTC_SECONDS_REG);
247 tm->tm_min = rtc_read(rtc, OMAP_RTC_MINUTES_REG); 240 tm->tm_min = rtc_read(rtc, OMAP_RTC_MINUTES_REG);
248 tm->tm_hour = rtc_read(rtc, OMAP_RTC_HOURS_REG); 241 tm->tm_hour = rtc_read(rtc, OMAP_RTC_HOURS_REG);
249 tm->tm_mday = rtc_read(rtc, OMAP_RTC_DAYS_REG); 242 tm->tm_mday = rtc_read(rtc, OMAP_RTC_DAYS_REG);
250 tm->tm_mon = rtc_read(rtc, OMAP_RTC_MONTHS_REG); 243 tm->tm_mon = rtc_read(rtc, OMAP_RTC_MONTHS_REG);
251 tm->tm_year = rtc_read(rtc, OMAP_RTC_YEARS_REG); 244 tm->tm_year = rtc_read(rtc, OMAP_RTC_YEARS_REG);
245}
246
247static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm)
248{
249 struct omap_rtc *rtc = dev_get_drvdata(dev);
252 250
251 /* we don't report wday/yday/isdst ... */
252 local_irq_disable();
253 rtc_wait_not_busy(rtc);
254 omap_rtc_read_time_raw(rtc, tm);
253 local_irq_enable(); 255 local_irq_enable();
254 256
255 bcd2tm(tm); 257 bcd2tm(tm);