alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* Multiple codecs on one card (SOC)
@ 2011-05-18 23:51 Caleb Crome
  0 siblings, 0 replies; only message in thread
From: Caleb Crome @ 2011-05-18 23:51 UTC (permalink / raw)
  To: alsa-devel@alsa-project.org

Hi again,
   I have a multi-codec board up and running, and need a little guidance.
 I've got 8 I2S codecs connected to a beagleboard.   I have the first codec
up and running, but I don't know how to add more codecs to the same alsa
card.

I have it set for multiple DAI links.  Is that the correct way to have
multiple codecs bound to the same card, and bound to eachother?  The struct
is below.

When I do this, I have the problem, that the codec driver, which registers
its mixer controls using macros like SOC_DOUBLE_R_TLV("PCM Playback Volume,
LDAC_VOL, RDAC_VOL,...), they fail when the 2nd codec is getting probed.

Am I supposed to use multiple snd_soc_dai_link declarations?  How do I end
up with a single 16-channel sound card built from multiple 2 channel
devices?

Do I use subdevices?  Substreams?  multiple dai_links?  How do i instantiate
them?

Any pointers would be greatly appreciated.

Thanks,

  -Caleb


static struct snd_soc_dai_link puppy_dai[] =
{
        {
                .name = "tlv320aic33-se-a",
                .stream_name = "tlv320aic33-se",
                .cpu_dai_name = "omap-mcbsp-dai.2",
                .platform_name = "omap-pcm-audio",
                .codec_dai_name = "tlv320aic3x-se-hifi",
                .codec_name = "tlv320aic3x-se-codec.2-0018",
                .ops = &puppy_ops,
                .symmetric_rates = 1, // I think this requires send and
receive be the same rate.
                .init = puppy_dai_link_init,
        },
        {
                .name = "tlv320aic33-se-b",
                .stream_name = "tlv320aic33-se",
                .cpu_dai_name = "omap-mcbsp-dai.2",
                .platform_name = "omap-pcm-audio",
                .codec_dai_name = "tlv320aic3x-se-hifi",
                .codec_name = "tlv320aic3x-se-codec.2-0019",
                .ops = &puppy_ops,
                .symmetric_rates = 1, // I think this requires send and
receive be the same rate.
                .init = puppy_dai_link_init,
},
};

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2011-05-18 23:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-05-18 23:51 Multiple codecs on one card (SOC) Caleb Crome

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).