void ds1603_set_trimmer(unsigned int trimval) { rtc_init_op(); rtc_write_byte(((trimval << TRIMMER_SHIFT) & TRIMMER_VALUE_MASK) | (TRIMMER_SET_CMD)); rtc_end_op(); }
int ds1603_set(unsigned long time) { rtc_init_op(); rtc_write_byte(SET_TIME_CMD); rtc_write_word(time); rtc_end_op(); return 0; }
/* 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; }
int rtc_mips_set_mmss(unsigned long time) { unsigned long flags; spin_lock_irqsave(&rtc_lock, flags); rtc_init_op(); rtc_write_byte(SET_TIME_CMD); rtc_write_word(time); rtc_end_op(); spin_unlock_irqrestore(&rtc_lock, flags); return 0; }
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; }