[alsa-devel] [PATCH] ASoC: tpa6130a2: Define output pins with SND_SOC_DAPM_OUTPUT

Mark Brown broonie at opensource.wolfsonmicro.com
Wed May 19 17:05:12 CEST 2010

On Wed, 2010-05-19 at 15:00 +0300, Peter Ujfalusi wrote:
> On Wednesday 19 May 2010 13:55:26 ext Jarkko Nikula wrote:
> > Codec output pin should be defined with SND_SOC_DAPM_OUTPUT as otherwise
> > external widgets doesn't alter the output state.
> > 
> > Signed-off-by: Jarkko Nikula <jhnikula at gmail.com>
> > Cc: Peter Ujfalusi <peter.ujfalusi at nokia.com>
> > ---
> > I noticed this with a widget and audio map below where state of
> > "Headphone Jack" wasn't changing the codec output.

> This is intentional.
> TPA is _not_ a codec, it is amplifier.

It seems reasonable enough for a user to want to do this - the only
difference with regard to the headphone amplifiers integrated onto
CODECs is that it happens to be on a separate piece of silicon.

> > SND_SOC_DAPM_HP("Headphone Jack", NULL),
> > 
> > {"Headphone Jack", NULL, "TPA6130A2 Headphone Left"},
> > {"Headphone Jack", NULL, "TPA6130A2 Headphone Right"},
> > {"TPA6130A2 Left", NULL, "LLOUT"},
> > {"TPA6130A2 Right", NULL, "RLOUT"}

> And this is how you should use it in a machine driver:
> Connect the codec's outputs to TPA. The TPA code adds the HPs for you already, 
> so you don't need to care about it...

It's not unreasonable for a user to want to wire the device through to a
board-defined jack. For example, they may find this helps with
documenting which physical jack is used or they may have a jack that's
got multiple output types on it such as a dock connector. They may also
wish to use the event that is available on the jack widget to perform
some board specific action when the headphone is activated.

There's no actual requirement to define headphone widgets if they don't
have any other code associated with them - if the outputs are left
unconnected the effect will be the same as if a noop and unused
headphone widget were there.

More information about the Alsa-devel mailing list