Post Go back to editing

Problem encoding analogue audio with ADAV801

Hi,

I am attempting to add ADAV801 codec support to my 2.6.35 kernel to be
used with an ARM processor. I can see that there is a mainlined
adav80x.c driver that appears at kernel version 3.1, I have had a
quick look at back-porting the driver but this looks as though it
could get quite messy.

However, I did come across an older ADAV801 driver which looks a lot
simpler, but I cannot find it in previous mainlined kernel versions,
http://www.spinics.net/lists/alsa-devel/msg36465.html, so I thought I
would use this as a basis for my own driver.

From what I understand from the datasheet and the way the older driver
has configured the registers on the ADAV801 I should be able to see
some data on the record outputs, however this is not the case. Could
anyone confirm whether or not this driver dated August 2010 is OK to
use? Or perhaps some advice on areas to look at that may be preventing
the CODEC from manipulating and outputting the digital conversion.

Best regards

Parents
  • Hi,

    In ASoC a sound card is composed of multiple components. One is the CODEC the other are the I2S and PCM host drivers. A ASoC board driver binds these components together and properly configures them, so they can talk to each other (You'd normally configure your I2S host and the CODEC for the same on-wire format). This is done using snd_soc_dai_set_fmt, snd_soc_dai_set_sysclk, etc. functions from your ASoC board driver.

    The hw_params callback is called once an application wants to start playback or recording.

    Also note that ASoC has a feature called DAPM(Dynamic power management) which will power-down the CODEC parts which are not in use.

    So unless you have a ASoC board driver which properly configures the CODEC and a userspace application which records something from the ALSA soundcard you are unlikely to see the CODEC transmitting any signals.

    In your case I'd recommend that you write a dummy I2S and PCM driver for your platform which don't do anything right now and use the ASoC board driver from the link in the previous post and adjust it to your needs.

Reply
  • Hi,

    In ASoC a sound card is composed of multiple components. One is the CODEC the other are the I2S and PCM host drivers. A ASoC board driver binds these components together and properly configures them, so they can talk to each other (You'd normally configure your I2S host and the CODEC for the same on-wire format). This is done using snd_soc_dai_set_fmt, snd_soc_dai_set_sysclk, etc. functions from your ASoC board driver.

    The hw_params callback is called once an application wants to start playback or recording.

    Also note that ASoC has a feature called DAPM(Dynamic power management) which will power-down the CODEC parts which are not in use.

    So unless you have a ASoC board driver which properly configures the CODEC and a userspace application which records something from the ALSA soundcard you are unlikely to see the CODEC transmitting any signals.

    In your case I'd recommend that you write a dummy I2S and PCM driver for your platform which don't do anything right now and use the ASoC board driver from the link in the previous post and adjust it to your needs.

Children
No Data