[alsa-devel] How to support multiple audio codecs on a single board
Hi,
I have 3 instances of AIC23 on my board and all are connected to different I2C/McBSP and hence can be used independently. How should I use/modify the current AIC23 driver and write the asoc board-specific file to enable all the AIC23 instances? Is there any similar implementation in the audio subsystem which I can look as a reference?
Regards, Anuj Aggarwal
On Mon, Aug 31, 2009 at 02:48:55PM +0530, Aggarwal, Anuj wrote:
I have 3 instances of AIC23 on my board and all are connected to different I2C/McBSP and hence can be used independently. How should I use/modify the current AIC23 driver and write the asoc board-specific file to enable all the AIC23 instances? Is there any similar implementation in the audio subsystem which I can look as a reference?
This is not currently supported; it needs a lot of work in the core to allow multiple CODEC drivers to coexist. Things like and the presentation of controls to user space can't really cope at the minute. It's a bit easier in your case since you essentially have three sound cards (rather than one card with multiple CODECS) but there's still a bit of work needed around device registration.
For now you'll need to write three machine drivers only one of which is permitted to be loaded at once; once the core has this support added you'll then be able to load all three at once and have the three appear as separate sound cards. If you'd like to contribute the core support that'd be excellent :)
On Mon, 31 Aug 2009 14:16:06 +0100, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Mon, Aug 31, 2009 at 02:48:55PM +0530, Aggarwal, Anuj wrote:
I have 3 instances of AIC23 on my board and all are connected to different I2C/McBSP and hence can be used independently. How should I use/modify the current AIC23 driver and write the asoc board-specific file to enable all the AIC23 instances? Is there any similar implementation in the audio subsystem which I can look as a reference?
This is not currently supported; it needs a lot of work in the core to allow multiple CODEC drivers to coexist. Things like and the presentation of controls to user space can't really cope at the minute. It's a bit easier in your case since you essentially have three sound cards (rather than one card with multiple CODECS) but there's still a bit of work needed around device registration.
For now you'll need to write three machine drivers only one of which is permitted to be loaded at once; once the core has this support added you'll then be able to load all three at once and have the three appear as separate sound cards. If you'd like to contribute the core support that'd be excellent :) _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
What if the codecs are different? My board has a playback-only device (TAS5709) and a capture-only device (PCM1800). Would it be OK to implement a single machine driver with num_dai=2? Or would you suggest to implement two different sound cards?
On Mon, Aug 31, 2009 at 01:25:39PM -0400, Pedro I. Sanchez wrote:
On Mon, 31 Aug 2009 14:16:06 +0100, Mark Brown
For now you'll need to write three machine drivers only one of which is permitted to be loaded at once; once the core has this support added you'll then be able to load all three at once and have the three appear as separate sound cards. If you'd like to contribute the core support that'd be excellent :)
What if the codecs are different? My board has a playback-only device (TAS5709) and a capture-only device (PCM1800). Would it be OK to implement a single machine driver with num_dai=2? Or would you suggest to implement two different sound cards?
It only depends on what's idiomatic for your system - if your system makes most sense with them both as part of the same sound card then do that, if it makes more sense with them split into two cards then that would be better. When ASoC supports this properly it should be happy with either configuration.
On Mon, 31 Aug 2009 21:10:40 +0100, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Mon, Aug 31, 2009 at 01:25:39PM -0400, Pedro I. Sanchez wrote:
On Mon, 31 Aug 2009 14:16:06 +0100, Mark Brown
For now you'll need to write three machine drivers only one of which
is
permitted to be loaded at once; once the core has this support added you'll then be able to load all three at once and have the three
appear
as separate sound cards. If you'd like to contribute the core support that'd be excellent :)
What if the codecs are different? My board has a playback-only device (TAS5709) and a capture-only device (PCM1800). Would it be OK to implement a single machine driver with num_dai=2? Or would you suggest to
implement
two different sound cards?
It only depends on what's idiomatic for your system - if your system makes most sense with them both as part of the same sound card then do that, if it makes more sense with them split into two cards then that would be better. When ASoC supports this properly it should be happy with either configuration.
In my case a single sound card makes more sense so I will start working on this approach (once I get some sound out of the TAS5709 :-) )
Thanks,
On Mon, 31 Aug 2009 21:10:40 +0100, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Mon, Aug 31, 2009 at 01:25:39PM -0400, Pedro I. Sanchez wrote:
On Mon, 31 Aug 2009 14:16:06 +0100, Mark Brown
For now you'll need to write three machine drivers only one of which
is
permitted to be loaded at once; once the core has this support added you'll then be able to load all three at once and have the three
appear
as separate sound cards. If you'd like to contribute the core support that'd be excellent :)
What if the codecs are different? My board has a playback-only device (TAS5709) and a capture-only device (PCM1800). Would it be OK to implement a single machine driver with num_dai=2? Or would you suggest to
implement
two different sound cards?
It only depends on what's idiomatic for your system - if your system makes most sense with them both as part of the same sound card then do that, if it makes more sense with them split into two cards then that would be better. When ASoC supports this properly it should be happy with either configuration.
In my case a single sound card makes more sense so I will start working on this approach (once I get some sound out of the TAS5709 :-) )
Thanks,
On Mon, 31 Aug 2009 14:16:06 +0100, Mark Brown broonie@opensource.wolfsonmicro.com wrote:
On Mon, Aug 31, 2009 at 02:48:55PM +0530, Aggarwal, Anuj wrote:
I have 3 instances of AIC23 on my board and all are connected to different I2C/McBSP and hence can be used independently. How should I use/modify the current AIC23 driver and write the asoc board-specific file to enable all the AIC23 instances? Is there any similar implementation in the audio subsystem which I can look as a reference?
This is not currently supported; it needs a lot of work in the core to allow multiple CODEC drivers to coexist. Things like and the presentation of controls to user space can't really cope at the minute. It's a bit easier in your case since you essentially have three sound cards (rather than one card with multiple CODECS) but there's still a bit of work needed around device registration.
For now you'll need to write three machine drivers only one of which is permitted to be loaded at once; once the core has this support added you'll then be able to load all three at once and have the three appear as separate sound cards. If you'd like to contribute the core support that'd be excellent :) _______________________________________________ Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (4)
-
Aggarwal, Anuj
-
Mark Brown
-
Pedro I. Sanchez
-
Pedro I. Sanchez