Accessing McBSP1/3, preferably from GStreamer/userspace C code?

I’m working on a project with a BeagleBoard xM (rev C) that requires use of the McBSPs. I’m using McBSP1 and McBSP3 because I’m accessing signals on a daughterboard via the expansion connector. I have been reading all kinds of things all over the internet trying to figure out how to access the McBSPs, and have come up empty. I’ve come across GStreamer plugins - both gst-ti and gst-openmax - but haven’t figured out where to begin accessing McBSPs there. I’ve Googled all over the place, read through IRC logs and this mailing list, and have found a lot of conflicting and usually dead-ended threads. I haven’t found any reference to using the McBSPs with GStreamer, which is kind of what I was hoping for - swap out my alsaaudiosrc with a mcbspsrc and be good to go - but I am certainly up for trying other things if that’s not set up.

So far, I’ve found suggestions to just disable all the sound stuff in the kernel and access the McBSPs via mmap, or even just running bare-metal, which sounds messy. I’ve also seen references to accessing the McBSPs via sDMA, but haven’t looked too much into that. There are echoes of ALSA support, but I haven’t tracked down more than “I got this working” for that. ALSA support would be great as well, obviously, since that will just plug right into GStreamer.

So would anyone who has been successful in getting McBSPs working via the expansion connector on an xM be willing to give me some pointers in the right direction? Relevant details: I’m looking to read from my McBSPs, I’ve got mics going into codecs that are currently running as master, making BeagleBoard McBSPs the slaves. They’re connected via the expansion connector, using McBSP1 and 3. I’m currently set up to use GStreamer and would love to continue to do so. I’m running the stock Angstrom build, with a modified xloader to set up the pin muxing.

Thanks,
Joel

I’m working on a project with a BeagleBoard xM (rev C) that requires use of the McBSPs. I’m using McBSP1 and McBSP3 because I’m accessing signals on a daughterboard via the expansion connector. I have been reading all kinds of things all over the internet trying to figure out how to access the McBSPs, and have come up empty. I’ve come across GStreamer plugins - both gst-ti and gst-openmax - but haven’t figured out where to begin accessing McBSPs there. I’ve Googled all over the place, read through IRC logs and this mailing list, and have found a lot of conflicting and usually dead-ended threads. I haven’t found any reference to using the McBSPs with GStreamer, which is kind of what I was hoping for - swap out my alsaaudiosrc with a mcbspsrc and be good to go - but I am certainly up for trying other things if that’s not set up.

So far, I’ve found suggestions to just disable all the sound stuff in the kernel and access the McBSPs via mmap, or even just running bare-metal, which sounds messy. I’ve also seen references to accessing the McBSPs via sDMA, but haven’t looked too much into that. There are echoes of ALSA support, but I haven’t tracked down more than “I got this working” for that. ALSA support would be great as well, obviously, since that will just plug right into GStreamer.

So would anyone who has been successful in getting McBSPs working via the expansion connector on an xM be willing to give me some pointers in the right direction? Relevant details: I’m looking to read from my McBSPs, I’ve got mics going into codecs that are currently running as master, making BeagleBoard McBSPs the slaves. They’re connected via the expansion connector, using McBSP1 and 3. I’m currently set up to use GStreamer and would love to continue to do so. I’m running the stock Angstrom build, with a modified xloader to set up the pin muxing.

Hi Joel,

If I understand you correctly, you are looking to add a different hardware codec to one of the McBSP ports. In that case, you will find everything you need in the sound folder. Look in the sound/soc/codec folder for examples of codec interfaces such as the twl4030 used on the Beagle-xM. Read the TPS65950 datasheet to understand how to setup and use the TWL4030 codec. Look in the sound/soc/omap folder for board specific implementation, such as omap3beagle.c and omap-mcbsp.c.

Hope this helps.

Regards

John

Thanks,

Joel