diff options
author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2018-08-08 15:07:43 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:33:23 +0800 |
commit | eebafe1c819710effd986a424ba272bfdfe0a831 (patch) | |
tree | 81afbc6a5c48fac0ba0854339a75bd2036a04083 /sound | |
parent | 730144951273f11da7a2d1a78d6fb2bf469e1449 (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>
(cherry picked from commit 7c92a75fcf83ec0aa3fe6773e4cb5f5e88a1ff09)
Diffstat (limited to 'sound')
-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 */ |