[alsa-devel] [PATCH 0/6] ASoC: 4 channel support for twl4030 and omap-mcbsp

Mark Brown broonie at sirena.org.uk
Wed Apr 8 11:53:30 CEST 2009

On Wed, Apr 08, 2009 at 09:23:23AM +0300, Jarkko Nikula wrote:

> What's actually state of the TDM container format support in ASoC?

It's largely punted to the machine driver.

> I see there is that set_tdm_slot callback in struct snd_soc_dai_ops
> but only pxa-ssp.c is setting it currently.

Right.  A large proprortion of the Wolfson codecs could set it too, as
could many platforms that generate clocks manually, but it's not widely
used since there's relatively few use cases in public hardware.

> Am I correct that DSP_x, I2S are not multichannel but should be
> embedded into TDM if multichannel operation is wanted?

TDM mode is more intended for situations where a device is only going to
be paying attention to some of the timeslots - for example, if you have
a CPU, CODEC and baseband processor sharing one set of data lines and
want to send data between multiple devices.

For I2S the normal multichannel implementation is to use multiple data
lines with shared clock lines - there's no natural extension within the
one data line - so TDM mode would be needed.  For DSP mode there's a
more natural extension (just transmit additional channel data after the
final one, you're allowed extra bit clocks anyway) so it's less needed.

> So should Peter's these two patches take this API into use?

> "[PATCH 2/6] ASoC: OMAP mcbsp: Add 4 channel support"
> "[PATCH 6/6] ASoC: Beagle: Add support for 4 channel mode"

For DSP mode it's up to you; personally I wouldn't bother unless the
code supports ignoring some of the timeslots.  It's more likely that
any other devices sharing the DAI would need TDM to pick out or fill
the data streams relevant to them.

More information about the Alsa-devel mailing list