Lines Matching +full:0 +full:- +full:mon

1 // SPDX-License-Identifier: GPL-2.0
35 {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
51 /* Ensure clock and real-time-mode-register are accessible */ in rtc_ioctl()
52 msr = rtc->msr & 0xc0; in rtc_ioctl()
53 rtc->msr = 0x40; in rtc_ioctl()
54 memset(&wtime, 0, sizeof(struct rtc_time)); in rtc_ioctl()
56 wtime.tm_sec = bcd2bin(rtc->bcd_sec); in rtc_ioctl()
57 wtime.tm_min = bcd2bin(rtc->bcd_min); in rtc_ioctl()
58 wtime.tm_hour = bcd2bin(rtc->bcd_hr); in rtc_ioctl()
59 wtime.tm_mday = bcd2bin(rtc->bcd_dom); in rtc_ioctl()
60 wtime.tm_mon = bcd2bin(rtc->bcd_mth)-1; in rtc_ioctl()
61 wtime.tm_year = bcd2bin(rtc->bcd_year); in rtc_ioctl()
64 wtime.tm_wday = bcd2bin(rtc->bcd_dow)-1; in rtc_ioctl()
65 } while (wtime.tm_sec != bcd2bin(rtc->bcd_sec)); in rtc_ioctl()
66 rtc->msr = msr; in rtc_ioctl()
69 -EFAULT : 0; in rtc_ioctl()
74 unsigned char mon, day, hrs, min, sec, leap_yr; in rtc_ioctl() local
78 return -EACCES; in rtc_ioctl()
81 return -EFAULT; in rtc_ioctl()
86 mon = rtc_tm.tm_mon + 1; /* tm_mon starts at zero */ in rtc_ioctl()
94 if ((mon > 12) || (mon < 1) || (day == 0)) in rtc_ioctl()
95 return -EINVAL; in rtc_ioctl()
97 if (day > (days_in_mo[mon] + ((mon == 2) && leap_yr))) in rtc_ioctl()
98 return -EINVAL; in rtc_ioctl()
101 return -EINVAL; in rtc_ioctl()
104 return -EINVAL; in rtc_ioctl()
107 /* Ensure clock and real-time-mode-register are accessible */ in rtc_ioctl()
108 msr = rtc->msr & 0xc0; in rtc_ioctl()
109 rtc->msr = 0x40; in rtc_ioctl()
111 rtc->t0cr_rtmr = yrs%4; in rtc_ioctl()
112 rtc->bcd_tenms = 0; in rtc_ioctl()
113 rtc->bcd_sec = bin2bcd(sec); in rtc_ioctl()
114 rtc->bcd_min = bin2bcd(min); in rtc_ioctl()
115 rtc->bcd_hr = bin2bcd(hrs); in rtc_ioctl()
116 rtc->bcd_dom = bin2bcd(day); in rtc_ioctl()
117 rtc->bcd_mth = bin2bcd(mon); in rtc_ioctl()
118 rtc->bcd_year = bin2bcd(yrs%100); in rtc_ioctl()
119 if (rtc_tm.tm_wday >= 0) in rtc_ioctl()
120 rtc->bcd_dow = bin2bcd(rtc_tm.tm_wday+1); in rtc_ioctl()
121 rtc->t0cr_rtmr = yrs%4 | 0x08; in rtc_ioctl()
123 rtc->msr = msr; in rtc_ioctl()
125 return 0; in rtc_ioctl()
128 return -EINVAL; in rtc_ioctl()
139 return -EBUSY; in rtc_open()
141 return 0; in rtc_open()
147 return 0; in rtc_release()
170 return -ENODEV; in rtc_DP8570A_init()