Commit 6dad9758 authored by Kuninori Morimoto's avatar Kuninori Morimoto Committed by Mark Brown

ASoC: rsrc-card: enable to use tdm_slot on DT

Renesas sound driver will use tdm slot on TDM Multi Mode support.
This patch enables tdm slot on rsrc card driver on DT.
Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 2b235a3d
...@@ -50,6 +50,10 @@ MODULE_DEVICE_TABLE(of, rsrc_card_of_match); ...@@ -50,6 +50,10 @@ MODULE_DEVICE_TABLE(of, rsrc_card_of_match);
struct rsrc_card_dai { struct rsrc_card_dai {
unsigned int fmt; unsigned int fmt;
unsigned int sysclk; unsigned int sysclk;
unsigned int tx_slot_mask;
unsigned int rx_slot_mask;
int slots;
int slot_width;
struct clk *clk; struct clk *clk;
char dai_name[DAI_NAME_NUM]; char dai_name[DAI_NAME_NUM];
}; };
...@@ -126,6 +130,18 @@ static int rsrc_card_dai_init(struct snd_soc_pcm_runtime *rtd) ...@@ -126,6 +130,18 @@ static int rsrc_card_dai_init(struct snd_soc_pcm_runtime *rtd)
} }
} }
if (dai_props->slots) {
ret = snd_soc_dai_set_tdm_slot(dai,
dai_props->tx_slot_mask,
dai_props->rx_slot_mask,
dai_props->slots,
dai_props->slot_width);
if (ret && ret != -ENOTSUPP) {
dev_err(dai->dev, "set_tdm_slot error\n");
goto err;
}
}
ret = 0; ret = 0;
err: err:
...@@ -198,6 +214,15 @@ static int rsrc_card_parse_links(struct device_node *np, ...@@ -198,6 +214,15 @@ static int rsrc_card_parse_links(struct device_node *np,
if (ret) if (ret)
return ret; return ret;
/* Parse TDM slot */
ret = snd_soc_of_parse_tdm_slot(np,
&dai_props->tx_slot_mask,
&dai_props->rx_slot_mask,
&dai_props->slots,
&dai_props->slot_width);
if (ret)
return ret;
if (is_fe) { if (is_fe) {
/* BE is dummy */ /* BE is dummy */
dai_link->codec_of_node = NULL; dai_link->codec_of_node = NULL;
......
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