In one of my designs I've got a venerable i.mx233 processor, and I've got a strange behavior.
When I use the sound input to record, I get noise in the HP output, and it's not recoverable until reset.
It is reproducible, for example, with:
arecord -t wav -f cd -Dhw:0,0 /tmp/test.wav
I use the last drivers available in linux. My linux version is 3.14.35
Looking with the oscilloscope, I could see that the virtual ground output (HP_VGND) remains at about 1V, but at the HPL and HPR outputs the continuous voltage level falls to 0.3V.
I think that it is a driver problem but I would like to know what this state is, to found the problem in the driver.
I've read all the sound related registers, and there is no change from normal to faulty state:
HW_AUDIOOUT_ANACLKCTRL = 0x00000000
HW_AUDIOOUT_ANACTRL = 0x00020010
HW_AUDIOOUT_BISTCTRL = 0x00000000
HW_AUDIOOUT_BISTSTAT0 = 0x00000000
HW_AUDIOOUT_BISTSTAT1 = 0x00000000
HW_AUDIOOUT_CTRL = 0x001F0043
HW_AUDIOOUT_DACDEBUG = 0x00000002
HW_AUDIOOUT_DACSRR = 0x10110037
HW_AUDIOOUT_DACVOLUME = 0x02FE00FE
HW_AUDIOOUT_DATA = 0x00000000
HW_AUDIOOUT_HPVOL = 0x02003232
HW_AUDIOOUT_PWRDN = 0x00000100
HW_AUDIOOUT_REFCTRL = 0x03381060
HW_AUDIOOUT_RESERVED = 0x00000000
HW_AUDIOOUT_SPEAKERCTRL = 0x00000000
HW_AUDIOOUT_STAT = 0x80000000
HW_AUDIOOUT_TEST = 0x00000000
HW_AUDIOOUT_VERSION = 0x01010000
HW_AUDIOIN_ADCDEBUG = 0x00000000
HW_AUDIOIN_ADCSRR = 0x10110037
HW_AUDIOIN_ADCVOL = 0x00000202
HW_AUDIOIN_ADCVOLUME = 0x00FE00FE
HW_AUDIOIN_ANACLKCTRL = 0x00000400
HW_AUDIOIN_CTRL = 0x000000E0
HW_AUDIOIN_DATA = 0xFFCDFFEE
HW_AUDIOIN_MICLINE = 0x00070001
HW_AUDIOIN_STAT = 0x80000000
HW_POWER_MINPWR = 0x00000040
Could anyone please help me to found what this strange state is, and how could I recover from this state?
Anyone at Freescale?
Thank you in advance.