[alsa-devel] Binding multiple registers to an enum

Stuart Longland redhatter at gentoo.org
Mon Sep 13 01:31:51 CEST 2010

Hi all,

Just working on the TLV320AIC3204 driver again... I've got an issue
where we get noise on recording inputs if I don't drive unused inputs to
the common mode.  Now there's a register which can do exactly this.

Each of the inputs can be routed through a difference series
resistance... this selection is done by enum controls, with the options
being: not-connected, 10k, 20k or 40k.  My plan, is that when
'not-selected' is chosen, I set the appropriate bit in the floating
input register so it gets connected to common-mode... and when something
else is chosen, that bit gets cleared.

I've tried lying to DAPM and telling it these bits control PGAs on the
inputs themselves... but it gets the wrong idea about which ones need to
be turned on.  Perhaps I should investigate that ... but the idea of
using PGA controls doesn't seem quite right.

I've looked at SOC_ENUM_EXT, which would do what I want (I already use
this to keep ADC OSR and DAC OSR settings in sync) however, these
controls have implications for signal routing, and therefore DAPM needs
to know about them, so really it'd be a SOC_DAPM_ENUM_EXT control I'd be
after.  I can't see such a thing however... how does one go about doing

Stuart Longland (aka Redhatter, VK4MSL)      .'''.
Gentoo Linux/MIPS Cobalt and Docs Developer  '.'` :
. . . . . . . . . . . . . . . . . . . . . .   .'.'
http://dev.gentoo.org/~redhatter             :.'

I haven't lost my mind...
  ...it's backed up on a tape somewhere.

More information about the Alsa-devel mailing list