[PATCH] arm64: dts: qcom: mahua-t14s: store the RTC offset in SDAM

From: Luke Macken

Date: Fri Oct 16 2026 - 19:26:26 EST


The PMIC RTC registers on the Lenovo ThinkPad T14s Gen 7 are read-only,
so an offset needs to be stored in machine-specific non-volatile memory
which the RTC driver can take into account when reading or updating the
time.

The firmware on this machine does not provide the RTCInfo UEFI variable
that other Glymur based machines use for this purpose, so, as on
sc8280xp-crd and the QCS8550 boards, reserve four bytes in one of the
PMIC SDAM blocks to hold the RTC offset. SDAM 2 on PMK8850 is 128 bytes
and its last word is not used by the firmware.

Without this the RTC reports the time elapsed since the PMIC was first
powered, setting the time fails and the system clock starts in 1970 on
every boot until it is corrected from the network.

Assisted-by: LLM
Signed-off-by: Luke Macken <luke@xxxxxxxxxx>
---
Note for reviewers: Qualcomm's "rtc: Add Qualcomm PMIC RTC-GLINK support
for Glymur" (August 2026) would move the RTC behind the charger firmware
on these machines, but it has not been resubmitted and needs firmware
that at least the ThinkPad does not ship yet. This patch uses the
existing rtc-pm8xxx nvmem offset mechanism in the meantime and does not
conflict with that work.

.../boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts b/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts
index 35afcb5ae..28c2da5d9 100644
--- a/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts
+++ b/arch/arm64/boot/dts/qcom/mahua-lenovo-thinkpad-t14s-gen7-lcd.dts
@@ -941,9 +941,17 @@ &pmk8850_pwm {
};

&pmk8850_rtc {
+ nvmem-cells = <&rtc_offset>;
+ nvmem-cell-names = "offset";
qcom,no-alarm;
};

+&pmk8850_sdam_2 {
+ rtc_offset: rtc-offset@bc {
+ reg = <0xbc 0x4>;
+ };
+};
+
&remoteproc_adsp {
firmware-name = "qcom/glymur/LENOVO/22A8/qcadsp8480.mbn",
"qcom/glymur/LENOVO/22A8/adsp_dtbs.elf";