Lines Matching +full:0 +full:- +full:mon
1 // SPDX-License-Identifier: GPL-2.0-only
29 unsigned char century = 0; in mc146818_get_time()
38 * to poll-wait (up to 1s - eeccch) for the falling edge of RTC_UIP. in mc146818_get_time()
51 * by the RTC when initially set to a non-zero value. in mc146818_get_time()
54 time->tm_sec = CMOS_READ(RTC_SECONDS); in mc146818_get_time()
55 time->tm_min = CMOS_READ(RTC_MINUTES); in mc146818_get_time()
56 time->tm_hour = CMOS_READ(RTC_HOURS); in mc146818_get_time()
57 time->tm_mday = CMOS_READ(RTC_DAY_OF_MONTH); in mc146818_get_time()
58 time->tm_mon = CMOS_READ(RTC_MONTH); in mc146818_get_time()
59 time->tm_year = CMOS_READ(RTC_YEAR); in mc146818_get_time()
73 time->tm_sec = bcd2bin(time->tm_sec); in mc146818_get_time()
74 time->tm_min = bcd2bin(time->tm_min); in mc146818_get_time()
75 time->tm_hour = bcd2bin(time->tm_hour); in mc146818_get_time()
76 time->tm_mday = bcd2bin(time->tm_mday); in mc146818_get_time()
77 time->tm_mon = bcd2bin(time->tm_mon); in mc146818_get_time()
78 time->tm_year = bcd2bin(time->tm_year); in mc146818_get_time()
83 time->tm_year += real_year - 72; in mc146818_get_time()
87 time->tm_year += (century - 19) * 100; in mc146818_get_time()
93 if (time->tm_year <= 69) in mc146818_get_time()
94 time->tm_year += 100; in mc146818_get_time()
96 time->tm_mon--; in mc146818_get_time()
106 unsigned char mon, day, hrs, min, sec; in mc146818_set_time() local
112 unsigned char century = 0; in mc146818_set_time()
114 yrs = time->tm_year; in mc146818_set_time()
115 mon = time->tm_mon + 1; /* tm_mon starts at zero */ in mc146818_set_time()
116 day = time->tm_mday; in mc146818_set_time()
117 hrs = time->tm_hour; in mc146818_set_time()
118 min = time->tm_min; in mc146818_set_time()
119 sec = time->tm_sec; in mc146818_set_time()
122 return -EINVAL; in mc146818_set_time()
133 * for non-leap years, so that Feb, 29th is handled in mc146818_set_time()
136 if (!leap_yr && mon < 3) { in mc146818_set_time()
137 real_yrs--; in mc146818_set_time()
155 return -EINVAL; in mc146818_set_time()
159 yrs -= 100; in mc146818_set_time()
167 mon = bin2bcd(mon); in mc146818_set_time()
181 CMOS_WRITE(mon, RTC_MONTH); in mc146818_set_time()
197 return 0; in mc146818_set_time()