Simple card and PLL/FLL

Francesco Dolcini francesco at dolcini.it
Fri Dec 9 09:33:52 CET 2022


Hello Mark and Emanuele

On Wed, Dec 07, 2022 at 05:37:50PM +0000, Mark Brown wrote:
> On Wed, Dec 07, 2022 at 01:41:24PM +0100, Emanuele Ghidoli wrote:
>
> > 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?
>
> It's kind of a taste thing.  There's some devices where the clocking is
> sufficently complicated and flexible that definitely needs a set_pll()
> ...
> for simpler devices like the WM8904 where there's an obvious thing to
> do it's much easier to just hide that from everything outside the
> driver and only deal with the input clock.

Thinking about asoc_simple_hw_params(), what about the fact that
asoc_simple_set_clk_rate() ask for a specific clock rate and assume that
the actual output frequency is the one requested?

After that we are potentially passing to the codec driver a wrong
information, we should likely have a way to pass the actual clock that
could be different because of limitation on the PLL/dividers.

Francesco



More information about the Alsa-devel mailing list