Commit 3349b3d0 authored by Shengjiu Wang's avatar Shengjiu Wang Committed by Mark Brown

ASoC: imx-card: Need special setting for ak4497 on i.MX8MQ

The SAI on i.MX8MQ don't support one2one ratio for mclk:bclk, so
the mclk frequency exceeds the supported range of codec for
the case that sample rate is larger than 705kHZ and format is
S32_LE. Update the supported width for such case.

Fixes: aa736700 ("ASoC: imx-card: Add imx-card machine driver")
Signed-off-by: default avatarShengjiu Wang <shengjiu.wang@nxp.com>
Link: https://lore.kernel.org/r/1641292835-19085-2-git-send-email-shengjiu.wang@nxp.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
parent e4c35e75
...@@ -553,8 +553,23 @@ static int imx_card_parse_of(struct imx_card_data *data) ...@@ -553,8 +553,23 @@ static int imx_card_parse_of(struct imx_card_data *data)
link_data->cpu_sysclk_id = FSL_SAI_CLK_MAST1; link_data->cpu_sysclk_id = FSL_SAI_CLK_MAST1;
/* sai may support mclk/bclk = 1 */ /* sai may support mclk/bclk = 1 */
if (of_find_property(np, "fsl,mclk-equal-bclk", NULL)) if (of_find_property(np, "fsl,mclk-equal-bclk", NULL)) {
link_data->one2one_ratio = true; link_data->one2one_ratio = true;
} else {
int i;
/*
* i.MX8MQ don't support one2one ratio, then
* with ak4497 only 16bit case is supported.
*/
for (i = 0; i < ARRAY_SIZE(ak4497_fs_mul); i++) {
if (ak4497_fs_mul[i].rmin == 705600 &&
ak4497_fs_mul[i].rmax == 768000) {
ak4497_fs_mul[i].wmin = 32;
ak4497_fs_mul[i].wmax = 32;
}
}
}
} }
link->cpus->of_node = args.np; link->cpus->of_node = args.np;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment