Simple card and PLL/FLL

Emanuele Ghidoli ghidoliemanuele at gmail.com
Wed Dec 7 13:41:24 CET 2022


Hello,
I want to understand what is the right way to implement PLL/FLL usage on 
audio codec when using simple-card.
In wm8904 driver I found that FLL is used if set_sysclk is called (that 
means mclk-fs property is set, otherwise it is not called).
In this case the frequency passed to set_sysclk is assumed to be the 
"desired" frequency, the codec read the currently clkrate coming from 
"cpu" ("clk_get_rate(priv->mclk)") and use these information to program FLL.
In other codec drives I do not find a similar approach.
In general codec register the set_pll function but it is never called by 
simple-card driver.
I guess what is the "right/better" implementation? Have we to add the 
set_pll call in simple-card? Or have we to add it to e.g. fsl_sai 
driver? Or, in some way, the wm8904 codec driver is approaching in the 
right way?

Is there any documentation that explain all of that (I have already 
looked at Documentation/sound)? Any driver that is considered well 
written and complete I should use as a reference?


Thanks a lot for your help
Best regards,

Emanuele


More information about the Alsa-devel mailing list