Hi,
we're using the Lantronix OpenQ-610 SOM with QCS610.LE.1.0. Setting RTC with the Linux command "hwclock -w" doesn not work with Linux kernel 4.14-202.
If I enable write in the device-tree for the pm6150_rtc node "hwclock -w" doesn't work either. I receive "disallowed SPMI write to sid=0, addr=0x6046" in the dmesg. Otherwise RTC seems to be running, only I can't change the actual time.
What else needs to be done for making RTC (hwclock) writable?
Thanks for any hint!
You can read the RTC time but writing to the RTC is not allowed and is disabled as per Qualcomm's design. You cannot write to RTC. It's just that! The current time is maintained by saving the difference between the current system time and the RTC time (Td = Curr_time - Rtc_time). If you ask for Qualcomm Support they will provide you this fix. However, If you really want to write to RTC as if your life depends on it then there are changes in the Non-HLOS which require Qualcomm's Support.
You can read the RTC time but writing to the RTC is not allowed and is disabled as per Qualcomm's design. You cannot write to RTC. It's just that! The current time is maintained by saving the difference between the current system time and the RTC time (Td = Curr_time - Rtc_time). If you ask for Qualcomm Support they will provide you this fix. However, If you really want to write to RTC as if your life depends on it then there are changes in the Non-HLOS which require Qualcomm's Support.
Here's what you need to know about the RTC on the QCS610:
- Writing to the RTC is not allowed: Qualcomm has disabled this functionality by design. This means you cannot directly modify the RTC's time value.
- Timekeeping workaround: The system maintains accurate time by using a workaround: - It stores the difference between the current system time and the RTC time (Td = Curr_time - Rtc_time). - When the system boots up, it reads the RTC time and adds the stored difference to get the accurate current time.
- Implications for development: - If your application requires precise timekeeping, it's essential to account for this limitation. - You'll need to rely on system timekeeping mechanisms and potentially implement additional time synchronization strategies using external sources (NTP, GPS, etc.).
- Potential reasons for the restriction: - Power management optimization: Disabling RTC writes might contribute to lower power consumption. - Security considerations: Preventing direct RTC modification could enhance system security in certain scenarios. - Hardware design constraints: The RTC hardware itself might not support write functionality.
To ensure accurate timekeeping in your QCS610 applications: