On Mon, Dec 08, 2008 at 02:06:08PM +0200, Peter Ujfalusi wrote:
On Monday 08 December 2008 13:23:37 ext Mark Brown wrote:
The PGA should be standard SND_SOC_DAPM_PGA()s with the digital to analogue switches used to implement mute controls for them.
Should I 'chain' these switches, like this:
/* Digital to analog enable/disable */ SND_SOC_DAPM_PGA("ARXR1_APGA", TWL4030_REG_ARXR1_APGA_CTL, 1, 0, NULL, 0), /* APGA enable/disable */ SND_SOC_DAPM_PGA("ARXR1_APGA Enable", TWL4030_REG_ARXR1_APGA_CTL, 0, 0, NULL, 0),
I'd expect to see user control here...
Or should I use the wcontrols, wncontrols to implement the DA enable/disable:
You can do that, or just do it as a normal control (which allows you to make the control a stereo control). This lets the user control the switch which is generally more useful.
If the later is preferred, than probably it would be better to move the "DAC1 Analog Playback Volume" and "DAC2 Analog Playback Volume" from the twl4030_snd_controls to twl4030_dapm_widgets, separate the four paths and use SOC_DAPM_SINGLE_TLV("ARXR1_APGA Playback Volume" ? Hmm, in this case the SOC_DAPM_SINGLE_TLV can be also part of the arxr1_apga_controls...
Indeed, and if you do that DAPM will try to ramp up and down the volume using the first control after and before changing the power. This feature is rarely used since it's not normally needed for performance.