linux/sound/soc/blackfin
Lars-Peter Clausen 8b5e2e396b ASoC: blackfin: bf5xx-i2s: Add support for TDM mode
The bf5xx-i2s{,-pcm} and bf5xx-tdm{-pcm} drivers are nearly identical. Both are
for the same hardware each supporting a slight different subset of the hardware.
The bf5xx-i2s driver supports 2 channel I2S mode while the bf5xx-tdm driver
supports TDM mode and channel remapping. This patch adds support for TDM mode
and channel remapping to the bf5xx-i2s driver so that we'll eventually be able
to retire the bf5xx-tdm driver. Unfortunately the hardware is fixed to using 8
channels in TDM mode. The bf5xx-tdm driver jumps through a few hoops to make it
work well with other channel counts as well:
	* Don't support mmap
	* Translate between internal frame size (which is always 8 * sample_size)
	  and ALSA frame size (which depends on the channel count)
	* Have special copy and silence callbacks which are aware of the mismatch
	  between internal and ALSA frame size
	* Reduce the maximum buffer size to ensure that there is enough headroom for
	  dummy data.

The bf5xx-i2s driver is going to use the same mechanisms when being used int
TDM mode.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
2013-05-30 12:33:40 +01:00
..
Kconfig ASoC: add i2s dai driver for bf6xx soc 2012-06-20 11:26:54 +01:00
Makefile ASoC: add i2s dai driver for bf6xx soc 2012-06-20 11:26:54 +01:00
bf5xx-ac97-pcm.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-ac97.c ASoC: blackfin: bf5xx-sport: Allow setting rx and tx mask independently 2013-05-30 12:33:40 +01:00
bf5xx-ac97.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
bf5xx-ad193x.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-ad1836.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-ad1980.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-ad73311.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-i2s-pcm.c ASoC: blackfin: bf5xx-i2s: Add support for TDM mode 2013-05-30 12:33:40 +01:00
bf5xx-i2s-pcm.h ASoC: blackfin: bf5xx-i2s: Add support for TDM mode 2013-05-30 12:33:40 +01:00
bf5xx-i2s.c ASoC: blackfin: bf5xx-i2s: Add support for TDM mode 2013-05-30 12:33:40 +01:00
bf5xx-sport.c ASoC: blackfin: bf5xx-sport: Allow setting rx and tx mask independently 2013-05-30 12:33:40 +01:00
bf5xx-sport.h ASoC: blackfin: bf5xx-sport: Allow setting rx and tx mask independently 2013-05-30 12:33:40 +01:00
bf5xx-ssm2602.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-tdm-pcm.c ASoC: blackfin: Remove unused bf5xx-{i2s, tdm, ac97}-pcm.h 2013-05-30 12:33:40 +01:00
bf5xx-tdm.c ASoC: blackfin: bf5xx-sport: Allow setting rx and tx mask independently 2013-05-30 12:33:40 +01:00
bf5xx-tdm.h ASoC: multi-component - ASoC Multi-Component Support 2010-08-12 14:00:00 +01:00
bf6xx-i2s.c ASoC: switch over to use snd_soc_register_component() on bf6xx i2s 2013-03-26 21:55:24 +00:00
bf6xx-sport.c ASoC: bfin: fix memory leak in sport3 controller driver 2012-08-09 14:08:59 +01:00
bf6xx-sport.h ASoC: add sport driver for bf6xx soc 2012-06-20 11:26:12 +01:00
bfin-eval-adau1373.c ASoC: blackfin: remove __dev* attributes 2012-12-10 00:29:39 +09:00
bfin-eval-adau1701.c ASoC: blackfin: remove __dev* attributes 2012-12-10 00:29:39 +09:00
bfin-eval-adav80x.c ASoC: blackfin: remove __dev* attributes 2012-12-10 00:29:39 +09:00