rtc: NTP: Add CONFIG_RTC_SYSTOHC_DEVICE for NTP synchronization
Currently, CONFIG_RTC_SYSTOHC uses CONFIG_RTC_HCTOSYS_DEVICE which is originally used by CONFIG_RTC_HCTOSYS, but this rtc device has some limiations, for example, it must be battery-backed, be able to work with irq off and through system suspension, etc. So add CONFIG_RTC_SYSTOHC_DEVICE used exclusively for CONFIG_RTC_SYSTOHC, it is more lenient compared to CONFIG_RTC_HCTOSYS_DEVICE, and could be assigned any available RTC in the system. Default value is CONFIG_RTC_HCTOSYS_DEVICE which is "rtc0" by default. After this patch, NTP will sync up "rtc0" by default. Cc: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Xunlei Pang <pang.xunlei@linaro.org> Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
This commit is contained in:
parent
9033fd8ba7
commit
9c5150b31b
|
@ -25,17 +25,9 @@ config RTC_HCTOSYS
|
|||
the value read from a specified RTC device. This is useful to avoid
|
||||
unnecessary fsck runs at boot time, and to network better.
|
||||
|
||||
config RTC_SYSTOHC
|
||||
bool "Set the RTC time based on NTP synchronization"
|
||||
default y
|
||||
help
|
||||
If you say yes here, the system time (wall clock) will be stored
|
||||
in the RTC specified by RTC_HCTOSYS_DEVICE approximately every 11
|
||||
minutes if userspace reports synchronized NTP status.
|
||||
|
||||
config RTC_HCTOSYS_DEVICE
|
||||
string "RTC used to set the system time"
|
||||
depends on RTC_HCTOSYS = y || RTC_SYSTOHC = y
|
||||
depends on RTC_HCTOSYS
|
||||
default "rtc0"
|
||||
help
|
||||
The RTC device that will be used to (re)initialize the system
|
||||
|
@ -56,6 +48,25 @@ config RTC_HCTOSYS_DEVICE
|
|||
sleep states. Do not specify an RTC here unless it stays powered
|
||||
during all this system's supported sleep states.
|
||||
|
||||
config RTC_SYSTOHC
|
||||
bool "Set the RTC time based on NTP synchronization"
|
||||
default y
|
||||
help
|
||||
If you say yes here, the system time (wall clock) will be stored
|
||||
in the RTC specified by RTC_HCTOSYS_DEVICE approximately every 11
|
||||
minutes if userspace reports synchronized NTP status.
|
||||
|
||||
config RTC_SYSTOHC_DEVICE
|
||||
string "RTC used to synchronize NTP adjustment"
|
||||
depends on RTC_SYSTOHC
|
||||
default RTC_HCTOSYS_DEVICE if RTC_HCTOSYS
|
||||
default "rtc0"
|
||||
help
|
||||
The RTC device used for NTP synchronization. The main difference
|
||||
between RTC_HCTOSYS_DEVICE and RTC_SYSTOHC_DEVICE is that this
|
||||
one can sleep when setting time, because it runs in the workqueue
|
||||
context.
|
||||
|
||||
config RTC_DEBUG
|
||||
bool "RTC debug support"
|
||||
help
|
||||
|
|
|
@ -31,7 +31,7 @@ int rtc_set_ntp_time(struct timespec64 now)
|
|||
else
|
||||
rtc_time64_to_tm(now.tv_sec + 1, &tm);
|
||||
|
||||
rtc = rtc_class_open(CONFIG_RTC_HCTOSYS_DEVICE);
|
||||
rtc = rtc_class_open(CONFIG_RTC_SYSTOHC_DEVICE);
|
||||
if (rtc) {
|
||||
/* rtc_hctosys exclusively uses UTC, so we call set_time here,
|
||||
* not set_mmss. */
|
||||
|
|
Loading…
Reference in New Issue