aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@nokia.com>2010-07-13 05:07:44 -0400
committerLiam Girdwood <lrg@slimlogic.co.uk>2010-07-13 06:30:12 -0400
commit27eeb1feed5c85877f39ff05f6fde0b538b8b9fc (patch)
tree6c5094b034ad4197e98b49ae9dc64c716f3c71c3
parent8b0d31532e2351db920871b8835425bf1e34de38 (diff)
ASoC: TWL4030: DAC power optimization
Restructure the DAPM connections in order to enable only the needed DAC (out of four in twl4030 series). I need to keep the 'AIF Enable' supply connected to the L2/R2 digital path, since the digital loopback needs AIF and APLL running. If no valid route available, than none of the DAC will be powered, but the AIF and APLL is going to be enabled. Furthermore, if only one audio path have valid route, than only the corresponding DAC will be powered. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com> Acked-by: Mark Brown <broonie@opensource.wolfsomicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
-rw-r--r--sound/soc/codecs/twl4030.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c
index d7f0048273c1..6fd6d0b10555 100644
--- a/sound/soc/codecs/twl4030.c
+++ b/sound/soc/codecs/twl4030.c
@@ -1460,8 +1460,11 @@ static const struct snd_soc_dapm_route intercon[] = {
1460 /* Supply for the digital part (APLL) */ 1460 /* Supply for the digital part (APLL) */
1461 {"Digital Voice Playback Mixer", NULL, "APLL Enable"}, 1461 {"Digital Voice Playback Mixer", NULL, "APLL Enable"},
1462 1462
1463 {"Digital R1 Playback Mixer", NULL, "AIF Enable"}, 1463 {"DAC Left1", NULL, "AIF Enable"},
1464 {"Digital L1 Playback Mixer", NULL, "AIF Enable"}, 1464 {"DAC Right1", NULL, "AIF Enable"},
1465 {"DAC Left2", NULL, "AIF Enable"},
1466 {"DAC Right1", NULL, "AIF Enable"},
1467
1465 {"Digital R2 Playback Mixer", NULL, "AIF Enable"}, 1468 {"Digital R2 Playback Mixer", NULL, "AIF Enable"},
1466 {"Digital L2 Playback Mixer", NULL, "AIF Enable"}, 1469 {"Digital L2 Playback Mixer", NULL, "AIF Enable"},
1467 1470
@@ -1532,10 +1535,10 @@ static const struct snd_soc_dapm_route intercon[] = {
1532 1535
1533 /* outputs */ 1536 /* outputs */
1534 /* Must be always connected (for AIF and APLL) */ 1537 /* Must be always connected (for AIF and APLL) */
1535 {"Virtual HiFi OUT", NULL, "Digital L1 Playback Mixer"}, 1538 {"Virtual HiFi OUT", NULL, "DAC Left1"},
1536 {"Virtual HiFi OUT", NULL, "Digital R1 Playback Mixer"}, 1539 {"Virtual HiFi OUT", NULL, "DAC Right1"},
1537 {"Virtual HiFi OUT", NULL, "Digital L2 Playback Mixer"}, 1540 {"Virtual HiFi OUT", NULL, "DAC Left2"},
1538 {"Virtual HiFi OUT", NULL, "Digital R2 Playback Mixer"}, 1541 {"Virtual HiFi OUT", NULL, "DAC Right2"},
1539 /* Must be always connected (for APLL) */ 1542 /* Must be always connected (for APLL) */
1540 {"Virtual Voice OUT", NULL, "Digital Voice Playback Mixer"}, 1543 {"Virtual Voice OUT", NULL, "Digital Voice Playback Mixer"},
1541 /* Physical outputs */ 1544 /* Physical outputs */