summaryrefslogtreecommitdiff
path: root/sound/soc
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2018-08-08 15:07:43 +0800
committerLeonard Crestez <leonard.crestez@nxp.com>2018-08-24 12:41:33 +0300
commit2c85c0bc5e76ce8df03acaaf72264838e2941322 (patch)
treeb35a1c4aa11a74deea7c0218e73156b1fe00d578 /sound/soc
parentcf6f59bb98e254c2de210cb653535c780b4e081e (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.c12
-rw-r--r--sound/soc/fsl/fsl_rpmsg_i2s.h19
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 */