On Fri, 2007-11-09 at 12:37 +0100, Friedrich Lobenstock wrote:
Hello!
The background: I'm just designing an ATMEL AT91RM9200 based board which got two TLV320AIC33 on board. It is either possible to hook up the two TLV320AIC33 to a separate SSC (synchronous serial control) channel each or use one SSC channel and configure it for TDM (time division multiplex) mode. There is already a driver for TLV320AIC14k/TLV320AIC2k in the development tree, so adding support for the TLV320AIC33 should be feasible.
Fwiw, TDM will save you a SSC port but will make similtanious use of both codecs at different rates/formats difficult. It depends on your use cases.
What I'm not sure about is the fact if ASOC is prepared for using channels, especially SSC, in TDM mode. Is the core ASOC structure prepared to handle that?
It is for some platforms, but I think AT91 SSC and your codec will need set_tdm_slot() implemented. Your machine driver will call set_tdm_slot to configure codec/SSC slots.
Would we be better off instantiate one drive twice each time with different parameters for the SSC channel?
I would instantiate one driver with 3 pcms. This would allow:-
pcm0: 2 channel, slot 0,1 pcm1: 2 channel, slot 2,3 pcm2: 4 channel, slot 0,1,2,3
Giving full flexibility for many use cases. The pcms would be mutually exclusive (enforced by machine driver).
HTH
Liam