Hello Petr,
On 14/12/15 12:32, Petr Kulhavy wrote:
thank you for the explanation. I can follow the clock description in the DT and it looks like a reasonable approach. However neither the codec or I2S seem to implement any clock provider. How is the implementation side done? I mean someone needs to set the PLLs, etc.
Yes, you need the clock provider somewhere. In my case it was the I2S driver that registered a clock provider. Probably you can add your output clock provider to your SoC's main clock controller driver, and perhaps use pinctrl API for the pin function mux setup.
You can place assigned-clock* DT properties in the clock provider node and the PLL's will be configured by the kernel's clk subsystem. Grep for of_clk_set_defaults or see last chapter of Documentation/devicetree/bindings/clock/clock-bindings.txt.