diff options
author | Viorel Suman <viorel.suman@nxp.com> | 2017-04-30 17:05:52 +0300 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2019-11-25 15:53:42 +0800 |
commit | cbd9903c627320b525bb10118f57e6b548a6f06c (patch) | |
tree | 982da9464ee6f19bedfc028047031e28d2725bae /sound/soc | |
parent | cd3f08ca6478b402465911f575b4ef1afc5ca75b (diff) |
ASoC: fsl_sai: set specific fmt for I2S XTOR
Set specific fmt, for i2s xtor receiver is
in slave mode and i2s xtor transmitter is in master mode.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Signed-off-by: Viorel Suman <viorel.suman@nxp.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/fsl/fsl_sai.c | 12 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_sai.h | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c index 7651313d5f06..4201a535decb 100644 --- a/sound/soc/fsl/fsl_sai.c +++ b/sound/soc/fsl/fsl_sai.c @@ -335,14 +335,23 @@ static int fsl_sai_set_dai_fmt_tr(struct snd_soc_dai *cpu_dai, static int fsl_sai_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt) { + struct fsl_sai *sai = snd_soc_dai_get_drvdata(cpu_dai); int ret; + if (sai->i2s_xtor) + fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBS_CFS; + ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_TRANSMITTER); if (ret) { dev_err(cpu_dai->dev, "Cannot set tx format: %d\n", ret); return ret; } + if (sai->i2s_xtor) + fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | + SND_SOC_DAIFMT_CBM_CFM; + ret = fsl_sai_set_dai_fmt_tr(cpu_dai, fmt, FSL_FMT_RECEIVER); if (ret) dev_err(cpu_dai->dev, "Cannot set rx format: %d\n", ret); @@ -974,6 +983,9 @@ static int fsl_sai_probe(struct platform_device *pdev) return -EINVAL; } + /* I2S XTOR mode */ + sai->i2s_xtor = (of_find_property(np, "fsl,i2s-xtor", NULL) != NULL); + irq = platform_get_irq(pdev, 0); if (irq < 0) { dev_err(&pdev->dev, "no irq for node %s\n", pdev->name); diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h index 00ea35dca011..bdf8a37cb8ca 100644 --- a/sound/soc/fsl/fsl_sai.h +++ b/sound/soc/fsl/fsl_sai.h @@ -160,7 +160,7 @@ struct fsl_sai { bool slave_mode[2]; bool is_lsb_first; bool is_dsp_mode; - bool sai_on_imx; + bool i2s_xtor; bool synchronous[2]; bool is_stream_opened[2]; unsigned int dataline[2]; |