From 437a5002e755dbe4d822e3379f04667ae1342147 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Sat, 26 Sep 2020 11:45:27 +0200
Subject: [PATCH 14/78] SUBMITME: ASoC: msm8916-wcd-analog: Add outputs to
 connect external speaker PA

---
 sound/soc/codecs/msm8916-wcd-analog.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
index 34419a234..3fe5be2d3 100644
--- a/sound/soc/codecs/msm8916-wcd-analog.c
+++ b/sound/soc/codecs/msm8916-wcd-analog.c
@@ -319,6 +319,10 @@ static const struct soc_enum hph_enum = SOC_ENUM_SINGLE_VIRT(
 static const struct snd_kcontrol_new ear_mux = SOC_DAPM_ENUM("EAR_S", hph_enum);
 static const struct snd_kcontrol_new hphl_mux = SOC_DAPM_ENUM("HPHL", hph_enum);
 static const struct snd_kcontrol_new hphr_mux = SOC_DAPM_ENUM("HPHR", hph_enum);
+static const struct snd_kcontrol_new hphl_ext_mux = SOC_DAPM_ENUM("HPHL EXT",
+								  hph_enum);
+static const struct snd_kcontrol_new hphr_ext_mux = SOC_DAPM_ENUM("HPHR EXT",
+								  hph_enum);
 
 /* ADC2 MUX */
 static const struct soc_enum adc2_enum = SOC_ENUM_SINGLE_VIRT(
@@ -827,6 +831,11 @@ static const struct snd_soc_dapm_route pm8916_wcd_analog_audio_map[] = {
 	{"HPHL", "Switch", "HPHL PA"},
 	{"HPHR", "Switch", "HPHR PA"},
 
+	{"HPH_L_EXT", NULL, "HPHL EXT"},
+	{"HPHL EXT", "Switch", "HPHL PA"},
+	{"HPH_R_EXT", NULL, "HPHR EXT"},
+	{"HPHR EXT", "Switch", "HPHR PA"},
+
 	{"HPHL DAC", NULL, "EAR_HPHL_CLK"},
 	{"HPHR DAC", NULL, "EAR_HPHR_CLK"},
 
@@ -873,6 +882,12 @@ static const struct snd_soc_dapm_widget pm8916_wcd_analog_dapm_widgets[] = {
 	SND_SOC_DAPM_OUTPUT("HPH_L"),
 	SND_SOC_DAPM_OUTPUT("HPH_R"),
 
+	/* There may be an external speaker amplifier connected to HPHL/HPHR */
+	SND_SOC_DAPM_OUTPUT("HPH_L_EXT"),
+	SND_SOC_DAPM_OUTPUT("HPH_R_EXT"),
+	SND_SOC_DAPM_MUX("HPHL EXT", SND_SOC_NOPM, 0, 0, &hphl_ext_mux),
+	SND_SOC_DAPM_MUX("HPHR EXT", SND_SOC_NOPM, 0, 0, &hphr_ext_mux),
+
 	/* RX stuff */
 	SND_SOC_DAPM_SUPPLY("INT_LDO_H", SND_SOC_NOPM, 1, 0, NULL, 0),
 
-- 
2.31.1

