Lines Matching full:rtc

78     "Enable debug printing of RTC clock I/O; 1=reads, 2=writes, 3=both.");
83 "Trigger one-time IO on RTC clocks; 1=read (and discard), 2=write");
126 SX_SYSINIT(rtc_list_lock_init, &rtc_list_lock, "rtc list");
137 struct rtc_instance *rtc; in settime_task_func() local
140 rtc = arg; in settime_task_func()
141 if (!(rtc->flags & CLOCKF_SETTIME_NO_TS)) { in settime_task_func()
143 if (!(rtc->flags & CLOCKF_SETTIME_NO_ADJ)) { in settime_task_func()
145 timespecadd(&ts, &rtc->resadj, &ts); in settime_task_func()
151 error = CLOCK_SETTIME(rtc->clockdev, &ts); in settime_task_func()
153 device_printf(rtc->clockdev, "CLOCK_SETTIME error %d\n", error); in settime_task_func()
213 struct rtc_instance *rtc, *newrtc; in clock_register_flags() local
229 LIST_FOREACH(rtc, &rtc_list, rtc_entries) { in clock_register_flags()
230 if (rtc->resolution > newrtc->resolution) { in clock_register_flags()
231 LIST_INSERT_BEFORE(rtc, newrtc, rtc_entries); in clock_register_flags()
233 } else if (LIST_NEXT(rtc, rtc_entries) == NULL) { in clock_register_flags()
234 LIST_INSERT_AFTER(rtc, newrtc, rtc_entries); in clock_register_flags()
256 struct rtc_instance *rtc, *tmp; in clock_unregister() local
259 LIST_FOREACH_SAFE(rtc, &rtc_list, rtc_entries, tmp) { in clock_unregister()
260 if (rtc->clockdev == clockdev) { in clock_unregister()
261 LIST_REMOVE(rtc, rtc_entries); in clock_unregister()
266 if (rtc != NULL) { in clock_unregister()
267 taskqueue_cancel_timeout(taskqueue_thread, &rtc->stask, NULL); in clock_unregister()
268 taskqueue_drain_timeout(taskqueue_thread, &rtc->stask); in clock_unregister()
269 free(rtc, M_DEVBUF); in clock_unregister()
276 struct rtc_instance *rtc; in clock_schedule() local
279 LIST_FOREACH(rtc, &rtc_list, rtc_entries) { in clock_schedule()
280 if (rtc->clockdev == clockdev) { in clock_schedule()
281 rtc->schedns = offsetns; in clock_schedule()
291 struct rtc_instance *rtc; in read_clocks() local
296 LIST_FOREACH(rtc, &rtc_list, rtc_entries) { in read_clocks()
297 if ((error = CLOCK_GETTIME(rtc->clockdev, ts)) != 0) in read_clocks()
303 if (!(rtc->flags & CLOCKF_GETTIME_NO_ADJ)) { in read_clocks()
304 timespecadd(ts, &rtc->resadj, ts); in read_clocks()
309 device_printf(rtc->clockdev, in read_clocks()
377 struct rtc_instance *rtc; in resettodr() local
385 LIST_FOREACH(rtc, &rtc_list, rtc_entries) { in resettodr()
386 if (rtc->schedns != 0) { in resettodr()
388 waitns = rtc->schedns - now.tv_nsec; in resettodr()
395 &rtc->stask, -sbt, 0, C_PREL(31)); in resettodr()
414 printf("No registered RTC clocks\n"); in sysctl_clock_do_io()