ASoC: adau1372: add support for S24_LE mode
authorMaarten Zanders <maarten.zanders@mind.be>
Fri, 28 Oct 2022 15:26:24 +0000 (17:26 +0200)
committerMark Brown <broonie@kernel.org>
Fri, 25 Nov 2022 19:31:54 +0000 (19:31 +0000)
The ADAU1372 contains 24bit ADCs and DACs. Allow the driver to use
its native mode which uses the same settings as the current 32 bit
mode.

Signed-off-by: Maarten Zanders <maarten.zanders@mind.be>
Link: https://lore.kernel.org/r/20221028152626.109603-3-maarten.zanders@mind.be
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/adau1372.c

index a42fae1..c5e0f10 100644 (file)
@@ -662,6 +662,7 @@ static int adau1372_hw_params(struct snd_pcm_substream *substream,
        case 16:
                sai1 = ADAU1372_SAI1_BCLKRATE;
                break;
+       case 24:
        case 32:
                sai1 = 0;
                break;
@@ -699,6 +700,7 @@ static int adau1372_set_tdm_slot(struct snd_soc_dai *dai, unsigned int tx_mask,
        case 16:
                sai1 = ADAU1372_SAI1_BCLK_TDMC;
                break;
+       case 24:
        case 32:
                sai1 = 0;
                break;
@@ -869,7 +871,9 @@ static const struct snd_soc_dai_ops adau1372_dai_ops = {
        .startup = adau1372_startup,
 };
 
-#define ADAU1372_FORMATS (SNDRV_PCM_FMTBIT_S16_LE |    SNDRV_PCM_FMTBIT_S32_LE)
+#define ADAU1372_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \
+                         SNDRV_PCM_FMTBIT_S24_LE | \
+                         SNDRV_PCM_FMTBIT_S32_LE)
 
 static struct snd_soc_dai_driver adau1372_dai_driver = {
        .name = "adau1372",