| From 307e37122cc14b5b305639c18ea575ebe623da2f Mon Sep 17 00:00:00 2001 |
| From: Viorel Suman <viorel.suman@nxp.com> |
| Date: Sun, 30 Apr 2017 17:05:52 +0300 |
| Subject: [PATCH] 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> |
| --- |
| sound/soc/fsl/fsl_sai.c | 12 ++++++++++++ |
| sound/soc/fsl/fsl_sai.h | 2 +- |
| 2 files changed, 13 insertions(+), 1 deletion(-) |
| |
| --- a/sound/soc/fsl/fsl_sai.c |
| +++ b/sound/soc/fsl/fsl_sai.c |
| @@ -336,14 +336,23 @@ static int fsl_sai_set_dai_fmt_tr(struct |
| |
| 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); |
| @@ -975,6 +984,9 @@ static int fsl_sai_probe(struct platform |
| 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); |
| --- 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]; |