Lines Matching refs:tm

353 static int sh_rtc_read_time(struct device *dev, struct rtc_time *tm)  in sh_rtc_read_time()  argument
371 tm->tm_sec = bcd2bin(readb(rtc->regbase + RSECCNT)); in sh_rtc_read_time()
372 tm->tm_min = bcd2bin(readb(rtc->regbase + RMINCNT)); in sh_rtc_read_time()
373 tm->tm_hour = bcd2bin(readb(rtc->regbase + RHRCNT)); in sh_rtc_read_time()
374 tm->tm_wday = bcd2bin(readb(rtc->regbase + RWKCNT)); in sh_rtc_read_time()
375 tm->tm_mday = bcd2bin(readb(rtc->regbase + RDAYCNT)); in sh_rtc_read_time()
376 tm->tm_mon = bcd2bin(readb(rtc->regbase + RMONCNT)) - 1; in sh_rtc_read_time()
387 tm->tm_year = (yr100 * 100 + bcd2bin(yr)) - 1900; in sh_rtc_read_time()
397 tm->tm_sec--; in sh_rtc_read_time()
407 tm->tm_sec, tm->tm_min, tm->tm_hour, in sh_rtc_read_time()
408 tm->tm_mday, tm->tm_mon + 1, tm->tm_year, tm->tm_wday); in sh_rtc_read_time()
410 return rtc_valid_tm(tm); in sh_rtc_read_time()
413 static int sh_rtc_set_time(struct device *dev, struct rtc_time *tm) in sh_rtc_set_time() argument
428 writeb(bin2bcd(tm->tm_sec), rtc->regbase + RSECCNT); in sh_rtc_set_time()
429 writeb(bin2bcd(tm->tm_min), rtc->regbase + RMINCNT); in sh_rtc_set_time()
430 writeb(bin2bcd(tm->tm_hour), rtc->regbase + RHRCNT); in sh_rtc_set_time()
431 writeb(bin2bcd(tm->tm_wday), rtc->regbase + RWKCNT); in sh_rtc_set_time()
432 writeb(bin2bcd(tm->tm_mday), rtc->regbase + RDAYCNT); in sh_rtc_set_time()
433 writeb(bin2bcd(tm->tm_mon + 1), rtc->regbase + RMONCNT); in sh_rtc_set_time()
436 year = (bin2bcd((tm->tm_year + 1900) / 100) << 8) | in sh_rtc_set_time()
437 bin2bcd(tm->tm_year % 100); in sh_rtc_set_time()
440 year = tm->tm_year % 100; in sh_rtc_set_time()
473 struct rtc_time *tm = &wkalrm->time; in sh_rtc_read_alarm() local
477 tm->tm_sec = sh_rtc_read_alarm_value(rtc, RSECAR); in sh_rtc_read_alarm()
478 tm->tm_min = sh_rtc_read_alarm_value(rtc, RMINAR); in sh_rtc_read_alarm()
479 tm->tm_hour = sh_rtc_read_alarm_value(rtc, RHRAR); in sh_rtc_read_alarm()
480 tm->tm_wday = sh_rtc_read_alarm_value(rtc, RWKAR); in sh_rtc_read_alarm()
481 tm->tm_mday = sh_rtc_read_alarm_value(rtc, RDAYAR); in sh_rtc_read_alarm()
482 tm->tm_mon = sh_rtc_read_alarm_value(rtc, RMONAR); in sh_rtc_read_alarm()
483 if (tm->tm_mon > 0) in sh_rtc_read_alarm()
484 tm->tm_mon -= 1; /* RTC is 1-12, tm_mon is 0-11 */ in sh_rtc_read_alarm()
485 tm->tm_year = 0xffff; in sh_rtc_read_alarm()
504 static int sh_rtc_check_alarm(struct rtc_time *tm) in sh_rtc_check_alarm() argument
512 if (tm->tm_year == 0xffff) in sh_rtc_check_alarm()
513 tm->tm_year = -1; in sh_rtc_check_alarm()
514 if (tm->tm_mon >= 0xff) in sh_rtc_check_alarm()
515 tm->tm_mon = -1; in sh_rtc_check_alarm()
516 if (tm->tm_mday >= 0xff) in sh_rtc_check_alarm()
517 tm->tm_mday = -1; in sh_rtc_check_alarm()
518 if (tm->tm_wday >= 0xff) in sh_rtc_check_alarm()
519 tm->tm_wday = -1; in sh_rtc_check_alarm()
520 if (tm->tm_hour >= 0xff) in sh_rtc_check_alarm()
521 tm->tm_hour = -1; in sh_rtc_check_alarm()
522 if (tm->tm_min >= 0xff) in sh_rtc_check_alarm()
523 tm->tm_min = -1; in sh_rtc_check_alarm()
524 if (tm->tm_sec >= 0xff) in sh_rtc_check_alarm()
525 tm->tm_sec = -1; in sh_rtc_check_alarm()
527 if (tm->tm_year > 9999 || in sh_rtc_check_alarm()
528 tm->tm_mon >= 12 || in sh_rtc_check_alarm()
529 tm->tm_mday == 0 || tm->tm_mday >= 32 || in sh_rtc_check_alarm()
530 tm->tm_wday >= 7 || in sh_rtc_check_alarm()
531 tm->tm_hour >= 24 || in sh_rtc_check_alarm()
532 tm->tm_min >= 60 || in sh_rtc_check_alarm()
533 tm->tm_sec >= 60) in sh_rtc_check_alarm()
544 struct rtc_time *tm = &wkalrm->time; in sh_rtc_set_alarm() local
547 err = sh_rtc_check_alarm(tm); in sh_rtc_set_alarm()
559 sh_rtc_write_alarm_value(rtc, tm->tm_sec, RSECAR); in sh_rtc_set_alarm()
560 sh_rtc_write_alarm_value(rtc, tm->tm_min, RMINAR); in sh_rtc_set_alarm()
561 sh_rtc_write_alarm_value(rtc, tm->tm_hour, RHRAR); in sh_rtc_set_alarm()
562 sh_rtc_write_alarm_value(rtc, tm->tm_wday, RWKAR); in sh_rtc_set_alarm()
563 sh_rtc_write_alarm_value(rtc, tm->tm_mday, RDAYAR); in sh_rtc_set_alarm()
564 mon = tm->tm_mon; in sh_rtc_set_alarm()