The problem is in the kernel. At least the behaviour has changed.
The codec makes a delay of 400ms in snd_pcm_prepare().
This is much too long, and delays and disturbs the audio output.
One solution is described at https://community.nxp.com/t5/i…l5000-latency/td-p/857730
My solution is the parameter no-standby from the device tree file
If no-standby is set, the codec is always powered up. And the 400ms delay disappears.
Index: arch/arm/boot/dts/picocoma7.dts
===================================================================
--- arch/arm/boot/dts/picocoma7.dts (revision 35)
+++ arch/arm/boot/dts/picocoma7.dts (working copy)
@@ -502,6 +502,7 @@
compatible = "fsl,sgtl5000";
reg = <0x0a>;
mono2both;
+ no-standby;
clocks = <&clks IMX6UL_CLK_SAI1>;
VDDA-supply = <®_sgtl5000_vdda>;
VDDIO-supply = <®_sgtl5000_vddio>;