spin_unlock_irqrestore(&rtc_lock, flags);
int m48t37y_set_time(unsigned long sec){	struct rtc_time tm;	/* convert to a more useful format -- note months count from 0 */	to_tm(sec, &tm);	tm.tm_mon += 1;	/* enable writing */	rtc_base[0x7ff8] = 0x80;	/* year */	rtc_base[0x7fff] = CONV_BIN_TO_BCD(tm.tm_year % 100);	rtc_base[0x7ff1] = CONV_BIN_TO_BCD(tm.tm_year / 100);	/* month */	rtc_base[0x7ffe] = CONV_BIN_TO_BCD(tm.tm_mon);	/* day */	rtc_base[0x7ffd] = CONV_BIN_TO_BCD(tm.tm_mday);	/* hour/min/sec */	rtc_base[0x7ffb] = CONV_BIN_TO_BCD(tm.tm_hour);	rtc_base[0x7ffa] = CONV_BIN_TO_BCD(tm.tm_min);	rtc_base[0x7ff9] = CONV_BIN_TO_BCD(tm.tm_sec);	/* day of week -- not really used, but let's keep it up-to-date */	rtc_base[0x7ffc] = CONV_BIN_TO_BCD(tm.tm_wday + 1);	/* disable writing */	rtc_base[0x7ff8] = 0x00;	return 0;}