Skip to content

Commit c33fd11

Browse files
TE-N-ShengjiuWangbroonie
authored andcommitted
ASoC: fsl_xcvr: Enable 2 * TX bit clock for spdif only case
The bit 10 in TX_DPTH_CTRL register controls the TX clock rate. If this bit is set, TX datapath clock should be = 2* TX bit rate. If this bit is not set, TX datapath clock should be 10* TX bit rate. As the spdif only case, we always use 2 * TX bit clock, so this bit need to be set. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Link: https://lore.kernel.org/r/1700617373-6472-1-git-send-email-shengjiu.wang@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 14e8442 commit c33fd11

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

sound/soc/fsl/fsl_xcvr.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,16 @@ static int fsl_xcvr_prepare(struct snd_pcm_substream *substream,
414414

415415
switch (xcvr->mode) {
416416
case FSL_XCVR_MODE_SPDIF:
417+
if (xcvr->soc_data->spdif_only && tx) {
418+
ret = regmap_update_bits(xcvr->regmap, FSL_XCVR_TX_DPTH_CTRL_SET,
419+
FSL_XCVR_TX_DPTH_CTRL_BYPASS_FEM,
420+
FSL_XCVR_TX_DPTH_CTRL_BYPASS_FEM);
421+
if (ret < 0) {
422+
dev_err(dai->dev, "Failed to set bypass fem: %d\n", ret);
423+
return ret;
424+
}
425+
}
426+
fallthrough;
417427
case FSL_XCVR_MODE_ARC:
418428
if (tx) {
419429
ret = fsl_xcvr_en_aud_pll(xcvr, fout);

0 commit comments

Comments
 (0)