AnsweredAssumed Answered

ALSA read of 8 bit SLIC voice in iMx6q processor

Question asked by Abhijeet Gokar on Mar 1, 2020



I am using iMx6q and trying to read data from phone input and SLIC IC. The IC is giving proper 8-bit Mu Law data at its DTX pin. The communication protocol between is I2S and is operating with parameters PCLK=512kHz and FSync=8kHz.


The processor is the master, and I am using ALSA subset utilities (aplay.c userspace application C code) to read and write data on the PCM bus.


The ALSA program has a set macro of MU_LAW and a predefined function of snd_pcm_mmap_readi() which has a different way of dealing with pcm areas.


The 32-bit word from the PCM channel should be masked out as a 8-bit data via the I2S protocol.


How do I modify the ALSA driver so that telephonic data can be read continuously, and fed into the ALSA ring buffer? Is the MU_LAW macro able to receive the 8-bit data properly? Has iMx6q ever been interfaced with SLIC before using ALSA/Linux? If yes, how were the timing diagram matched?


(Please don't share any documentation as a reply. I have been studying every single reference manual of NXP for the past year, and have got idea of SSI, fsl-dai, audio clocking and PCM timing diagrams. I have referred to the ref manual like completely and reached upto here.)