diff mbox series

rtc: sun6i: disable automatic clock input switching

Message ID 20240730194905.2587202-1-mwalle@kernel.org
State Accepted
Headers show
Series rtc: sun6i: disable automatic clock input switching | expand

Commit Message

Michael Walle July 30, 2024, 7:49 p.m. UTC
The V3(s) will detect a valid external low frequency clock and if it is
not present will automatically switch to the internal one. This might
hide bugs and (hardware) configuration errors. It's even worse because
the internal RTC runs significantly slower (32.000Hz vs 32.768Hz).
Fortunately for us, the V3(s) has an (undocumented) bypass of this
switching and the driver already supports it by setting the
.has_auto_swt flag.

Signed-off-by: Michael Walle <mwalle@kernel.org>
---
This is not tagged as a Fixes commit, because it might break boards with
an incorrect device tree. That is, if the device tree lists the external
crystal but the board doesn't have it the RTC will stop running. I don't
think this is likely though, because the user manual requires the
external clock.
---
 drivers/rtc/rtc-sun6i.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Chen-Yu Tsai Sept. 4, 2024, 2:46 p.m. UTC | #1
On Wed, Jul 31, 2024 at 3:49 AM Michael Walle <mwalle@kernel.org> wrote:
>
> The V3(s) will detect a valid external low frequency clock and if it is
> not present will automatically switch to the internal one. This might
> hide bugs and (hardware) configuration errors. It's even worse because
> the internal RTC runs significantly slower (32.000Hz vs 32.768Hz).
> Fortunately for us, the V3(s) has an (undocumented) bypass of this
> switching and the driver already supports it by setting the
> .has_auto_swt flag.
>
> Signed-off-by: Michael Walle <mwalle@kernel.org>

Acked-by: Chen-Yu Tsai <wens@csie.org>
Alexandre Belloni Sept. 11, 2024, 10:30 p.m. UTC | #2
On Tue, 30 Jul 2024 21:49:05 +0200, Michael Walle wrote:
> The V3(s) will detect a valid external low frequency clock and if it is
> not present will automatically switch to the internal one. This might
> hide bugs and (hardware) configuration errors. It's even worse because
> the internal RTC runs significantly slower (32.000Hz vs 32.768Hz).
> Fortunately for us, the V3(s) has an (undocumented) bypass of this
> switching and the driver already supports it by setting the
> .has_auto_swt flag.
> 
> [...]

Applied, thanks!

[1/1] rtc: sun6i: disable automatic clock input switching
      https://git.kernel.org/abelloni/c/2cd71297070b

Best regards,
diff mbox series

Patch

diff --git a/drivers/rtc/rtc-sun6i.c b/drivers/rtc/rtc-sun6i.c
index 8e0c66906103..e681c1745866 100644
--- a/drivers/rtc/rtc-sun6i.c
+++ b/drivers/rtc/rtc-sun6i.c
@@ -402,6 +402,7 @@  CLK_OF_DECLARE_DRIVER(sun8i_r40_rtc_clk, "allwinner,sun8i-r40-rtc",
 static const struct sun6i_rtc_clk_data sun8i_v3_rtc_data = {
 	.rc_osc_rate = 32000,
 	.has_out_clk = 1,
+	.has_auto_swt = 1,
 };
 
 static void __init sun8i_v3_rtc_clk_init(struct device_node *node)