We are investigating an issue with the clocks the SAI interface on a IMX8Nano, kernel 5.15.5
When a stream of audio is first started, we see the mclk, bclk and sync all go high with the correct values. When a stream is stopped, we see all clock values torn down, mclk goes low but however bclk and sync remain high, even though there is no clock set.
The pcm5122 codec is running in salve mode and all clocks are provided by the imx8.
We need a way to take the bclk and sync low when mclk is low to ensure our dacs clock detection kicks in and puts the dac into standby mode.
Has anyone seen this behavior and are there any known workarounds. Looking at the registry, we don't see any area to auto set the bclk and sync low with mclk.
Any help appreciated.
Thanks Jorge for the reply. The issue is not that the clocks are not active, it is that when data stops, the mclk goes to gnd, but the bclk and sync remain high with no data. This isn't right as it will stop dacs from going into stanby mode if they are monitoring the bclk and sync status.
Is there a way these clokc lines can also be returned to gnd when a data stops, as per the behaviour of the mclk?
Hello,
Got it, please try to reset SAI. You can find more detailed information on section 13.10.3.2 ''SAI resets'' on reference manual.
Best regards.
Hello,
When the i.MX8MN is set as master, the clock and frame sync are operational when the device is transmitting/receiving data, as soon as the data stops, the clocks also stop.
You should consider synchronous mode that is described on section 13.10.3.3.1 ''Synchronous mode'' on reference manual.
Best regards.