[PATCH 2/2] clk: samsung: exynos-clkout: convert to module driver

Sylwester Nawrocki snawrocki at kernel.org
Fri Oct 23 07:42:25 EDT 2020


On 10/1/20 18:56, Krzysztof Kozlowski wrote:
> The Exynos clkout driver depends on board input clock (typically XXTI or
> XUSBXTI), however on Exynos4 boards these clocks were modeled as part of
> SoC clocks (Exynos4 clocks driver).  Obviously this is not proper, but
> correcting it would break DT backward compatibility.
> 
> Both drivers - clkout and Exynos4 clocks - register the clock providers
> with CLK_OF_DECLARE/OF_DECLARE_1 so their order is fragile (in the
> Makefile clkout is behind Exynos4 clock).  It will work only if the
> Exynos4 clock driver comes up before clkout.
> 
> A change in DTS adding input clock reference to Exynos4 clocks input
> PLL, see reverted commit eaf2d2f6895d ("ARM: dts: exynos: add input
> clock to CMU in Exynos4412 Odroid"), caused probe reorder: the clkout
> appeared before Exynos4 clock provider.  Since clkout depends on Exynos4
> clocks and does not support deferred probe, this did not work and caused
> later failure of usb3503 USB hub probe which needs clkout:
> 
>      [    5.007442] usb3503 0-0008: unable to request refclk (-517)
> 
> The Exynos clkout driver is not a critical/core clock so there is
> actually no problem in instantiating it later, as a regular module.
> This removes specific probe ordering and adds support for probe
> deferral.


The patch looks good to me, I have tested it on Trats2, where CLKOUT
provides master clock for the audio codec.

Tested-by: Sylwester Nawrocki <s.nawrocki at samsung.com>

With the debug print removed feel free to apply it through your tree.
Reviewed-by: Sylwester Nawrocki <s.nawrocki at samsung.com>

--
Regards,
Sylwester



More information about the linux-arm-kernel mailing list