Lines Matching +full:start +full:- +full:year

10  * SPDX-License-Identifier:	GPL-2.0+
14 * STMicroelectronics M41T60 serial access real-time clock
28 * assume years are in the range 1900 - 2299.
31 static unsigned char year2cb(unsigned const year) in year2cb() argument
33 if (year < 1900 || year >= 2300) in year2cb()
34 printf("M41T60 RTC: year %d out of range\n", year); in year2cb()
36 return (year / 100) & 0x3; in year2cb()
69 printf("RTC dump %s: %02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X\n", in rtc_dump()
81 * determine whether there has been an initial power-up since the last in rtc_validate()
100 * oscillator so it can be "kick-started" as per data sheet. in rtc_validate()
112 * OUT bit to "0", reset the date registers, and start the oscillator. in rtc_validate()
130 * Set to 00:00:00 1900-01-01 (Monday) in rtc_validate()
154 return -1; in rtc_get()
156 tmp->tm_sec = bcd2bin(data[RTC_SEC] & 0x7F); in rtc_get()
157 tmp->tm_min = bcd2bin(data[RTC_MIN] & 0x7F); in rtc_get()
158 tmp->tm_hour = bcd2bin(data[RTC_HOUR] & 0x3F); in rtc_get()
159 tmp->tm_mday = bcd2bin(data[RTC_DATE] & 0x3F); in rtc_get()
160 tmp->tm_mon = bcd2bin(data[RTC_MONTH] & 0x1F); in rtc_get()
161 tmp->tm_year = cb2year(data[RTC_MONTH] >> 6) + bcd2bin(data[RTC_YEAR]); in rtc_get()
162 tmp->tm_wday = bcd2bin(data[RTC_DAY] & 0x07) - 1; in rtc_get()
163 tmp->tm_yday = 0; in rtc_get()
164 tmp->tm_isdst = 0; in rtc_get()
166 debug("Get DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n", in rtc_get()
167 tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday, in rtc_get()
168 tmp->tm_hour, tmp->tm_min, tmp->tm_sec); in rtc_get()
178 return -1; in rtc_set()
180 debug("Set DATE: %4d-%02d-%02d (wday=%d) TIME: %2d:%02d:%02d\n", in rtc_set()
181 tmp->tm_year, tmp->tm_mon, tmp->tm_mday, tmp->tm_wday, in rtc_set()
182 tmp->tm_hour, tmp->tm_min, tmp->tm_sec); in rtc_set()
184 data[RTC_SEC] = (data[RTC_SEC] & 0x80) | (bin2bcd(tmp->tm_sec) & 0x7F); in rtc_set()
185 data[RTC_MIN] = (data[RTC_MIN] & 0X80) | (bin2bcd(tmp->tm_min) & 0X7F); in rtc_set()
186 data[RTC_HOUR] = bin2bcd(tmp->tm_hour) & 0x3F; in rtc_set()
187 data[RTC_DATE] = bin2bcd(tmp->tm_mday) & 0x3F; in rtc_set()
188 data[RTC_MONTH] = bin2bcd(tmp->tm_mon) & 0x1F; in rtc_set()
189 data[RTC_YEAR] = bin2bcd(tmp->tm_year % 100); in rtc_set()
190 data[RTC_MONTH] |= year2cb(tmp->tm_year) << 6; in rtc_set()
191 data[RTC_DAY] = bin2bcd(tmp->tm_wday + 1) & 0x07; in rtc_set()
194 return -1; in rtc_set()
211 * between 0x00 and 0x3F, inclusive. The five least-significan bits in rtc_reset()