Re: [RFCv1] rtc: m41t80: disable clock provider support

From: Alexandre Belloni
Date: Fri Nov 08 2019 - 12:53:34 EST


On 08/11/2019 18:01:35+0100, Sebastian Reichel wrote:
> Congatec's QMX6 system on module (SoM) uses a m41t62 as RTC. The
> modules SQW clock output defaults to 32768 Hz. This behaviour is
> used to provide the i.MX6 CKIL clock. Once the RTC driver is probed,
> the clock is disabled and all i.MX6 functionality depending on
> the 32 KHz clock have undefined behaviour (e.g. the hardware watchdog
> run to fast or slow).
>
> The normal solution would be to properly describe the clock tree
> in DT, but from the kernel's perspective this is a chicken-and-egg
> problem: CKIL is required very early, but the clock is only provided
> after the I2C RTC has been probed.
>
> Technically everything is fine by not touching anything, so this
> works around the issue by disabling the clock handling from the
> RTC driver. I guess the proper solution would be to simply mark the
> clock as always-enabled, but this does not seem to be supported by
> the clock framework.
>

You need to have a consumer so this clock is not disabled by the CCF
after seeing nobody uses it. If you need it early, you can have a look
at rtc-sun6i.c but I would like that to not become a recurrent pattern,
especially for discrete RTCs.

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com