diff options
author | Nicolin Chen <Guangyu.Chen@freescale.com> | 2014-04-01 07:34:09 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-04-14 12:26:05 -0400 |
commit | c754064453e0d48043bd6a111f5c1f8ef1b75f7e (patch) | |
tree | 0b19315a843deff25b83d3aad804cffbd41e6c4a /sound/soc/fsl | |
parent | 8abba5d64835c636d97ac0009ab7430ed832cb93 (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.c | 12 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_sai.h | 1 |
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 | ||
641 | static const struct of_device_id fsl_sai_ids[] = { | 648 | static 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; |