Re: omap mcbsp and prcm_fck

Andreas Kemnade
2023-01-19T21:22:32Z

Hi,

On Thu, 19 Jan 2023 09:41:36 +0200
Tony Lindgren <tony@atomide.com> wrote:

> Hi,
>
> * Andreas Kemnade <andreas@kemnade.info> [230117 11:08]:
> > Hi,
> >
> > while trying to create a devicetree for a omap4 device, I stumbled upon this:
> >
> > [ 59.789367] omap-mcbsp 40124000.mcbsp: CLKS: could not clk_get() prcm_fck
> >
> > But where should prcm_fck come from? The string does not appear in the
> > devicetree binding documentation. I have seen it only in the omap_hwmod_* stuff
> > used by omap2/3.
> >
> > So how to make mcbsp happy?
>
> I think all you need to do is add an entry for prcm_fck to point to
> mcbsp4_sync_mux_ck in omap44xx_clks[]. Seems this got dropped with commit
> 349355ce3a05 ("ARM: OMAP2+: Drop legacy platform data for omap4 mcbsp").
>
> Or patch the driver so it tries to use the dt clock so that the standard
> assigned-clocks devicetree property works for a board specific
> configuration.
>
I tried this hack-fix:

--- a/sound/soc/ti/omap-mcbsp.c
+++ b/sound/soc/ti/omap-mcbsp.c
@@ -64,7 +64,7 @@ static int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id)
if (fck_src_id == MCBSP_CLKS_PAD_SRC)
src = "pad_fck";
else if (fck_src_id == MCBSP_CLKS_PRCM_SRC)
- src = "prcm_fck";
+ src = "mcbsp2_sync_mux_ck";
else
return -EINVAL;

Then I stumple upon the next problem:
omap-mcbsp 40124000.mcbsp: CLKS: could not clk_set_parent() to mcbsp2_sync_mux_ck

Regards,
Andreas