[alsa-devel] Help for writting an ASoC driver
Hi, i'm new to alsa and i would like some advice on where to get information about writing an ASoC driver it would be for the beagle board, since is the board i have available. I have already made some progress initializing and loading info to the codec via I2C, but I think there are still many things I don't know. I still don't know the exact way for playing via pcm with aplay or the order of the callbacks. I have checked the web for info but not much about ASoC, just the documentation with the linux kernel.
My driver actually tries to play with aplay, but gets stuck in : omap-pcm.c: omap_pcm_pointer It just won't send the frames.
Thank you for your help.
- Ernesto
On Tue, Apr 07, 2009 at 12:18:25PM -0500, Ernesto Torres wrote:
Hi, i'm new to alsa and i would like some advice on where to get information about writing an ASoC driver it would be for the beagle board, since is the board i have available. I have already made some progress initializing and
There is already a drier for the Beagle board in the kernel - see the omap3beagle driver.
I still don't know the exact way for playing via pcm with aplay or the order of the callbacks. I have checked the web for info but not much about ASoC, just the documentation with the linux kernel.
ASoC jsust presents a standard sound card so applications such as aplay work as they normally do. The callbacks are all called in the same order as the standard ALSA equivalents are, you can check how exactly things are mapped from the standard ALSA callbacks into ASoC in soc-core.c.
My driver actually tries to play with aplay, but gets stuck in : omap-pcm.c: omap_pcm_pointer It just won't send the frames.
At a guess you've not got the clocking set up properly - either the pins for the clock signals are not configured in the appropriate mode or an inappropriate clock configuration has been set up in your machine driver.
Sorry for not being clear, I'm writting a driver for an external codec to use instead of twl4030 not for the beagleboard I'll check the clocking, thanks.
On Tue, Apr 7, 2009 at 5:19 PM, Mark Brown broonie@sirena.org.uk wrote:
On Tue, Apr 07, 2009 at 12:18:25PM -0500, Ernesto Torres wrote:
Hi, i'm new to alsa and i would like some advice on where to get
information
about writing an ASoC driver it would be for the beagle board, since is
the
board i have available. I have already made some progress initializing
and
There is already a drier for the Beagle board in the kernel - see the omap3beagle driver.
I still don't know the exact way for playing via pcm with aplay or the
order
of the callbacks. I have checked the web for info but not much about
ASoC,
just the documentation with the linux kernel.
ASoC jsust presents a standard sound card so applications such as aplay work as they normally do. The callbacks are all called in the same order as the standard ALSA equivalents are, you can check how exactly things are mapped from the standard ALSA callbacks into ASoC in soc-core.c.
My driver actually tries to play with aplay, but gets stuck in :
omap-pcm.c:
omap_pcm_pointer It just won't send the frames.
At a guess you've not got the clocking set up properly - either the pins for the clock signals are not configured in the appropriate mode or an inappropriate clock configuration has been set up in your machine driver.
from omap_pcm_hw_params: err = omap_request_dma(dma_data->dma_req, dma_data->name, omap_pcm_dma_irq, substream, &prtd->dma_ch);
With twl4030 it successfully calls omap_pcm_dma_irq, but with my codec it never get called, am I forgetting to set some value?
On Tue, Apr 7, 2009 at 6:26 PM, Ernesto Torres skullmate@gmail.com wrote:
Sorry for not being clear, I'm writting a driver for an external codec to use instead of twl4030 not for the beagleboard I'll check the clocking, thanks.
On Tue, Apr 7, 2009 at 5:19 PM, Mark Brown broonie@sirena.org.uk wrote:
On Tue, Apr 07, 2009 at 12:18:25PM -0500, Ernesto Torres wrote:
Hi, i'm new to alsa and i would like some advice on where to get
information
about writing an ASoC driver it would be for the beagle board, since is
the
board i have available. I have already made some progress initializing
and
There is already a drier for the Beagle board in the kernel - see the omap3beagle driver.
I still don't know the exact way for playing via pcm with aplay or the
order
of the callbacks. I have checked the web for info but not much about
ASoC,
just the documentation with the linux kernel.
ASoC jsust presents a standard sound card so applications such as aplay work as they normally do. The callbacks are all called in the same order as the standard ALSA equivalents are, you can check how exactly things are mapped from the standard ALSA callbacks into ASoC in soc-core.c.
My driver actually tries to play with aplay, but gets stuck in :
omap-pcm.c:
omap_pcm_pointer It just won't send the frames.
At a guess you've not got the clocking set up properly - either the pins for the clock signals are not configured in the appropriate mode or an inappropriate clock configuration has been set up in your machine driver.
-- ___________ EhTd
On Mon, Apr 13, 2009 at 12:50:07PM -0500, Ernesto Torres wrote:
Please do not top post.
from omap_pcm_hw_params: err = omap_request_dma(dma_data->dma_req, dma_data->name, omap_pcm_dma_irq, substream, &prtd->dma_ch);
With twl4030 it successfully calls omap_pcm_dma_irq, but with my codec it never get called, am I forgetting to set some value?
You probably have an error in your machine driver (or possibly codec driver if that's not one that's been tested by other people). It is likely that some earlier part of the setup process is returning an error.
Also try testing with the standard ALSA applications to eliminate the possibility of bugs in your application.
participants (2)
-
Ernesto Torres
-
Mark Brown