Lines Matching refs:tm
173 static void s5m8767_data_to_tm(u8 *data, struct rtc_time *tm, in s5m8767_data_to_tm() argument
176 tm->tm_sec = data[RTC_SEC] & 0x7f; in s5m8767_data_to_tm()
177 tm->tm_min = data[RTC_MIN] & 0x7f; in s5m8767_data_to_tm()
179 tm->tm_hour = data[RTC_HOUR] & 0x1f; in s5m8767_data_to_tm()
181 tm->tm_hour = data[RTC_HOUR] & 0x0f; in s5m8767_data_to_tm()
183 tm->tm_hour += 12; in s5m8767_data_to_tm()
186 tm->tm_wday = ffs(data[RTC_WEEKDAY] & 0x7f); in s5m8767_data_to_tm()
187 tm->tm_mday = data[RTC_DATE] & 0x1f; in s5m8767_data_to_tm()
188 tm->tm_mon = (data[RTC_MONTH] & 0x0f) - 1; in s5m8767_data_to_tm()
189 tm->tm_year = (data[RTC_YEAR1] & 0x7f) + 100; in s5m8767_data_to_tm()
190 tm->tm_yday = 0; in s5m8767_data_to_tm()
191 tm->tm_isdst = 0; in s5m8767_data_to_tm()
194 static int s5m8767_tm_to_data(struct rtc_time *tm, u8 *data) in s5m8767_tm_to_data() argument
196 data[RTC_SEC] = tm->tm_sec; in s5m8767_tm_to_data()
197 data[RTC_MIN] = tm->tm_min; in s5m8767_tm_to_data()
199 if (tm->tm_hour >= 12) in s5m8767_tm_to_data()
200 data[RTC_HOUR] = tm->tm_hour | HOUR_PM_MASK; in s5m8767_tm_to_data()
202 data[RTC_HOUR] = tm->tm_hour & ~HOUR_PM_MASK; in s5m8767_tm_to_data()
204 data[RTC_WEEKDAY] = 1 << tm->tm_wday; in s5m8767_tm_to_data()
205 data[RTC_DATE] = tm->tm_mday; in s5m8767_tm_to_data()
206 data[RTC_MONTH] = tm->tm_mon + 1; in s5m8767_tm_to_data()
207 data[RTC_YEAR1] = tm->tm_year > 100 ? (tm->tm_year - 100) : 0; in s5m8767_tm_to_data()
209 if (tm->tm_year < 100) { in s5m8767_tm_to_data()
211 1900 + tm->tm_year); in s5m8767_tm_to_data()
338 static void s5m8763_data_to_tm(u8 *data, struct rtc_time *tm) in s5m8763_data_to_tm() argument
340 tm->tm_sec = bcd2bin(data[RTC_SEC]); in s5m8763_data_to_tm()
341 tm->tm_min = bcd2bin(data[RTC_MIN]); in s5m8763_data_to_tm()
344 tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x1f); in s5m8763_data_to_tm()
346 tm->tm_hour += 12; in s5m8763_data_to_tm()
348 tm->tm_hour = bcd2bin(data[RTC_HOUR] & 0x3f); in s5m8763_data_to_tm()
351 tm->tm_wday = data[RTC_WEEKDAY] & 0x07; in s5m8763_data_to_tm()
352 tm->tm_mday = bcd2bin(data[RTC_DATE]); in s5m8763_data_to_tm()
353 tm->tm_mon = bcd2bin(data[RTC_MONTH]); in s5m8763_data_to_tm()
354 tm->tm_year = bcd2bin(data[RTC_YEAR1]) + bcd2bin(data[RTC_YEAR2]) * 100; in s5m8763_data_to_tm()
355 tm->tm_year -= 1900; in s5m8763_data_to_tm()
358 static void s5m8763_tm_to_data(struct rtc_time *tm, u8 *data) in s5m8763_tm_to_data() argument
360 data[RTC_SEC] = bin2bcd(tm->tm_sec); in s5m8763_tm_to_data()
361 data[RTC_MIN] = bin2bcd(tm->tm_min); in s5m8763_tm_to_data()
362 data[RTC_HOUR] = bin2bcd(tm->tm_hour); in s5m8763_tm_to_data()
363 data[RTC_WEEKDAY] = tm->tm_wday; in s5m8763_tm_to_data()
364 data[RTC_DATE] = bin2bcd(tm->tm_mday); in s5m8763_tm_to_data()
365 data[RTC_MONTH] = bin2bcd(tm->tm_mon); in s5m8763_tm_to_data()
366 data[RTC_YEAR1] = bin2bcd(tm->tm_year % 100); in s5m8763_tm_to_data()
367 data[RTC_YEAR2] = bin2bcd((tm->tm_year + 1900) / 100); in s5m8763_tm_to_data()
370 static int s5m_rtc_read_time(struct device *dev, struct rtc_time *tm) in s5m_rtc_read_time() argument
395 s5m8763_data_to_tm(data, tm); in s5m_rtc_read_time()
402 s5m8767_data_to_tm(data, tm, info->rtc_24hr_mode); in s5m_rtc_read_time()
410 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, in s5m_rtc_read_time()
411 tm->tm_hour, tm->tm_min, tm->tm_sec, tm->tm_wday); in s5m_rtc_read_time()
416 static int s5m_rtc_set_time(struct device *dev, struct rtc_time *tm) in s5m_rtc_set_time() argument
424 s5m8763_tm_to_data(tm, data); in s5m_rtc_set_time()
430 ret = s5m8767_tm_to_data(tm, data); in s5m_rtc_set_time()
440 1900 + tm->tm_year, 1 + tm->tm_mon, tm->tm_mday, in s5m_rtc_set_time()
441 tm->tm_hour, tm->tm_min, tm->tm_sec, tm->tm_wday); in s5m_rtc_set_time()
508 struct rtc_time tm; in s5m_rtc_stop_alarm() local
515 s5m8767_data_to_tm(data, &tm, info->rtc_24hr_mode); in s5m_rtc_stop_alarm()
517 1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday, in s5m_rtc_stop_alarm()
518 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_wday); in s5m_rtc_stop_alarm()
553 struct rtc_time tm; in s5m_rtc_start_alarm() local
560 s5m8767_data_to_tm(data, &tm, info->rtc_24hr_mode); in s5m_rtc_start_alarm()
562 1900 + tm.tm_year, 1 + tm.tm_mon, tm.tm_mday, in s5m_rtc_start_alarm()
563 tm.tm_hour, tm.tm_min, tm.tm_sec, tm.tm_wday); in s5m_rtc_start_alarm()