Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd22000a authored by Mark Brown's avatar Mark Brown
Browse files

ASoC: wm8994: Lower AIFnCLK divisor when dropping to 32kHz



When lowering SYSCLK to 50kHz for accessory detection also lower the
AIFnCLK divisor to normalise the clocking configuration within the
device. This will not disrupt audio as we cannot support active audio
with such a low SYSCLK.

Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 6730049a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -2258,6 +2258,18 @@ static int _wm8994_set_fll(struct snd_soc_codec *codec, int id, int src,

	configure_clock(codec);

	/*
	 * If SYSCLK will be less than 50kHz adjust AIFnCLK dividers
	 * for detection.
	 */
	if (max(wm8994->aifclk[0], wm8994->aifclk[1]) < 50000) {
		dev_dbg(codec->dev, "Configuring AIFs for 128fs\n");
		snd_soc_update_bits(codec, WM8994_AIF1_RATE,
				    WM8994_AIF1CLK_RATE_MASK, 0x1);
		snd_soc_update_bits(codec, WM8994_AIF2_RATE,
				    WM8994_AIF2CLK_RATE_MASK, 0x1);
	}

	return 0;
}