summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_spdif.c
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2018-06-11 15:54:03 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:54:18 +0800
commit590ec64bb50a71c77b60b157d65b64846b56bb79 (patch)
treee4bdda7d1d5eda86cbcb7fc05a9c264130939525 /sound/soc/fsl/fsl_spdif.c
parent70e9a07d29d63c64fb365a5bb632621842f8e8d4 (diff)
MLK-18574: ASoC: fsl_spdif: support 192kHz for rx in imx8
The ipg clock is higher enough to support 192kHz in imx8 Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
Diffstat (limited to 'sound/soc/fsl/fsl_spdif.c')
-rw-r--r--sound/soc/fsl/fsl_spdif.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_spdif.c b/sound/soc/fsl/fsl_spdif.c
index bf3e8e6de1a2..668b9bad02ff 100644
--- a/sound/soc/fsl/fsl_spdif.c
+++ b/sound/soc/fsl/fsl_spdif.c
@@ -50,6 +50,7 @@ struct fsl_spdif_soc_data {
u32 rx_burst;
u32 interrupts;
u64 tx_formats;
+ u64 rx_rates;
};
/*
@@ -127,6 +128,7 @@ static struct fsl_spdif_soc_data fsl_spdif_vf610 = {
.rx_burst = FSL_SPDIF_RXFIFO_WML,
.interrupts = 1,
.tx_formats = FSL_SPDIF_FORMATS_PLAYBACK,
+ .rx_rates = FSL_SPDIF_RATES_CAPTURE,
.constrain_period_size = false,
};
@@ -136,6 +138,7 @@ static struct fsl_spdif_soc_data fsl_spdif_imx35 = {
.rx_burst = FSL_SPDIF_RXFIFO_WML,
.interrupts = 1,
.tx_formats = FSL_SPDIF_FORMATS_PLAYBACK,
+ .rx_rates = FSL_SPDIF_RATES_CAPTURE,
.constrain_period_size = false,
};
@@ -145,6 +148,7 @@ static struct fsl_spdif_soc_data fsl_spdif_imx8qm = {
.rx_burst = 2,
.interrupts = 2,
.tx_formats = SNDRV_PCM_FMTBIT_S24_LE,
+ .rx_rates = (FSL_SPDIF_RATES_CAPTURE | SNDRV_PCM_RATE_192000),
.constrain_period_size = true,
};
@@ -1295,6 +1299,8 @@ static int fsl_spdif_probe(struct platform_device *pdev)
spdif_priv->cpu_dai_drv.name = dev_name(&pdev->dev);
spdif_priv->cpu_dai_drv.playback.formats =
spdif_priv->soc->tx_formats;
+ spdif_priv->cpu_dai_drv.capture.rates =
+ spdif_priv->soc->rx_rates;
/* Get the addresses and IRQ */
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);