diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index 46ec9416b44b..a8c42c245086 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -1625,6 +1625,7 @@ static int rockchip_i2s_tdm_probe(struct platform_device *pdev) struct snd_soc_dai_driver *soc_dai; struct resource *res; void __iomem *regs; + bool sync; int ret; int val; @@ -1672,7 +1673,11 @@ static int rockchip_i2s_tdm_probe(struct platform_device *pdev) if (IS_ERR(i2s_tdm->grf)) return PTR_ERR(i2s_tdm->grf); - if (i2s_tdm->clk_trcm) { + sync = of_device_is_compatible(node, "rockchip,px30-i2s-tdm") || + of_device_is_compatible(node, "rockchip,rk1808-i2s-tdm") || + of_device_is_compatible(node, "rockchip,rk3308-i2s-tdm"); + + if (i2s_tdm->clk_trcm && sync) { cru_node = of_parse_phandle(node, "rockchip,cru", 0); i2s_tdm->cru_base = of_iomap(cru_node, 0); if (!i2s_tdm->cru_base)