diff options
author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2018-08-08 15:07:43 +0800 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | 2c85c0bc5e76ce8df03acaaf72264838e2941322 (patch) | |
tree | b35a1c4aa11a74deea7c0218e73156b1fe00d578 /sound/soc | |
parent | cf6f59bb98e254c2de210cb653535c780b4e081e (diff) |
MLK-19168-4: ASoC: fsl_rpmsg_i2s: support more codec
support more codecs, codec is specified by compatible string
Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/fsl/fsl_rpmsg_i2s.c | 12 | ||||
-rw-r--r-- | sound/soc/fsl/fsl_rpmsg_i2s.h | 19 |
2 files changed, 27 insertions, 4 deletions
diff --git a/sound/soc/fsl/fsl_rpmsg_i2s.c b/sound/soc/fsl/fsl_rpmsg_i2s.c index 202906cd3c98..b7ace88f2d93 100644 --- a/sound/soc/fsl/fsl_rpmsg_i2s.c +++ b/sound/soc/fsl/fsl_rpmsg_i2s.c @@ -107,6 +107,7 @@ static const struct snd_soc_component_driver fsl_component = { static const struct of_device_id fsl_rpmsg_i2s_ids[] = { { .compatible = "fsl,imx7ulp-rpmsg-i2s"}, { .compatible = "fsl,imx8mq-rpmsg-i2s"}, + { .compatible = "fsl,imx8qxp-rpmsg-i2s"}, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, fsl_rpmsg_i2s_ids); @@ -170,7 +171,7 @@ static int fsl_rpmsg_i2s_probe(struct platform_device *pdev) if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx7ulp-rpmsg-i2s")) { - rpmsg_i2s->codec = 1; + rpmsg_i2s->codec_wm8960 = 1; rpmsg_i2s->version = 1; rpmsg_i2s->rates = SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_16000 | @@ -183,8 +184,15 @@ static int fsl_rpmsg_i2s_probe(struct platform_device *pdev) } if (of_device_is_compatible(pdev->dev.of_node, + "fsl,imx8qxp-rpmsg-i2s")) { + rpmsg_i2s->codec_wm8960 = 1 + (1 << 16); + rpmsg_i2s->version = 1; + rpmsg_i2s->codec_cs42888 = 1 + (2 << 16); + } + + if (of_device_is_compatible(pdev->dev.of_node, "fsl,imx8mq-rpmsg-i2s")) { - rpmsg_i2s->codec = 0; + rpmsg_i2s->codec_wm8960 = 0; rpmsg_i2s->version = 2; rpmsg_i2s->rates = SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_48000 | diff --git a/sound/soc/fsl/fsl_rpmsg_i2s.h b/sound/soc/fsl/fsl_rpmsg_i2s.h index 9c5105c0ecf6..e52c861c4d43 100644 --- a/sound/soc/fsl/fsl_rpmsg_i2s.h +++ b/sound/soc/fsl/fsl_rpmsg_i2s.h @@ -410,7 +410,8 @@ struct fsl_rpmsg_i2s { struct platform_device *pdev; struct i2s_info i2s_info; struct pm_qos_request pm_qos_req; - int codec; + int codec_wm8960; + int codec_cs42888; int force_lpa; int version; int rates; @@ -418,6 +419,20 @@ struct fsl_rpmsg_i2s { int enable_lpa; }; -#define RPMSG_CODEC_DRV_NAME "rpmsg-audio-codec" +#define RPMSG_CODEC_DRV_NAME_WM8960 "rpmsg-audio-codec-wm8960" +#define RPMSG_CODEC_DRV_NAME_CS42888 "rpmsg-audio-codec-cs42888" + +struct fsl_rpmsg_codec { + int audioindex; + + /*property for wm8960*/ + bool capless; + bool shared_lrclk; + + /*property for cs42xx8*/ + + char name[32]; + int num_adcs; +}; #endif /* __FSL_RPMSG_I2S_H */ |