diff mbox series

[6/7] arm64: dts: qcom: sc8280xp-x13s: switch to uefi rtc offset

Message ID 20250120144152.11949-7-johan+linaro@kernel.org (mailing list archive)
State New
Headers show
Series arm64: dts: qcom: x1e80100: enable rtc | expand

Commit Message

Johan Hovold Jan. 20, 2025, 2:41 p.m. UTC
On many Qualcomm platforms the PMIC RTC control and time registers are
read-only so that the RTC time can not be updated. Instead an offset
needs be stored in some machine-specific non-volatile memory, which a
driver can take into account.

Switch to using the Qualcomm specific UEFI variable that is used by the
UEFI firmware (and Windows) to store the RTC offset.

This specifically means that the RTC time will be synchronised between
the UEFI firmware setup (or UEFI shell), Windows and Linux.

Note however that Windows stores the RTC time in local time by default,
while Linux typically uses UTC (i.e. as on X86).

Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
---
 .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts   | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

Comments

Jens Glathe Jan. 20, 2025, 6:08 p.m. UTC | #1
Hi Johan,

On 20.01.25 15:41, Johan Hovold wrote:
> On many Qualcomm platforms the PMIC RTC control and time registers are
> read-only so that the RTC time can not be updated. Instead an offset
> needs be stored in some machine-specific non-volatile memory, which a
> driver can take into account.
>
> Switch to using the Qualcomm specific UEFI variable that is used by the
> UEFI firmware (and Windows) to store the RTC offset.
>
> This specifically means that the RTC time will be synchronised between
> the UEFI firmware setup (or UEFI shell), Windows and Linux.
>
> Note however that Windows stores the RTC time in local time by default,
> while Linux typically uses UTC (i.e. as on X86).
>
> Signed-off-by: Johan Hovold <johan+linaro@kernel.org>
> ---
>   .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts   | 11 +----------
>   1 file changed, 1 insertion(+), 10 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> index 38d911992475..66c39765225f 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> @@ -1090,20 +1090,11 @@ &pmk8280_pon_resin {
>   };
>
>   &pmk8280_rtc {
> -	nvmem-cells = <&rtc_offset>;
> -	nvmem-cell-names = "offset";
> +	qcom,uefi-rtc-info;
>
>   	status = "okay";
>   };
>
> -&pmk8280_sdam_6 {
> -	status = "okay";
> -
> -	rtc_offset: rtc-offset@bc {
> -		reg = <0xbc 0x4>;
> -	};
> -};
> -
>   &pmk8280_vadc {
>   	channel@144 {
>   		reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;

Nice. I have it running on my X13s now, looks to work fine. Also ported
to Windows Dev Kit 2023, patch will follow soon after testing it. Thanks!

Tested-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>

with best regards

Jens
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
index 38d911992475..66c39765225f 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
@@ -1090,20 +1090,11 @@  &pmk8280_pon_resin {
 };
 
 &pmk8280_rtc {
-	nvmem-cells = <&rtc_offset>;
-	nvmem-cell-names = "offset";
+	qcom,uefi-rtc-info;
 
 	status = "okay";
 };
 
-&pmk8280_sdam_6 {
-	status = "okay";
-
-	rtc_offset: rtc-offset@bc {
-		reg = <0xbc 0x4>;
-	};
-};
-
 &pmk8280_vadc {
 	channel@144 {
 		reg = <PM8350_ADC7_AMUX_THM1_100K_PU(1)>;