aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/at91/patches-5.10/192-ASoC-codecs-ad193x-add-support-for-96kHz-and-192kHz-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/at91/patches-5.10/192-ASoC-codecs-ad193x-add-support-for-96kHz-and-192kHz-.patch')
-rw-r--r--target/linux/at91/patches-5.10/192-ASoC-codecs-ad193x-add-support-for-96kHz-and-192kHz-.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/target/linux/at91/patches-5.10/192-ASoC-codecs-ad193x-add-support-for-96kHz-and-192kHz-.patch b/target/linux/at91/patches-5.10/192-ASoC-codecs-ad193x-add-support-for-96kHz-and-192kHz-.patch
deleted file mode 100644
index 6220c1dab2..0000000000
--- a/target/linux/at91/patches-5.10/192-ASoC-codecs-ad193x-add-support-for-96kHz-and-192kHz-.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 1c906a59a60887e1b997ebab63f19f33a1c69a3e Mon Sep 17 00:00:00 2001
-From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
-Date: Tue, 3 Aug 2021 13:48:25 +0300
-Subject: [PATCH 192/247] ASoC: codecs: ad193x: add support for 96kHz and
- 192kHz playback rates
-
-ad193x devices support 96KHz and 192KHz sampling rates, when PLL/MCLK is
-referenced to 48kHz.
-Tested on ad1934.
-
-Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
-Link: https://lore.kernel.org/r/20210803104825.2198335-1-codrin.ciubotariu@microchip.com
-Signed-off-by: Mark Brown <broonie@kernel.org>
----
- sound/soc/codecs/ad193x.c | 30 ++++++++++++++++++++++++++++--
- sound/soc/codecs/ad193x.h | 4 ++++
- 2 files changed, 32 insertions(+), 2 deletions(-)
-
---- a/sound/soc/codecs/ad193x.c
-+++ b/sound/soc/codecs/ad193x.c
-@@ -316,6 +316,13 @@ static int ad193x_hw_params(struct snd_p
- int word_len = 0, master_rate = 0;
- struct snd_soc_component *component = dai->component;
- struct ad193x_priv *ad193x = snd_soc_component_get_drvdata(component);
-+ bool is_playback = substream->stream == SNDRV_PCM_STREAM_PLAYBACK;
-+ u8 dacc0;
-+
-+ dev_dbg(dai->dev, "%s() rate=%u format=%#x width=%u channels=%u\n",
-+ __func__, params_rate(params), params_format(params),
-+ params_width(params), params_channels(params));
-+
-
- /* bit size */
- switch (params_width(params)) {
-@@ -346,6 +353,25 @@ static int ad193x_hw_params(struct snd_p
- break;
- }
-
-+ if (is_playback) {
-+ switch (params_rate(params)) {
-+ case 48000:
-+ dacc0 = AD193X_DAC_SR_48;
-+ break;
-+ case 96000:
-+ dacc0 = AD193X_DAC_SR_96;
-+ break;
-+ case 192000:
-+ dacc0 = AD193X_DAC_SR_192;
-+ break;
-+ default:
-+ dev_err(dai->dev, "invalid sampling rate: %d\n", params_rate(params));
-+ return -EINVAL;
-+ }
-+
-+ regmap_update_bits(ad193x->regmap, AD193X_DAC_CTRL0, AD193X_DAC_SR_MASK, dacc0);
-+ }
-+
- regmap_update_bits(ad193x->regmap, AD193X_PLL_CLK_CTRL0,
- AD193X_PLL_INPUT_MASK, master_rate);
-
-@@ -385,7 +411,7 @@ static struct snd_soc_dai_driver ad193x_
- .stream_name = "Playback",
- .channels_min = 2,
- .channels_max = 8,
-- .rates = SNDRV_PCM_RATE_48000,
-+ .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000,
- .formats = SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S16_LE |
- SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE,
- },
-@@ -407,7 +433,7 @@ static struct snd_soc_dai_driver ad193x_
- .stream_name = "Playback",
- .channels_min = 2,
- .channels_max = 8,
-- .rates = SNDRV_PCM_RATE_48000,
-+ .rates = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_192000,
- .formats = SNDRV_PCM_FMTBIT_S32_LE | SNDRV_PCM_FMTBIT_S16_LE |
- SNDRV_PCM_FMTBIT_S20_3LE | SNDRV_PCM_FMTBIT_S24_LE,
- },
---- a/sound/soc/codecs/ad193x.h
-+++ b/sound/soc/codecs/ad193x.h
-@@ -37,6 +37,10 @@ int ad193x_probe(struct device *dev, str
- #define AD193X_PLL_CLK_SRC_MCLK (1 << 1)
- #define AD193X_DAC_CTRL0 0x02
- #define AD193X_DAC_POWERDOWN 0x01
-+#define AD193X_DAC_SR_MASK 0x06
-+#define AD193X_DAC_SR_48 (0 << 1)
-+#define AD193X_DAC_SR_96 (1 << 1)
-+#define AD193X_DAC_SR_192 (2 << 1)
- #define AD193X_DAC_SERFMT_MASK 0xC0
- #define AD193X_DAC_SERFMT_STEREO (0 << 6)
- #define AD193X_DAC_SERFMT_TDM (1 << 6)