/* interface */ unsigned long ds1603_read(void) { unsigned long word; rtc_init_op(); rtc_write_byte(READ_TIME_CMD); word = rtc_read_word(); rtc_end_op(); return word; }
void read_persistent_clock(struct timespec *ts) { unsigned long word; unsigned long flags; spin_lock_irqsave(&rtc_lock, flags); rtc_init_op(); rtc_write_byte(READ_TIME_CMD); word = rtc_read_word(); rtc_end_op(); spin_unlock_irqrestore(&rtc_lock, flags); ts->tv_sec = word; ts->tv_nsec = 0; }