OSDN Git Service

ASoC: max9867: add mono playback switch
authorPavel Dobias <dobias@2n.cz>
Wed, 20 May 2020 07:19:03 +0000 (09:19 +0200)
committerMark Brown <broonie@kernel.org>
Wed, 20 May 2020 14:48:19 +0000 (15:48 +0100)
Add Mono Playback switch to codec controls which enables codec's
capability of mixing left and right channel at the DAC output.

Signed-off-by: Pavel Dobias <dobias@2n.cz>
Link: https://lore.kernel.org/r/20200520071904.15801-5-dobias@2n.cz
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/max9867.c

index 22e06a7..f100070 100644 (file)
@@ -79,6 +79,7 @@ static const struct snd_kcontrol_new max9867_snd_controls[] = {
        SOC_ENUM("DSP Filter", max9867_filter),
        SOC_ENUM("ADC Filter", max9867_adc_filter),
        SOC_ENUM("DAC Filter", max9867_dac_filter),
+       SOC_SINGLE("Mono Playback Switch", MAX9867_IFC1B, 3, 1, 0),
 };
 
 /* Input mixer */
@@ -361,7 +362,8 @@ static int max9867_dai_set_fmt(struct snd_soc_dai *codec_dai,
        }
 
        regmap_write(max9867->regmap, MAX9867_IFC1A, iface1A);
-       regmap_write(max9867->regmap, MAX9867_IFC1B, iface1B);
+       regmap_update_bits(max9867->regmap, MAX9867_IFC1B,
+                          MAX9867_IFC1B_BCLK_MASK, iface1B);
 
        return 0;
 }