@@ -226,6 +226,29 @@ static const char *const hp_spkvol_switch[] = {
"HPVOL: HPL+HPR, SPKVOL: SPKL+SPKR",
};
+static const char *const hp_det_resistance[] = {
+ "10K",
+ "5K",
+};
+
+static const char *const micbias_resistance[] = {
+ "5.5K",
+ "4.5K",
+ "3.6K",
+ "2.8K",
+ "2.1K",
+ "1.5K",
+ "1.0K",
+ "0.6K",
+};
+
+static const char *const button_resistance[] = {
+ "100 percent",
+ "90 percent",
+ "80 percent",
+ "70 percent",
+};
+
static const struct soc_enum dacpol =
SOC_ENUM_SINGLE(ES8326_DAC_DSM, 4, 4, dacpol_txt);
static const struct soc_enum alc_winsize =
@@ -234,6 +257,12 @@ static const struct soc_enum drc_winsize =
SOC_ENUM_SINGLE(ES8326_DRC_WINSIZE, 4, 16, winsize);
static const struct soc_enum hpvol_spkvol_switch =
SOC_ENUM_SINGLE(ES8326_HP_MISC, 6, 4, hp_spkvol_switch);
+static const struct soc_enum hp_det =
+ SOC_ENUM_SINGLE(ES8326_ANA_MICBIAS, 7, 2, hp_det_resistance);
+static const struct soc_enum micbias_res =
+ SOC_ENUM_SINGLE(ES8326_ANA_MICBIAS, 4, 8, micbias_resistance);
+static const struct soc_enum button_res =
+ SOC_ENUM_SINGLE(ES8326_ANA_MICBIAS, 0, 4, button_resistance);
static const struct snd_kcontrol_new es8326_snd_controls[] = {
SOC_SINGLE_TLV("DAC Playback Volume", ES8326_DACL_VOL, 0, 0xbf, 0, dac_vol_tlv),
@@ -270,6 +299,9 @@ static const struct snd_kcontrol_new es8326_snd_controls[] = {
SOC_SINGLE_TLV("SPKR Playback Volume", ES8326_SPKR_VOL, 0, 0xbf, 0, dac_vol_tlv),
SOC_ENUM("HPVol SPKVol Switch", hpvol_spkvol_switch),
+ SOC_ENUM("Hpdet Resistance", hp_det),
+ SOC_ENUM("Micbias Resistance", micbias_res),
+ SOC_ENUM("Button Resistance", button_res),
};
static const struct snd_soc_dapm_widget es8326_dapm_widgets[] = {
We get headphone detect issue.And we fix it with the new kcontrols Signed-off-by: Zhang Yi <zhangyi@everest-semi.com> --- sound/soc/codecs/es8326.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+)