MLK-22400-1: ASoC: fsl_rpmsg_i2s: Add rpmsg i2s for imx8mn
authorShengjiu Wang <shengjiu.wang@nxp.com>
Wed, 7 Aug 2019 02:56:52 +0000 (10:56 +0800)
committerShengjiu Wang <shengjiu.wang@nxp.com>
Fri, 16 Aug 2019 05:45:06 +0000 (13:45 +0800)
The rpmsg i2s audio is supported with codec wm8524 in imx8mn

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
(cherry picked from commit 68ad8218321cec6006acdb3df846da8bc6994792)

Documentation/devicetree/bindings/sound/fsl,rpmsg-i2s.txt
sound/soc/fsl/fsl_rpmsg_i2s.c

index 27de48e..77e73d3 100644 (file)
@@ -8,7 +8,7 @@ Required properties:
 
   - compatible         : Compatible list, contains "fsl,imx7ulp-rpmsg-i2s".
                                "fsl,imx8mq-rpmsg-i2s", "fsl,imx8qxp-rpmsg-i2s"
-                               "fsl,imx8qm-rpmsg-i2s"
+                               "fsl,imx8qm-rpmsg-i2s", "fsl,imx8mn-rpmsg-i2s"
 
   - fsl,audioindex      : This is an index indicating the audio device index in
                          the M4 side.
index 0beb67c..4ba1511 100644 (file)
@@ -155,6 +155,7 @@ static const struct of_device_id fsl_rpmsg_i2s_ids[] = {
        { .compatible = "fsl,imx8mq-rpmsg-i2s"},
        { .compatible = "fsl,imx8qxp-rpmsg-i2s"},
        { .compatible = "fsl,imx8qm-rpmsg-i2s"},
+       { .compatible = "fsl,imx8mn-rpmsg-i2s"},
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, fsl_rpmsg_i2s_ids);
@@ -296,6 +297,21 @@ static int fsl_rpmsg_i2s_probe(struct platform_device *pdev)
                fsl_rpmsg_i2s_dai.capture.formats = rpmsg_i2s->formats;
        }
 
+       if (of_device_is_compatible(pdev->dev.of_node,
+                                   "fsl,imx8mn-rpmsg-i2s")) {
+               rpmsg_i2s->codec_dummy = 1;
+               rpmsg_i2s->version = 2;
+               rpmsg_i2s->rates = SNDRV_PCM_RATE_KNOT;
+               rpmsg_i2s->formats = SNDRV_PCM_FMTBIT_S16_LE |
+                                       SNDRV_PCM_FMTBIT_S24_LE |
+                                       SNDRV_PCM_FMTBIT_S32_LE;
+
+               fsl_rpmsg_i2s_dai.playback.rates = rpmsg_i2s->rates;
+               fsl_rpmsg_i2s_dai.playback.formats = rpmsg_i2s->formats;
+               fsl_rpmsg_i2s_dai.capture.rates = rpmsg_i2s->rates;
+               fsl_rpmsg_i2s_dai.capture.formats = rpmsg_i2s->formats;
+       }
+
        if (of_property_read_bool(pdev->dev.of_node, "fsl,enable-lpa"))
                rpmsg_i2s->enable_lpa = 1;