From 4839aa8e7a20f930d12823015c6e4580420fcbcd Mon Sep 17 00:00:00 2001 From: Shunhua Lan Date: Wed, 13 Mar 2024 09:37:14 +0800 Subject: [PATCH] ASoC: rockchip: i2s-tdm: add i2s wait time init Signed-off-by: Shunhua Lan Change-Id: I6c63349aec6d8f69a2b9981dd79f62dca64f27df --- sound/soc/rockchip/rockchip_i2s_tdm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sound/soc/rockchip/rockchip_i2s_tdm.c b/sound/soc/rockchip/rockchip_i2s_tdm.c index 65baeed24202..86ccfadb8d80 100644 --- a/sound/soc/rockchip/rockchip_i2s_tdm.c +++ b/sound/soc/rockchip/rockchip_i2s_tdm.c @@ -2654,6 +2654,22 @@ static int rockchip_i2s_tdm_get_calibrate_mclks(struct rk_i2s_tdm_dev *i2s_tdm) return 0; } +static int rockchip_i2s_tdm_wait_time_init(struct rk_i2s_tdm_dev *i2s_tdm) +{ + unsigned int wait_time; + + if (!device_property_read_u32(i2s_tdm->dev, "rockchip,i2s-tx-wait-time-ms", &wait_time)) { + dev_info(i2s_tdm->dev, "Init TX wait-time-ms: %d\n", wait_time); + i2s_tdm->wait_time[SNDRV_PCM_STREAM_PLAYBACK] = wait_time; + } + + if (!device_property_read_u32(i2s_tdm->dev, "rockchip,i2s-rx-wait-time-ms", &wait_time)) { + dev_info(i2s_tdm->dev, "Init RX wait-time-ms: %d\n", wait_time); + i2s_tdm->wait_time[SNDRV_PCM_STREAM_CAPTURE] = wait_time; + } + return 0; +} + static int rockchip_i2s_tdm_path_prepare(struct rk_i2s_tdm_dev *i2s_tdm, struct device_node *np, bool is_rx_path) @@ -3005,6 +3021,8 @@ static int rockchip_i2s_tdm_probe(struct platform_device *pdev) i2s_tdm->clk_trcm = TRCM_RX; } + rockchip_i2s_tdm_wait_time_init(i2s_tdm); + ret = rockchip_i2s_tdm_init_dai(i2s_tdm); if (ret) return ret;