The davinci-audio-aic33.c is the audio codec specific to the DM6446 -
you cannot use the aic32 version as that is not the chip on the board

 

I think the TLV chip can be configured for Mono operation (it has mixers
in it and filter coefficients that can be programmed to do simple left
channel and right channel averaging to produce mono samples). However, I
don't know whether it'll duplicate the same sample twice for the
left/right channel in the I2S stream - ultimately, the Davinci expects
an I2S stream in a single phase, 2-element transfer (right, left on the
pos and negative of the WRCLK)

 

One way to do mono samples would be to take the stereo samples you have
and do averaging sample by sample (this is how I currently do it, not
much overhead to do this, ~200us for a 2048 byte chunk of samples)

 

The other option is to modify the ASP driver and use the internal
configurations in the SPCR to 'trick' it for mono - change the number of
words in phase 1 to be 1 word (RFRLEN1 = 0), and change the RWDLEN1 to
be 32 bits (instead of 16) - this means that you'll be reading in both
samples into the DRR in a single shot; the EDMA gets triggered when the
32  bits get read in (these settings can be found in the initial_config
struct in the top of davinci-audio-aic33.c)

 

To do the trick, change the DMA A count in the AB count to 2 (it should
be at 2 right now anyways) - this will increment the DST index by only 2
each time even though it writes in 4 bytes - these settings can be found
in davinci-audio-dma-intfc.c under audio_set_dma_params_capture, and
audio_set_dma_params_play

 

Jerry

 

 

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to