aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorIsrael Cepeda <icepeda@ti.com>2012-05-02 10:32:54 -0500
committerZiyann <jaraidaniel@gmail.com>2014-12-05 22:13:05 +0100
commite70d3d74bd2ccb003f712795a07eda7f8761edc3 (patch)
tree40d9ee63e6cc1a1b417d1ea7a85d0a4dfe54a48c /sound
parent5fa74de61a8868801a342fb10b3eae70b94d2c79 (diff)
downloadkernel_samsung_tuna-e70d3d74bd2ccb003f712795a07eda7f8761edc3.zip
kernel_samsung_tuna-e70d3d74bd2ccb003f712795a07eda7f8761edc3.tar.gz
kernel_samsung_tuna-e70d3d74bd2ccb003f712795a07eda7f8761edc3.tar.bz2
ASoC: TWL6040: Adding Aux audio output
Adding switch controls to enable/disable audio output throught Aux pins in codec. Change-Id: I329c44fe95a9157d56017ac47cb4e091e87d8710 Signed-off-by: Israel Cepeda <icepeda@ti.com>
Diffstat (limited to 'sound')
-rw-r--r--sound/soc/codecs/twl6040.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/sound/soc/codecs/twl6040.c b/sound/soc/codecs/twl6040.c
index 3cb4e1b..add745e 100644
--- a/sound/soc/codecs/twl6040.c
+++ b/sound/soc/codecs/twl6040.c
@@ -1201,6 +1201,12 @@ static const struct snd_kcontrol_new hfr_mux_controls =
static const struct snd_kcontrol_new ep_driver_switch_controls =
SOC_DAPM_SINGLE("Switch", TWL6040_REG_EARCTL, 0, 1, 0);
+static const struct snd_kcontrol_new auxl_switch_controls =
+ SOC_DAPM_SINGLE("Switch", TWL6040_REG_HFLCTL, 6, 1, 0);
+
+static const struct snd_kcontrol_new auxr_switch_controls =
+ SOC_DAPM_SINGLE("Switch", TWL6040_REG_HFRCTL, 6, 1, 0);
+
/* Headset power mode */
static const char *twl6040_headset_power_texts[] = {
"Low-Power", "High-Performance",
@@ -1280,6 +1286,8 @@ static const struct snd_soc_dapm_widget twl6040_dapm_widgets[] = {
SND_SOC_DAPM_OUTPUT("HFL"),
SND_SOC_DAPM_OUTPUT("HFR"),
SND_SOC_DAPM_OUTPUT("EP"),
+ SND_SOC_DAPM_OUTPUT("AUXL"),
+ SND_SOC_DAPM_OUTPUT("AUXR"),
/* Analog input muxes for the capture amplifiers */
SND_SOC_DAPM_MUX("Analog Left Capture Route",
@@ -1346,6 +1354,10 @@ static const struct snd_soc_dapm_widget twl6040_dapm_widgets[] = {
SND_SOC_NOPM, 0, 0, &hsr_mux_controls),
/* Analog playback drivers */
+ SND_SOC_DAPM_SWITCH("Aux Left Playback",
+ SND_SOC_NOPM, 0, 0, &auxl_switch_controls),
+ SND_SOC_DAPM_SWITCH("Aux Right Playback",
+ SND_SOC_NOPM, 0, 0, &auxr_switch_controls),
SND_SOC_DAPM_OUT_DRV_E("Handsfree Left Driver",
TWL6040_REG_HFLCTL, 4, 0, NULL, 0,
pga_event,
@@ -1427,11 +1439,16 @@ static const struct snd_soc_dapm_route intercon[] = {
{"HFDAC Left PGA", NULL, "Handsfree Left Playback"},
{"HFDAC Right PGA", NULL, "Handsfree Right Playback"},
+ {"Aux Left Playback", "Switch", "HFDAC Left PGA"},
+ {"Aux Right Playback", "Switch", "HFDAC Right PGA"},
{"Handsfree Left Driver", "Switch", "HFDAC Left PGA"},
{"Handsfree Right Driver", "Switch", "HFDAC Right PGA"},
{"HFL", NULL, "Handsfree Left Driver"},
{"HFR", NULL, "Handsfree Right Driver"},
+
+ {"AUXL", NULL, "Aux Left Playback"},
+ {"AUXR", NULL, "Aux Right Playback"},
};
static int twl6040_add_widgets(struct snd_soc_codec *codec)