[alsa-devel] [PATCH v3] ASoC: Add support for cs42l73 codec

Vinod Koul vinod.koul at intel.com
Fri Oct 7 16:29:13 CEST 2011


On Fri, 2011-10-07 at 14:05 +0000, Austin, Brian wrote:
> On Oct 7, 2011, at 6:42 AM, Mark Brown wrote:
> > On Fri, Oct 07, 2011 at 04:37:16PM +0530, Vinod Koul wrote:
> > 
> >> See below:
> > 
> >> +static const struct snd_kcontrol_new dac1_output_mixer[] = {
> >> +       SOC_DAPM_SINGLE("Headphone Switch", CS42L73_PWRCTL3, 0, 1, 1),
> >> +       SOC_DAPM_SINGLE("LineOut Switch", CS42L73_PWRCTL3, 1, 1, 1),
> >> +};
> > 
> >> +static const struct snd_kcontrol_new dac2_output_mixer[] = {
> >> +       SOC_DAPM_SINGLE("Speakerphone Switch", CS42L73_PWRCTL3, 2, 1,
> >> 1),
> >> +       SOC_DAPM_SINGLE("Speakerphone LineOut Switch", CS42L73_PWRCTL3,
> >> +                       4, 1, 1),
> >> +       SOC_DAPM_SINGLE("EarSpeaker Switch", CS42L73_PWRCTL3, 3, 1, 1),
> >> +};
> > 
> >> I think naming should be slightly better :)
> > 
> > I'm not sure, it might be more than the naming.  The fact that we're in
> > PWRCTL registers could be confusing hardware design, or the structure of
> > the hardware may not actually reflect what the driver is doing.
> > 
> 
> The way to enable the output is to enable the output pin.  I have no control in SW 
> over the DAC's. The pins are power controlled of course. I know it looks strange, 
> but without using a machine driver to enable/disable the pins for a certain route, 
> this seems to be the best solution.
> 
> I am of course open to other ideas :)
What i saw in the spec is that this codec has three PCM ports and each
one can be input to the DACs. The DAC output goes to output pins and in
some cases shared (like DAC2 for ep/spkr).
For output you have amp switches at end, so we can control where output
is going as well.
So we can have is APCM -> Mixer's -> DAC -> out switches -> pins
All this is codec domain so why should machine driver be bothered about
this stuff. Anything external to codec should be handled in machine
driver, otherwise we end up creating same code in all machine drivers
which use this codec.

-- 
~Vinod



More information about the Alsa-devel mailing list