Re: [PATCHv3 4/5] rtc: s3c: Add support for RTC of Exynos3250 SoC

From: Javier Martinez Canillas
Date: Tue Sep 16 2014 - 11:20:11 EST


Hello Daniel,

On Tue, Sep 16, 2014 at 5:03 PM, Daniel Drake <drake@xxxxxxxxxxxx> wrote:
> On Tue, Sep 16, 2014 at 7:48 AM, Javier Martinez Canillas
> <javier@xxxxxxxxxxxx> wrote:
>>> Clock list for s3c-rtc device:
>>> - rtc : CLK_RTC of CLK_GATE_IP_PERIR is gate clock for RTC.
>>> - rtc_src : XrtcXTI is 32.768.kHz source clock for RTC.
>>
>> Is this RTC source clock needed for all Exynos SoCs?
>
> It is at least needed on Exynos4412, which has the XrtcXTI thing
> exactly as you describe. However the very standard setup there is to
> hook it up to the CP clock output of the MAX76686 PMIC. This CP clock
> is on by default, so you can potentially live without that detail
> being present in the DT.
>

Thanks for confirming for Exynos4412, I just answered my own email
saying that I found to be needed on Exynos5420 as well and as you
said, it was just working because the Maxim clocks were left on by
default.

> However... one small issue with this setup is that when you enable
> CONFIG_COMMON_CLK_MAX77686, the CP clock gets exposed in Linux's
> common clock framework, and Linux then turns it off because it
> believes it is unused. Then the RTC stops ticking.
>

Indeed, this is an issue about relying on default state. We had a
quite long discussion a couple of weeks ago about simplefb relying on
clocks and regulators left enabled by the bootloader but once these
were know to the kernel, the frameworks disable them because were
unused making simplefb to fail.

> So the rtc_src idea would also be good for Exynos4412. Maybe it would
> make sense to drop the needs_src_clk flag, and simply require/enable
> the src clock whenever it is present in the DT.
>

That sounds more sensible to me as well. I wonder what should happen
in this case with DT backward compatibility though. But as you said,
the external clock is required and the kernel will disable this clock
once is know to the CCF since is not used so maybe will be hard to
maintain DT backward compatibility in this case.

> Also, are you sure about the way you are treating this clock, all
> those enable/disable calls? You only seem to enable it when doing some
> particular driver operations e.g. reading the time, leaving it
> disabled at all other times. However I believe on Exynos4412 that if
> you disable this clock then the RTC will not tick.
>
> Daniel

Best regards,
Javier
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/