mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-03 16:35:06 -05:00
refclock: add new refclock for RTCs
This refclock uses an RTC as reference source. If the RTC doesn't support reporting an update event this source is quite coarse as it usually needs a slow bus access to be read and has a precision of only one second. If reporting an update event is available, the time is read just after such an event which improves precision. Depending on hardware capabilities you might want to combine it with a PPS reference clock sourced from the same chip. Note that you can enable UIE emulation in the Linux kernel to make a RTC without interrupt support look like one with irqs in return for some system and bus overhead. Co-authored-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
This commit is contained in:
committed by
Miroslav Lichvar
parent
65be9d9a02
commit
4f22883f4e
@@ -48,6 +48,7 @@ extern RefclockDriver RCL_SHM_driver;
|
||||
extern RefclockDriver RCL_SOCK_driver;
|
||||
extern RefclockDriver RCL_PPS_driver;
|
||||
extern RefclockDriver RCL_PHC_driver;
|
||||
extern RefclockDriver RCL_RTC_driver;
|
||||
|
||||
struct FilterSample {
|
||||
double offset;
|
||||
@@ -160,6 +161,8 @@ RCL_AddRefclock(RefclockParameters *params)
|
||||
inst->driver = &RCL_PPS_driver;
|
||||
} else if (strcmp(params->driver_name, "PHC") == 0) {
|
||||
inst->driver = &RCL_PHC_driver;
|
||||
} else if (strcmp(params->driver_name, "RTC") == 0) {
|
||||
inst->driver = &RCL_RTC_driver;
|
||||
} else {
|
||||
LOG_FATAL("unknown refclock driver %s", params->driver_name);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user