Discussion:
ASoC: How to connect a single CPU DAI to two codecs?
Sergej Sawazki
2014-09-27 13:33:44 UTC
Permalink
Hello,

I'm writing an ALSA SoC machine driver for a board that has two mono
codecs (left and right audio channel). Each codec is controlled over I2C
and has itsown address.Both codecs are connected to the same I2S CPU DAI
(as shown below).

+--------- (adr: 0x1a) -----+
| |
| +--------> codec_1 ----> (left channel audio)
| |
I2C I2S ----+
| |
| +--------> codec_2 ----> (right channel audio)
| |
+--------- (adr: 0x1b) -----+

Can someone give me some advice on how to setup the 'snd_soc_card' and 'snd_soc_dai_link' in this case? Do I need two dai_links with the same 'cpu_dai_name' and 'platform_name'?

Are there examples for such a configuration? I didn't had much luck in finding one in the mainline?

Any help would be highly appreciated. Thanks!

Sergej
Lars-Peter Clausen
2014-09-27 17:17:24 UTC
Permalink
Post by Sergej Sawazki
Hello,
I'm writing an ALSA SoC machine driver for a board that has two mono codecs
(left and right audio channel). Each codec is controlled over I2C and has
itsown address.Both codecs are connected to the same I2S CPU DAI (as shown
below).
+--------- (adr: 0x1a) -----+
| |
| +--------> codec_1 ----> (left channel audio)
| |
I2C I2S ----+
| |
| +--------> codec_2 ----> (right channel audio)
| |
+--------- (adr: 0x1b) -----+
Can someone give me some advice on how to setup the 'snd_soc_card' and
'snd_soc_dai_link' in this case? Do I need two dai_links with the same
'cpu_dai_name' and 'platform_name'?
Are there examples for such a configuration? I didn't had much luck in
finding one in the mainline?
Any help would be highly appreciated. Thanks!
Hi,

Support for multiple CODEC DAIs on the same link has recently been added by
Benoit. See commit 88bd870f ("ASoC: core: Add initial support for DAI
multicodec"). You now have the possibility to specify multiple CODEC DAIs in
the link using the snd_soc_dai_link_component struct.

- Lars
Sergej Sawazki
2014-09-28 17:20:15 UTC
Permalink
Post by Lars-Peter Clausen
Post by Sergej Sawazki
Hello,
I'm writing an ALSA SoC machine driver for a board that has two mono codecs
(left and right audio channel). Each codec is controlled over I2C and has
itsown address.Both codecs are connected to the same I2S CPU DAI (as shown
below).
+--------- (adr: 0x1a) -----+
| |
| +--------> codec_1 ----> (left channel audio)
| |
I2C I2S ----+
| |
| +--------> codec_2 ----> (right channel audio)
| |
+--------- (adr: 0x1b) -----+
Can someone give me some advice on how to setup the 'snd_soc_card' and
'snd_soc_dai_link' in this case? Do I need two dai_links with the same
'cpu_dai_name' and 'platform_name'?
Are there examples for such a configuration? I didn't had much luck in
finding one in the mainline?
Any help would be highly appreciated. Thanks!
Hi,
Support for multiple CODEC DAIs on the same link has recently been
added by Benoit. See commit 88bd870f ("ASoC: core: Add initial support
for DAI multicodec"). You now have the possibility to specify multiple
CODEC DAIs in the link using the snd_soc_dai_link_component struct.
- Lars
Lars, Benoit,

many thanks, 'snd_soc_dai_link_component' works like a charm.

- Sergej

Loading...