aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc/fsl
diff options
context:
space:
mode:
authorNicolin Chen <Guangyu.Chen@freescale.com>2014-04-01 07:34:09 -0400
committerMark Brown <broonie@linaro.org>2014-04-14 12:26:05 -0400
commitc754064453e0d48043bd6a111f5c1f8ef1b75f7e (patch)
tree0b19315a843deff25b83d3aad804cffbd41e6c4a /sound/soc/fsl
parent8abba5d64835c636d97ac0009ab7430ed832cb93 (diff)
ASoC: fsl_sai: Add imx6sx platform support
The next coming i.MX6 Solo X SoC also contains SAI module while we use imp_pcm_init() for i.MX platform. So this patch adds one compatible route for imx6sx and updates the DT doc accordingly. Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'sound/soc/fsl')
-rw-r--r--sound/soc/fsl/fsl_sai.c12
-rw-r--r--sound/soc/fsl/fsl_sai.h1
2 files changed, 11 insertions, 2 deletions
diff --git a/sound/soc/fsl/fsl_sai.c b/sound/soc/fsl/fsl_sai.c
index 21de5bd1c9c5..dde084273c64 100644
--- a/sound/soc/fsl/fsl_sai.c
+++ b/sound/soc/fsl/fsl_sai.c
@@ -22,6 +22,7 @@
22#include <sound/pcm_params.h> 22#include <sound/pcm_params.h>
23 23
24#include "fsl_sai.h" 24#include "fsl_sai.h"
25#include "imx-pcm.h"
25 26
26#define FSL_SAI_FLAGS (FSL_SAI_CSR_SEIE |\ 27#define FSL_SAI_FLAGS (FSL_SAI_CSR_SEIE |\
27 FSL_SAI_CSR_FEIE) 28 FSL_SAI_CSR_FEIE)
@@ -592,6 +593,9 @@ static int fsl_sai_probe(struct platform_device *pdev)
592 593
593 sai->pdev = pdev; 594 sai->pdev = pdev;
594 595
596 if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx6sx-sai"))
597 sai->sai_on_imx = true;
598
595 sai->big_endian_regs = of_property_read_bool(np, "big-endian-regs"); 599 sai->big_endian_regs = of_property_read_bool(np, "big-endian-regs");
596 if (sai->big_endian_regs) 600 if (sai->big_endian_regs)
597 fsl_sai_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG; 601 fsl_sai_regmap_config.val_format_endian = REGMAP_ENDIAN_BIG;
@@ -634,12 +638,16 @@ static int fsl_sai_probe(struct platform_device *pdev)
634 if (ret) 638 if (ret)
635 return ret; 639 return ret;
636 640
637 return devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 641 if (sai->sai_on_imx)
638 SND_DMAENGINE_PCM_FLAG_NO_RESIDUE); 642 return imx_pcm_dma_init(pdev);
643 else
644 return devm_snd_dmaengine_pcm_register(&pdev->dev, NULL,
645 SND_DMAENGINE_PCM_FLAG_NO_RESIDUE);
639} 646}
640 647
641static const struct of_device_id fsl_sai_ids[] = { 648static const struct of_device_id fsl_sai_ids[] = {
642 { .compatible = "fsl,vf610-sai", }, 649 { .compatible = "fsl,vf610-sai", },
650 { .compatible = "fsl,imx6sx-sai", },
643 { /* sentinel */ } 651 { /* sentinel */ }
644}; 652};
645 653
diff --git a/sound/soc/fsl/fsl_sai.h b/sound/soc/fsl/fsl_sai.h
index be26d46ee737..677670d62fcd 100644
--- a/sound/soc/fsl/fsl_sai.h
+++ b/sound/soc/fsl/fsl_sai.h
@@ -130,6 +130,7 @@ struct fsl_sai {
130 bool big_endian_regs; 130 bool big_endian_regs;
131 bool big_endian_data; 131 bool big_endian_data;
132 bool is_dsp_mode; 132 bool is_dsp_mode;
133 bool sai_on_imx;
133 134
134 struct snd_dmaengine_dai_dma_data dma_params_rx; 135 struct snd_dmaengine_dai_dma_data dma_params_rx;
135 struct snd_dmaengine_dai_dma_data dma_params_tx; 136 struct snd_dmaengine_dai_dma_data dma_params_tx;