]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: amd: acp: Add I2S TDM support for acp7.1 platform
authorVenkata Prasad Potturu <venkataprasad.potturu@amd.com>
Tue, 3 Sep 2024 11:34:27 +0000 (17:04 +0530)
committerMark Brown <broonie@kernel.org>
Tue, 3 Sep 2024 11:57:50 +0000 (12:57 +0100)
Add acp71 revision id to support i2s/tdm mode.

Signed-off-by: Venkata Prasad Potturu <venkataprasad.potturu@amd.com>
Link: https://patch.msgid.link/20240903113427.182997-13-venkataprasad.potturu@amd.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp/acp-i2s.c
sound/soc/amd/acp/acp-platform.c

index 74f2ad62e5969084910b5561086628d7b42f30fa..56ce9e4b6accc78eeb5c612c9d46d4ba17a34114 100644 (file)
@@ -61,6 +61,7 @@ static inline void acp_set_i2s_clk(struct acp_dev_data *adata, int dai_id)
        switch (chip->acp_rev) {
        case ACP63_DEV:
        case ACP70_DEV:
+       case ACP71_DEV:
                val |= FIELD_PREP(ACP63_LRCLK_DIV_FIELD, adata->lrclk_div);
                val |= FIELD_PREP(ACP63_BCLK_DIV_FIELD, adata->bclk_div);
                break;
@@ -136,6 +137,7 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
                break;
        case ACP63_DEV:
        case ACP70_DEV:
+       case ACP71_DEV:
                switch (slots) {
                case 1 ... 31:
                        no_of_slots = slots;
@@ -169,6 +171,7 @@ static int acp_i2s_set_tdm_slot(struct snd_soc_dai *dai, u32 tx_mask, u32 rx_mas
                        break;
                case ACP63_DEV:
                case ACP70_DEV:
+               case ACP71_DEV:
                        if (tx_mask && stream->dir == SNDRV_PCM_STREAM_PLAYBACK)
                                adata->tdm_tx_fmt[stream->dai_id - 1] =
                                                FRM_LEN | (slots << 13) | (slot_len << 18);
index 6ef9baeed74aeb078c2b897e9310528a84c2df13..ae63b2e693ab5cfd95f20460d48c023926b5c309 100644 (file)
@@ -206,6 +206,7 @@ void config_acp_dma(struct acp_dev_data *adata, struct acp_stream *stream, int s
 
        switch (adata->platform) {
        case ACP70:
+       case ACP71:
                switch (stream->dai_id) {
                case I2S_SP_INSTANCE:
                        if (stream->dir == SNDRV_PCM_STREAM_PLAYBACK)
@@ -271,6 +272,7 @@ static int acp_dma_open(struct snd_soc_component *component, struct snd_pcm_subs
        switch (chip->acp_rev) {
        case ACP63_DEV:
        case ACP70_DEV:
+       case ACP71_DEV:
                if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
                        runtime->hw = acp6x_pcm_hardware_playback;
                else