[alsa-devel] ASoC widgets questions

Mark Brown broonie at opensource.wolfsonmicro.com
Tue Jul 29 11:23:19 CEST 2008

On Mon, Jul 28, 2008 at 09:22:37PM -0500, Lopez Cruz, Misael wrote:

[Please word wrap your mails at 80 columns, it makes them easier to

> I started to read about ASoC, but I didn't find much information apart
> from the kernel documentation files. Is there any other documents?
> Below are some questions mainly related to DAPM for codec driver.

Apart from the mailing list archives all the documentation is in the

> How should the interconnections map be created?

Use snd_soc_dapm_add_routes() during your codec initialisation.  This
should be done after you have set up your DAPM and non-DAPM controls.

> What is the difference between using "SND_SOC_DAPM_PGA" and
> "SND_SOC_DAPM_MICBIAS" for an input? When to use each one?

SND_SOC_DAPM_PGA is an amplifier (Programmable Gain Amplifier).

SND_SOC_DAPM_MICBIAS is a bias current source for a microphone.  Usually
any such signal on the device will be clearly identified in the

> Why in some codec drivers there is a distinction between left and
> right ADC/DACs when creating DAPM widgets and in others not?

It depends on what the hardware supports.  If the left and right
channels can be controlled independantly then DAPM may be able to
deliver power savings from not powering up unconnected channels but if
there is no separate power control for each channel in the hardware then
that can't be done and the DAC or ADC is represented as a single widget.

> How should be handled digital gains and mixing (after ADCs/before DACs)?

These are usually exported as regular ALSA controls added with

"You grabbed my hand and we fell into it, like a daydream - or a fever."

More information about the Alsa-devel mailing list