Lines Matching refs:tm
261 static int tm2bcd(struct rtc_time *tm) in tm2bcd() argument
263 if (rtc_valid_tm(tm) != 0) in tm2bcd()
266 tm->tm_sec = bin2bcd(tm->tm_sec); in tm2bcd()
267 tm->tm_min = bin2bcd(tm->tm_min); in tm2bcd()
268 tm->tm_hour = bin2bcd(tm->tm_hour); in tm2bcd()
269 tm->tm_mday = bin2bcd(tm->tm_mday); in tm2bcd()
271 tm->tm_mon = bin2bcd(tm->tm_mon + 1); in tm2bcd()
274 if (tm->tm_year < 100 || tm->tm_year > 199) in tm2bcd()
276 tm->tm_year = bin2bcd(tm->tm_year - 100); in tm2bcd()
281 static void bcd2tm(struct rtc_time *tm) in bcd2tm() argument
283 tm->tm_sec = bcd2bin(tm->tm_sec); in bcd2tm()
284 tm->tm_min = bcd2bin(tm->tm_min); in bcd2tm()
285 tm->tm_hour = bcd2bin(tm->tm_hour); in bcd2tm()
286 tm->tm_mday = bcd2bin(tm->tm_mday); in bcd2tm()
287 tm->tm_mon = bcd2bin(tm->tm_mon) - 1; in bcd2tm()
289 tm->tm_year = bcd2bin(tm->tm_year) + 100; in bcd2tm()
292 static void omap_rtc_read_time_raw(struct omap_rtc *rtc, struct rtc_time *tm) in omap_rtc_read_time_raw() argument
294 tm->tm_sec = rtc_read(rtc, OMAP_RTC_SECONDS_REG); in omap_rtc_read_time_raw()
295 tm->tm_min = rtc_read(rtc, OMAP_RTC_MINUTES_REG); in omap_rtc_read_time_raw()
296 tm->tm_hour = rtc_read(rtc, OMAP_RTC_HOURS_REG); in omap_rtc_read_time_raw()
297 tm->tm_mday = rtc_read(rtc, OMAP_RTC_DAYS_REG); in omap_rtc_read_time_raw()
298 tm->tm_mon = rtc_read(rtc, OMAP_RTC_MONTHS_REG); in omap_rtc_read_time_raw()
299 tm->tm_year = rtc_read(rtc, OMAP_RTC_YEARS_REG); in omap_rtc_read_time_raw()
302 static int omap_rtc_read_time(struct device *dev, struct rtc_time *tm) in omap_rtc_read_time() argument
309 omap_rtc_read_time_raw(rtc, tm); in omap_rtc_read_time()
312 bcd2tm(tm); in omap_rtc_read_time()
317 static int omap_rtc_set_time(struct device *dev, struct rtc_time *tm) in omap_rtc_set_time() argument
321 if (tm2bcd(tm) < 0) in omap_rtc_set_time()
328 rtc_write(rtc, OMAP_RTC_YEARS_REG, tm->tm_year); in omap_rtc_set_time()
329 rtc_write(rtc, OMAP_RTC_MONTHS_REG, tm->tm_mon); in omap_rtc_set_time()
330 rtc_write(rtc, OMAP_RTC_DAYS_REG, tm->tm_mday); in omap_rtc_set_time()
331 rtc_write(rtc, OMAP_RTC_HOURS_REG, tm->tm_hour); in omap_rtc_set_time()
332 rtc_write(rtc, OMAP_RTC_MINUTES_REG, tm->tm_min); in omap_rtc_set_time()
333 rtc_write(rtc, OMAP_RTC_SECONDS_REG, tm->tm_sec); in omap_rtc_set_time()
425 struct rtc_time tm; in omap_rtc_power_off() local
435 omap_rtc_read_time_raw(rtc, &tm); in omap_rtc_power_off()
436 bcd2tm(&tm); in omap_rtc_power_off()
437 rtc_tm_to_time(&tm, &now); in omap_rtc_power_off()
438 rtc_time_to_tm(now + 2, &tm); in omap_rtc_power_off()
440 if (tm2bcd(&tm) < 0) { in omap_rtc_power_off()
447 rtc_write(rtc, OMAP_RTC_ALARM2_SECONDS_REG, tm.tm_sec); in omap_rtc_power_off()
448 rtc_write(rtc, OMAP_RTC_ALARM2_MINUTES_REG, tm.tm_min); in omap_rtc_power_off()
449 rtc_write(rtc, OMAP_RTC_ALARM2_HOURS_REG, tm.tm_hour); in omap_rtc_power_off()
450 rtc_write(rtc, OMAP_RTC_ALARM2_DAYS_REG, tm.tm_mday); in omap_rtc_power_off()
451 rtc_write(rtc, OMAP_RTC_ALARM2_MONTHS_REG, tm.tm_mon); in omap_rtc_power_off()
452 rtc_write(rtc, OMAP_RTC_ALARM2_YEARS_REG, tm.tm_year); in omap_rtc_power_off()