We are developing a system based on i.MX28, which does audio input and output through the SGTL5000 CODEC.
Our software works fine most of the time, however, sometimes after boot-up (maybe 10-20% of the time) the audio input via SGTL5000 ADC_IN is very noisy. It persists even if I stop and restart audio input. (Normally the software is doing two-way audio streaming, but I also get the same sort of noise via 'arecord test.wav'.) If I power cycle the unit, then usually audio is fine after the power cycle.
We're using the Linux 2.6.35 kernel. The problem occurred both before and after applying the Freescale patches "patches_for_L2.6.35_MX28_SDK_10.12_SOURCE.tar.gz".
The noise sounds as though it's due to a gain setting that is sometimes starting up in an indeterminate state, with a higher gain setting than "normal". Sometimes it sounds like bad clipping of the input, when gain is set too high. Sometimes it sounds like plain noise, regardless of the input.
I tried compiling the kernel audio drivers as a module, and loading/unloading via "modprobe" command. When the problem occurs, it persists even if I do "modprobe -r" then "modprobe" to reload the audio driver.
It looks as though it might be some sort of issue with the SGTL5000 CODEC coming up in an indeterminate state for some register settings, and the Linux SGTL5000 driver doesn't fix it.
Has anyone else seen this issue?
Is there an easy way I can see a dump of all SGTL5000 register settings with/without this noise issue present, to test my hypothesis?