On Monday 23 April 2018 08:29 PM, David Lechner wrote: > On 04/06/2018 11:46 AM, Stephen Boyd wrote: >> Quoting Sekhar Nori (2018-04-06 02:37:03) >>> >>> Can you please check that and confirm there is no issue with genpd and >>> using CLK_OF_DECLARE() to initialize clocks? >>> >>> Unless you report an issue back, or Mike and Stephen have ideas about >>> how to handle the dependency between PSC/PLL derived timer clock >>> initialization and and timer_probe(), I think we need to move back to >>> using CLK_OF_DECLARE(). >> >> In such a case, please use the hybrid approach where the clks required >> for the clockevent and/or clocksource are registered in the early >> CLK_OF_DECLARE path but the rest of the clks get registered with a >> proper platform device and driver. There are examples of this approach >> on other platforms already. >> > > I looked at this a bit last week, but I didn't come up with any approach > that I was happy with. It seems like it would be nice to just register > the absolute minimum clocks needed. On DA8XX, that would just be the PLL0 > AUXCLK. On most of the other SoCs, it would be the PLL AUXCLK plus one > LPSC clock. The AUXCLKs are easy because they are just a simple gate > from the oscillator. The LPSC clocks are a bit more tricky because they > have a complex sequence for turning on. Furthermore, on DM646X, we need > the whole PLL up to SYSCLK3 plus one LPSC clock, so things get a bit > messy there. Things might change in the context of work being done here by Bartosz for converting clocks to early platform devices. But, keeping that development aside for a moment: I think this means the PLLs and PSCs need to be CLK_OF_DECLARE(). What we can have as platform devices are clocks that are not in the path to get timer clock working (like CFGCHIP clocks). Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html