ASoC: core: Add initial support for DAI multicodec
authorBenoit Cousson <bcousson@baylibre.com>
Tue, 8 Jul 2014 21:19:34 +0000 (23:19 +0200)
committerMark Brown <broonie@linaro.org>
Wed, 16 Jul 2014 21:58:49 +0000 (22:58 +0100)
commit88bd870f02dff5c9445286e185f21873f25a977f
tree329d25b67e687f6905e51b989db62c7268986fb1
parentf7acb3694a999fdf04dc3096e8416a0bfdabd590
ASoC: core: Add initial support for DAI multicodec

DAI link assumes a one to one mapping between CPU DAI and CODEC. In
some cases, the same CPU DAI can be connected to several codecs.
This is the case for example, if you connect two mono codecs to the
same I2S link in order to have a stereo card.
The current ASoC implementation does not allow such setup.

Add support for DAI links composed of a single CPU DAI and multiple
CODECs. Sound cards have to pass the CODECs array in the corresponding
DAI link through a new 'snd_soc_dai_link_component' struct. Each CODEC in
this array is described in the same manner single CODEC DAIs are
(either DT/OF node or codec_name).

Multi-codec links are not supported in the case of CODEC to CODEC links.
Just print a warning if it happens.

Based on an original code done by Misael.

Signed-off-by: Benoit Cousson <bcousson@baylibre.com>
Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
Signed-off-by: Fabien Parent <fparent@baylibre.com>
Tested-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Mark Brown <broonie@linaro.org>
include/sound/soc-dai.h
include/sound/soc.h
sound/soc/soc-core.c