Unverified Commit 14b4b5fd authored by Venkata Prasad Potturu's avatar Venkata Prasad Potturu Committed by Mark Brown
Browse files

ASoC: amd: acp: Set bclk as source to set pll for rt5682s codec



Some platforms doesn't have reference mclk pin to codec,
so set bclk as a clk source for rt5682s codec pll in tdm mode.

Signed-off-by: default avatarVenkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://lore.kernel.org/r/20231206110620.1695591-7-venkataprasad.potturu@amd.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent ff5a698c
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -282,6 +282,22 @@ static int acp_card_rt5682_hw_params(struct snd_pcm_substream *substream,
		return ret;
	}

	if (drvdata->tdm_mode) {
		ret = snd_soc_dai_set_pll(codec_dai, RT5682S_PLL1, RT5682S_PLL_S_BCLK1,
					  6144000, 49152000);
		if (ret < 0) {
			dev_err(rtd->dev, "Failed to set codec PLL: %d\n", ret);
			return ret;
		}

		ret = snd_soc_dai_set_sysclk(codec_dai, RT5682S_SCLK_S_PLL1,
					     49152000, SND_SOC_CLOCK_IN);
		if (ret < 0) {
			dev_err(rtd->dev, "Failed to set codec SYSCLK: %d\n", ret);
			return ret;
		}
	}

	/* Set tdm/i2s1 master bclk ratio */
	ret = snd_soc_dai_set_bclk_ratio(codec_dai, ch * format);
	if (ret < 0) {