summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/sound/fsl,spdif.txt3
-rw-r--r--sound/soc/fsl/fsl_spdif.c11
2 files changed, 13 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/sound/fsl,spdif.txt b/Documentation/devicetree/bindings/sound/fsl,spdif.txt
index b3f750352c1e..cf3c3556c801 100644
--- a/Documentation/devicetree/bindings/sound/fsl,spdif.txt
+++ b/Documentation/devicetree/bindings/sound/fsl,spdif.txt
@@ -7,7 +7,8 @@ a fibre cable.
Required properties:
- compatible : Compatible list, must contain "fsl,imx35-spdif",
- "fsl,vf610-spdif", "fsl,imx8qm-spdif".
+ "fsl,vf610-spdif", "fsl,imx8qm-spdif",
+ "fsl,imx8mm-spdif"
- reg : Offset and length of the register set for the device.
diff --git a/sound/soc/fsl/fsl_spdif.c b/sound/soc/fsl/fsl_spdif.c
index 668b9bad02ff..e31a134305c4 100644
--- a/sound/soc/fsl/fsl_spdif.c
+++ b/sound/soc/fsl/fsl_spdif.c
@@ -152,6 +152,16 @@ static struct fsl_spdif_soc_data fsl_spdif_imx8qm = {
.constrain_period_size = true,
};
+static struct fsl_spdif_soc_data fsl_spdif_imx8mm = {
+ .imx = true,
+ .tx_burst = FSL_SPDIF_TXFIFO_WML,
+ .rx_burst = FSL_SPDIF_RXFIFO_WML,
+ .interrupts = 1,
+ .tx_formats = FSL_SPDIF_FORMATS_PLAYBACK,
+ .rx_rates = (FSL_SPDIF_RATES_CAPTURE | SNDRV_PCM_RATE_192000),
+ .constrain_period_size = false,
+};
+
/* DPLL locked and lock loss interrupt handler */
static void spdif_irq_dpll_lock(struct fsl_spdif_priv *spdif_priv)
{
@@ -1262,6 +1272,7 @@ static int fsl_spdif_probe_txclk(struct fsl_spdif_priv *spdif_priv,
}
static const struct of_device_id fsl_spdif_dt_ids[] = {
+ { .compatible = "fsl,imx8mm-spdif", .data = &fsl_spdif_imx8mm, },
{ .compatible = "fsl,imx8qm-spdif", .data = &fsl_spdif_imx8qm, },
{ .compatible = "fsl,imx35-spdif", .data = &fsl_spdif_imx35, },
{ .compatible = "fsl,vf610-spdif", .data = &fsl_spdif_vf610, },