ASoC: mediatek: Commonize ADDA rate transform functions and enums
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Wed, 13 Mar 2024 11:01:28 +0000 (12:01 +0100)
committerMark Brown <broonie@kernel.org>
Mon, 25 Mar 2024 14:19:07 +0000 (14:19 +0000)
Both the enumerations for UL/DL rates, delay data and the functions
adda_{dl,ul}_rate_transform were duplicated for each MediaTek SoC
dai-adda driver: move the common bits to a new mtk-dai-adda-common
file and its header.
While at it, also add the "mtk_" prefix to the exported functions.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://msgid.link/r/20240313110147.1267793-4-angelogioacchino.delregno@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/common/Makefile
sound/soc/mediatek/common/mtk-dai-adda-common.c [new file with mode: 0644]
sound/soc/mediatek/common/mtk-dai-adda-common.h [new file with mode: 0644]
sound/soc/mediatek/mt6797/mt6797-dai-adda.c
sound/soc/mediatek/mt8183/mt8183-dai-adda.c
sound/soc/mediatek/mt8186/mt8186-dai-adda.c
sound/soc/mediatek/mt8188/mt8188-dai-adda.c
sound/soc/mediatek/mt8192/mt8192-dai-adda.c
sound/soc/mediatek/mt8195/mt8195-dai-adda.c

index 42e636c10c1ee79ad719274048e2da40c8636315..363cc258a3d55241a96f16d689f4dfa52e5a4fb3 100644 (file)
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 # platform driver
 snd-soc-mtk-common-objs := mtk-afe-platform-driver.o mtk-afe-fe-dai.o mtk-dsp-sof-common.o mtk-soundcard-driver.o
+snd-soc-mtk-common-objs += mtk-dai-adda-common.o
+
 obj-$(CONFIG_SND_SOC_MEDIATEK) += snd-soc-mtk-common.o
 
 obj-$(CONFIG_SND_SOC_MTK_BTCVSD) += mtk-btcvsd.o
diff --git a/sound/soc/mediatek/common/mtk-dai-adda-common.c b/sound/soc/mediatek/common/mtk-dai-adda-common.c
new file mode 100644 (file)
index 0000000..4dc1412
--- /dev/null
@@ -0,0 +1,70 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * MediaTek ALSA SoC Audio DAI ADDA Common
+ *
+ * Copyright (c) 2021 MediaTek Inc.
+ * Copyright (c) 2024 Collabora Ltd.
+ *         AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+ */
+
+#include <linux/delay.h>
+#include <linux/dev_printk.h>
+
+#include "mtk-base-afe.h"
+#include "mtk-dai-adda-common.h"
+
+unsigned int mtk_adda_dl_rate_transform(struct mtk_base_afe *afe, u32 rate)
+{
+       switch (rate) {
+       case 8000:
+               return MTK_AFE_ADDA_DL_RATE_8K;
+       case 11025:
+               return MTK_AFE_ADDA_DL_RATE_11K;
+       case 12000:
+               return MTK_AFE_ADDA_DL_RATE_12K;
+       case 16000:
+               return MTK_AFE_ADDA_DL_RATE_16K;
+       case 22050:
+               return MTK_AFE_ADDA_DL_RATE_22K;
+       case 24000:
+               return MTK_AFE_ADDA_DL_RATE_24K;
+       case 32000:
+               return MTK_AFE_ADDA_DL_RATE_32K;
+       case 44100:
+               return MTK_AFE_ADDA_DL_RATE_44K;
+       case 48000:
+               return MTK_AFE_ADDA_DL_RATE_48K;
+       case 96000:
+               return MTK_AFE_ADDA_DL_RATE_96K;
+       case 192000:
+               return MTK_AFE_ADDA_DL_RATE_192K;
+       default:
+               dev_info(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
+                        __func__, rate);
+               return MTK_AFE_ADDA_DL_RATE_48K;
+       }
+}
+EXPORT_SYMBOL_GPL(mtk_adda_dl_rate_transform);
+
+unsigned int mtk_adda_ul_rate_transform(struct mtk_base_afe *afe, u32 rate)
+{
+       switch (rate) {
+       case 8000:
+               return MTK_AFE_ADDA_UL_RATE_8K;
+       case 16000:
+               return MTK_AFE_ADDA_UL_RATE_16K;
+       case 32000:
+               return MTK_AFE_ADDA_UL_RATE_32K;
+       case 48000:
+               return MTK_AFE_ADDA_UL_RATE_48K;
+       case 96000:
+               return MTK_AFE_ADDA_UL_RATE_96K;
+       case 192000:
+               return MTK_AFE_ADDA_UL_RATE_192K;
+       default:
+               dev_info(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
+                        __func__, rate);
+               return MTK_AFE_ADDA_UL_RATE_48K;
+       }
+}
+EXPORT_SYMBOL_GPL(mtk_adda_ul_rate_transform);
diff --git a/sound/soc/mediatek/common/mtk-dai-adda-common.h b/sound/soc/mediatek/common/mtk-dai-adda-common.h
new file mode 100644 (file)
index 0000000..208b0dd
--- /dev/null
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (c) 2021 MediaTek Inc.
+ * Copyright (c) 2024 Collabora Ltd.
+ *         AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+ */
+
+#ifndef _MTK_DAI_ADDA_COMMON_H_
+#define _MTK_DAI_ADDA_COMMON_H_
+
+struct mtk_base_afe;
+
+enum adda_input_mode_rate {
+       MTK_AFE_ADDA_DL_RATE_8K = 0,
+       MTK_AFE_ADDA_DL_RATE_11K = 1,
+       MTK_AFE_ADDA_DL_RATE_12K = 2,
+       MTK_AFE_ADDA_DL_RATE_16K = 3,
+       MTK_AFE_ADDA_DL_RATE_22K = 4,
+       MTK_AFE_ADDA_DL_RATE_24K = 5,
+       MTK_AFE_ADDA_DL_RATE_32K = 6,
+       MTK_AFE_ADDA_DL_RATE_44K = 7,
+       MTK_AFE_ADDA_DL_RATE_48K = 8,
+       MTK_AFE_ADDA_DL_RATE_96K = 9,
+       MTK_AFE_ADDA_DL_RATE_192K = 10,
+};
+
+enum adda_voice_mode_rate {
+       MTK_AFE_ADDA_UL_RATE_8K = 0,
+       MTK_AFE_ADDA_UL_RATE_16K = 1,
+       MTK_AFE_ADDA_UL_RATE_32K = 2,
+       MTK_AFE_ADDA_UL_RATE_48K = 3,
+       MTK_AFE_ADDA_UL_RATE_96K = 4,
+       MTK_AFE_ADDA_UL_RATE_192K = 5,
+       MTK_AFE_ADDA_UL_RATE_48K_HD = 6,
+};
+
+enum adda_rxif_delay_data {
+       DELAY_DATA_MISO1 = 0,
+       DELAY_DATA_MISO0 = 1,
+       DELAY_DATA_MISO2 = 1,
+};
+
+unsigned int mtk_adda_dl_rate_transform(struct mtk_base_afe *afe, u32 rate);
+unsigned int mtk_adda_ul_rate_transform(struct mtk_base_afe *afe, u32 rate);
+#endif
index 0ac6409c6d61f273003bd27ad1776596f7b529fa..78f3ad758c120cecc04d7980ce5b55c3bbeff239 100644 (file)
 #include "mt6797-afe-common.h"
 #include "mt6797-interconnection.h"
 #include "mt6797-reg.h"
-
-enum {
-       MTK_AFE_ADDA_DL_RATE_8K = 0,
-       MTK_AFE_ADDA_DL_RATE_11K = 1,
-       MTK_AFE_ADDA_DL_RATE_12K = 2,
-       MTK_AFE_ADDA_DL_RATE_16K = 3,
-       MTK_AFE_ADDA_DL_RATE_22K = 4,
-       MTK_AFE_ADDA_DL_RATE_24K = 5,
-       MTK_AFE_ADDA_DL_RATE_32K = 6,
-       MTK_AFE_ADDA_DL_RATE_44K = 7,
-       MTK_AFE_ADDA_DL_RATE_48K = 8,
-       MTK_AFE_ADDA_DL_RATE_96K = 9,
-       MTK_AFE_ADDA_DL_RATE_192K = 10,
-};
-
-enum {
-       MTK_AFE_ADDA_UL_RATE_8K = 0,
-       MTK_AFE_ADDA_UL_RATE_16K = 1,
-       MTK_AFE_ADDA_UL_RATE_32K = 2,
-       MTK_AFE_ADDA_UL_RATE_48K = 3,
-       MTK_AFE_ADDA_UL_RATE_96K = 4,
-       MTK_AFE_ADDA_UL_RATE_192K = 5,
-       MTK_AFE_ADDA_UL_RATE_48K_HD = 6,
-};
-
-static unsigned int adda_dl_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_DL_RATE_8K;
-       case 11025:
-               return MTK_AFE_ADDA_DL_RATE_11K;
-       case 12000:
-               return MTK_AFE_ADDA_DL_RATE_12K;
-       case 16000:
-               return MTK_AFE_ADDA_DL_RATE_16K;
-       case 22050:
-               return MTK_AFE_ADDA_DL_RATE_22K;
-       case 24000:
-               return MTK_AFE_ADDA_DL_RATE_24K;
-       case 32000:
-               return MTK_AFE_ADDA_DL_RATE_32K;
-       case 44100:
-               return MTK_AFE_ADDA_DL_RATE_44K;
-       case 48000:
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_DL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_DL_RATE_192K;
-       default:
-               dev_warn(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       }
-}
-
-static unsigned int adda_ul_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_UL_RATE_8K;
-       case 16000:
-               return MTK_AFE_ADDA_UL_RATE_16K;
-       case 32000:
-               return MTK_AFE_ADDA_UL_RATE_32K;
-       case 48000:
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_UL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_UL_RATE_192K;
-       default:
-               dev_warn(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       }
-}
+#include "../common/mtk-dai-adda-common.h"
 
 /* dai component */
 static const struct snd_kcontrol_new mtk_adda_dl_ch1_mix[] = {
@@ -246,7 +167,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                regmap_write(afe->regmap, AFE_ADDA_PREDIS_CON1, 0);
 
                /* set input sampling rate */
-               dl_src2_con0 = adda_dl_rate_transform(afe, rate) << 28;
+               dl_src2_con0 = mtk_adda_dl_rate_transform(afe, rate) << 28;
 
                /* set output mode */
                switch (rate) {
@@ -296,7 +217,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                                   0x1 << 0,
                                   0x0 << 0);
 
-               voice_mode = adda_ul_rate_transform(afe, rate);
+               voice_mode = mtk_adda_ul_rate_transform(afe, rate);
 
                ul_src_con0 |= (voice_mode << 17) & (0x7 << 17);
 
index 5b8a274419ed141bee0d2c200b69cf961827e63d..be69bcea2a786af7710ef4b173b5a2606f86d91b 100644 (file)
@@ -10,6 +10,7 @@
 #include "mt8183-afe-common.h"
 #include "mt8183-interconnection.h"
 #include "mt8183-reg.h"
+#include "../common/mtk-dai-adda-common.h"
 
 enum {
        AUDIO_SDM_LEVEL_MUTE = 0,
@@ -18,91 +19,6 @@ enum {
        /* you need to change formula of hp impedance and dc trim too */
 };
 
-enum {
-       DELAY_DATA_MISO1 = 0,
-       DELAY_DATA_MISO2,
-};
-
-enum {
-       MTK_AFE_ADDA_DL_RATE_8K = 0,
-       MTK_AFE_ADDA_DL_RATE_11K = 1,
-       MTK_AFE_ADDA_DL_RATE_12K = 2,
-       MTK_AFE_ADDA_DL_RATE_16K = 3,
-       MTK_AFE_ADDA_DL_RATE_22K = 4,
-       MTK_AFE_ADDA_DL_RATE_24K = 5,
-       MTK_AFE_ADDA_DL_RATE_32K = 6,
-       MTK_AFE_ADDA_DL_RATE_44K = 7,
-       MTK_AFE_ADDA_DL_RATE_48K = 8,
-       MTK_AFE_ADDA_DL_RATE_96K = 9,
-       MTK_AFE_ADDA_DL_RATE_192K = 10,
-};
-
-enum {
-       MTK_AFE_ADDA_UL_RATE_8K = 0,
-       MTK_AFE_ADDA_UL_RATE_16K = 1,
-       MTK_AFE_ADDA_UL_RATE_32K = 2,
-       MTK_AFE_ADDA_UL_RATE_48K = 3,
-       MTK_AFE_ADDA_UL_RATE_96K = 4,
-       MTK_AFE_ADDA_UL_RATE_192K = 5,
-       MTK_AFE_ADDA_UL_RATE_48K_HD = 6,
-};
-
-static unsigned int adda_dl_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_DL_RATE_8K;
-       case 11025:
-               return MTK_AFE_ADDA_DL_RATE_11K;
-       case 12000:
-               return MTK_AFE_ADDA_DL_RATE_12K;
-       case 16000:
-               return MTK_AFE_ADDA_DL_RATE_16K;
-       case 22050:
-               return MTK_AFE_ADDA_DL_RATE_22K;
-       case 24000:
-               return MTK_AFE_ADDA_DL_RATE_24K;
-       case 32000:
-               return MTK_AFE_ADDA_DL_RATE_32K;
-       case 44100:
-               return MTK_AFE_ADDA_DL_RATE_44K;
-       case 48000:
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_DL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_DL_RATE_192K;
-       default:
-               dev_warn(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       }
-}
-
-static unsigned int adda_ul_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_UL_RATE_8K;
-       case 16000:
-               return MTK_AFE_ADDA_UL_RATE_16K;
-       case 32000:
-               return MTK_AFE_ADDA_UL_RATE_32K;
-       case 48000:
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_UL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_UL_RATE_192K;
-       default:
-               dev_warn(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       }
-}
-
 /* dai component */
 static const struct snd_kcontrol_new mtk_adda_dl_ch1_mix[] = {
        SOC_DAPM_SINGLE_AUTODISABLE("DL1_CH1", AFE_CONN3, I_DL1_CH1, 1, 0),
@@ -369,7 +285,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                regmap_write(afe->regmap, AFE_ADDA_PREDIS_CON1, 0);
 
                /* set sampling rate */
-               dl_src2_con0 = adda_dl_rate_transform(afe, rate) << 28;
+               dl_src2_con0 = mtk_adda_dl_rate_transform(afe, rate) << 28;
 
                /* set output mode */
                switch (rate) {
@@ -420,7 +336,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                                   0x1 << 0,
                                   0x0 << 0);
 
-               voice_mode = adda_ul_rate_transform(afe, rate);
+               voice_mode = mtk_adda_ul_rate_transform(afe, rate);
 
                ul_src_con0 |= (voice_mode << 17) & (0x7 << 17);
 
index ad6d4b5cf697965b308d42010a34f3ecdc5d96a8..dbd157d1a1ea247583852b59614f0e94f43bfad1 100644 (file)
@@ -11,6 +11,7 @@
 #include "mt8186-afe-common.h"
 #include "mt8186-afe-gpio.h"
 #include "mt8186-interconnection.h"
+#include "../common/mtk-dai-adda-common.h"
 
 enum {
        UL_IIR_SW = 0,
@@ -33,35 +34,6 @@ enum {
        AUDIO_SDM_3RD,
 };
 
-enum {
-       DELAY_DATA_MISO1 = 0,
-       DELAY_DATA_MISO2,
-};
-
-enum {
-       MTK_AFE_ADDA_DL_RATE_8K = 0,
-       MTK_AFE_ADDA_DL_RATE_11K = 1,
-       MTK_AFE_ADDA_DL_RATE_12K = 2,
-       MTK_AFE_ADDA_DL_RATE_16K = 3,
-       MTK_AFE_ADDA_DL_RATE_22K = 4,
-       MTK_AFE_ADDA_DL_RATE_24K = 5,
-       MTK_AFE_ADDA_DL_RATE_32K = 6,
-       MTK_AFE_ADDA_DL_RATE_44K = 7,
-       MTK_AFE_ADDA_DL_RATE_48K = 8,
-       MTK_AFE_ADDA_DL_RATE_96K = 9,
-       MTK_AFE_ADDA_DL_RATE_192K = 10,
-};
-
-enum {
-       MTK_AFE_ADDA_UL_RATE_8K = 0,
-       MTK_AFE_ADDA_UL_RATE_16K = 1,
-       MTK_AFE_ADDA_UL_RATE_32K = 2,
-       MTK_AFE_ADDA_UL_RATE_48K = 3,
-       MTK_AFE_ADDA_UL_RATE_96K = 4,
-       MTK_AFE_ADDA_UL_RATE_192K = 5,
-       MTK_AFE_ADDA_UL_RATE_48K_HD = 6,
-};
-
 #define SDM_AUTO_RESET_THRESHOLD 0x190000
 
 struct mtk_afe_adda_priv {
@@ -83,64 +55,6 @@ static struct mtk_afe_adda_priv *get_adda_priv_by_name(struct mtk_base_afe *afe,
        return afe_priv->dai_priv[dai_id];
 }
 
-static unsigned int adda_dl_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_DL_RATE_8K;
-       case 11025:
-               return MTK_AFE_ADDA_DL_RATE_11K;
-       case 12000:
-               return MTK_AFE_ADDA_DL_RATE_12K;
-       case 16000:
-               return MTK_AFE_ADDA_DL_RATE_16K;
-       case 22050:
-               return MTK_AFE_ADDA_DL_RATE_22K;
-       case 24000:
-               return MTK_AFE_ADDA_DL_RATE_24K;
-       case 32000:
-               return MTK_AFE_ADDA_DL_RATE_32K;
-       case 44100:
-               return MTK_AFE_ADDA_DL_RATE_44K;
-       case 48000:
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_DL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_DL_RATE_192K;
-       default:
-               dev_dbg(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-       }
-
-       return MTK_AFE_ADDA_DL_RATE_48K;
-}
-
-static unsigned int adda_ul_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_UL_RATE_8K;
-       case 16000:
-               return MTK_AFE_ADDA_UL_RATE_16K;
-       case 32000:
-               return MTK_AFE_ADDA_UL_RATE_32K;
-       case 48000:
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_UL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_UL_RATE_192K;
-       default:
-               dev_dbg(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-       }
-
-       return MTK_AFE_ADDA_UL_RATE_48K;
-}
-
 /* dai component */
 static const struct snd_kcontrol_new mtk_adda_dl_ch1_mix[] = {
        SOC_DAPM_SINGLE_AUTODISABLE("DL1_CH1 Switch", AFE_CONN3, I_DL1_CH1, 1, 0),
@@ -658,7 +572,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                adda_priv->dl_rate = rate;
 
                /* set sampling rate */
-               dl_src2_con0 = adda_dl_rate_transform(afe, rate) <<
+               dl_src2_con0 = mtk_adda_dl_rate_transform(afe, rate) <<
                               DL_2_INPUT_MODE_CTL_SFT;
 
                /* set output mode, UP_SAMPLING_RATE_X8 */
@@ -721,7 +635,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                }
        } else {
                unsigned int ul_src_con0 = 0;
-               unsigned int voice_mode = adda_ul_rate_transform(afe, rate);
+               unsigned int voice_mode = mtk_adda_ul_rate_transform(afe, rate);
 
                adda_priv->ul_rate = rate;
                ul_src_con0 |= (voice_mode << 17) & (0x7 << 17);
index 7dc029f2b428366f4fe940ccaf82350afbc088c5..8a17d1935c48f14be2ed15ce019d6dcb2d99a0ed 100644 (file)
@@ -14,6 +14,7 @@
 #include "mt8188-afe-clk.h"
 #include "mt8188-afe-common.h"
 #include "mt8188-reg.h"
+#include "../common/mtk-dai-adda-common.h"
 
 #define ADDA_HIRES_THRES 48000
 
@@ -24,94 +25,10 @@ enum {
        SUPPLY_SEQ_ADDA_AFE_ON,
 };
 
-enum {
-       MTK_AFE_ADDA_DL_RATE_8K = 0,
-       MTK_AFE_ADDA_DL_RATE_11K = 1,
-       MTK_AFE_ADDA_DL_RATE_12K = 2,
-       MTK_AFE_ADDA_DL_RATE_16K = 3,
-       MTK_AFE_ADDA_DL_RATE_22K = 4,
-       MTK_AFE_ADDA_DL_RATE_24K = 5,
-       MTK_AFE_ADDA_DL_RATE_32K = 6,
-       MTK_AFE_ADDA_DL_RATE_44K = 7,
-       MTK_AFE_ADDA_DL_RATE_48K = 8,
-       MTK_AFE_ADDA_DL_RATE_96K = 9,
-       MTK_AFE_ADDA_DL_RATE_192K = 10,
-};
-
-enum {
-       MTK_AFE_ADDA_UL_RATE_8K = 0,
-       MTK_AFE_ADDA_UL_RATE_16K = 1,
-       MTK_AFE_ADDA_UL_RATE_32K = 2,
-       MTK_AFE_ADDA_UL_RATE_48K = 3,
-       MTK_AFE_ADDA_UL_RATE_96K = 4,
-       MTK_AFE_ADDA_UL_RATE_192K = 5,
-};
-
-enum {
-       DELAY_DATA_MISO1 = 0,
-       DELAY_DATA_MISO0 = 1,
-};
-
 struct mtk_dai_adda_priv {
        bool hires_required;
 };
 
-static unsigned int afe_adda_dl_rate_transform(struct mtk_base_afe *afe,
-                                              unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_DL_RATE_8K;
-       case 11025:
-               return MTK_AFE_ADDA_DL_RATE_11K;
-       case 12000:
-               return MTK_AFE_ADDA_DL_RATE_12K;
-       case 16000:
-               return MTK_AFE_ADDA_DL_RATE_16K;
-       case 22050:
-               return MTK_AFE_ADDA_DL_RATE_22K;
-       case 24000:
-               return MTK_AFE_ADDA_DL_RATE_24K;
-       case 32000:
-               return MTK_AFE_ADDA_DL_RATE_32K;
-       case 44100:
-               return MTK_AFE_ADDA_DL_RATE_44K;
-       case 48000:
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_DL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_DL_RATE_192K;
-       default:
-               dev_info(afe->dev, "%s(), rate %u invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       }
-}
-
-static unsigned int afe_adda_ul_rate_transform(struct mtk_base_afe *afe,
-                                              unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_UL_RATE_8K;
-       case 16000:
-               return MTK_AFE_ADDA_UL_RATE_16K;
-       case 32000:
-               return MTK_AFE_ADDA_UL_RATE_32K;
-       case 48000:
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_UL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_UL_RATE_192K;
-       default:
-               dev_info(afe->dev, "%s(), rate %u invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       }
-}
-
 static int mt8188_adda_mtkaif_init(struct mtk_base_afe *afe)
 {
        struct mt8188_afe_private *afe_priv = afe->platform_priv;
@@ -440,7 +357,7 @@ static int mtk_dai_da_configure(struct mtk_base_afe *afe,
        /* set sampling rate */
        mask |= DL_2_INPUT_MODE_CTL_MASK;
        val |= FIELD_PREP(DL_2_INPUT_MODE_CTL_MASK,
-                         afe_adda_dl_rate_transform(afe, rate));
+                         mtk_adda_dl_rate_transform(afe, rate));
 
        /* turn off saturation */
        mask |= DL_2_CH1_SATURATION_EN_CTL;
@@ -474,7 +391,7 @@ static int mtk_dai_ad_configure(struct mtk_base_afe *afe,
 
        mask = UL_VOICE_MODE_CTL_MASK;
        val = FIELD_PREP(UL_VOICE_MODE_CTL_MASK,
-                        afe_adda_ul_rate_transform(afe, rate));
+                        mtk_adda_ul_rate_transform(afe, rate));
 
        regmap_update_bits(afe->regmap, AFE_ADDA_UL_SRC_CON0,
                           mask, val);
index 36d33032a37a63dcfc9be87947ca4709202bc9c0..99de85b876435599cbe37e790c8fb17499c27c11 100644 (file)
@@ -13,6 +13,7 @@
 #include "mt8192-afe-common.h"
 #include "mt8192-afe-gpio.h"
 #include "mt8192-interconnection.h"
+#include "../common/mtk-dai-adda-common.h"
 
 enum {
        UL_IIR_SW = 0,
@@ -35,93 +36,8 @@ enum {
        AUDIO_SDM_3RD,
 };
 
-enum {
-       DELAY_DATA_MISO1 = 0,
-       DELAY_DATA_MISO2,
-};
-
-enum {
-       MTK_AFE_ADDA_DL_RATE_8K = 0,
-       MTK_AFE_ADDA_DL_RATE_11K = 1,
-       MTK_AFE_ADDA_DL_RATE_12K = 2,
-       MTK_AFE_ADDA_DL_RATE_16K = 3,
-       MTK_AFE_ADDA_DL_RATE_22K = 4,
-       MTK_AFE_ADDA_DL_RATE_24K = 5,
-       MTK_AFE_ADDA_DL_RATE_32K = 6,
-       MTK_AFE_ADDA_DL_RATE_44K = 7,
-       MTK_AFE_ADDA_DL_RATE_48K = 8,
-       MTK_AFE_ADDA_DL_RATE_96K = 9,
-       MTK_AFE_ADDA_DL_RATE_192K = 10,
-};
-
-enum {
-       MTK_AFE_ADDA_UL_RATE_8K = 0,
-       MTK_AFE_ADDA_UL_RATE_16K = 1,
-       MTK_AFE_ADDA_UL_RATE_32K = 2,
-       MTK_AFE_ADDA_UL_RATE_48K = 3,
-       MTK_AFE_ADDA_UL_RATE_96K = 4,
-       MTK_AFE_ADDA_UL_RATE_192K = 5,
-       MTK_AFE_ADDA_UL_RATE_48K_HD = 6,
-};
-
 #define SDM_AUTO_RESET_THRESHOLD 0x190000
 
-static unsigned int adda_dl_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_DL_RATE_8K;
-       case 11025:
-               return MTK_AFE_ADDA_DL_RATE_11K;
-       case 12000:
-               return MTK_AFE_ADDA_DL_RATE_12K;
-       case 16000:
-               return MTK_AFE_ADDA_DL_RATE_16K;
-       case 22050:
-               return MTK_AFE_ADDA_DL_RATE_22K;
-       case 24000:
-               return MTK_AFE_ADDA_DL_RATE_24K;
-       case 32000:
-               return MTK_AFE_ADDA_DL_RATE_32K;
-       case 44100:
-               return MTK_AFE_ADDA_DL_RATE_44K;
-       case 48000:
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_DL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_DL_RATE_192K;
-       default:
-               dev_warn(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       }
-}
-
-static unsigned int adda_ul_rate_transform(struct mtk_base_afe *afe,
-                                          unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_UL_RATE_8K;
-       case 16000:
-               return MTK_AFE_ADDA_UL_RATE_16K;
-       case 32000:
-               return MTK_AFE_ADDA_UL_RATE_32K;
-       case 48000:
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_UL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_UL_RATE_192K;
-       default:
-               dev_warn(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       }
-}
-
 /* dai component */
 static const struct snd_kcontrol_new mtk_adda_dl_ch1_mix[] = {
        SOC_DAPM_SINGLE_AUTODISABLE("DL1_CH1", AFE_CONN3, I_DL1_CH1, 1, 0),
@@ -1156,7 +1072,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                unsigned int dl_src2_con1 = 0;
 
                /* set sampling rate */
-               dl_src2_con0 = adda_dl_rate_transform(afe, rate) <<
+               dl_src2_con0 = mtk_adda_dl_rate_transform(afe, rate) <<
                               DL_2_INPUT_MODE_CTL_SFT;
 
                /* set output mode, UP_SAMPLING_RATE_X8 */
@@ -1246,7 +1162,7 @@ static int mtk_dai_adda_hw_params(struct snd_pcm_substream *substream,
                unsigned int voice_mode = 0;
                unsigned int ul_src_con0 = 0;   /* default value */
 
-               voice_mode = adda_ul_rate_transform(afe, rate);
+               voice_mode = mtk_adda_ul_rate_transform(afe, rate);
 
                ul_src_con0 |= (voice_mode << 17) & (0x7 << 17);
 
index 0dd35255066bec82d13682dc1615044dd939dd3d..8da1587128ccf22ff0bdd945e13336911067d01c 100644 (file)
@@ -12,6 +12,7 @@
 #include "mt8195-afe-clk.h"
 #include "mt8195-afe-common.h"
 #include "mt8195-reg.h"
+#include "../common/mtk-dai-adda-common.h"
 
 #define ADDA_DL_GAIN_LOOPBACK 0x1800
 #define ADDA_HIRES_THRES 48000
@@ -25,35 +26,6 @@ enum {
        SUPPLY_SEQ_ADDA_AFE_ON,
 };
 
-enum {
-       MTK_AFE_ADDA_DL_RATE_8K = 0,
-       MTK_AFE_ADDA_DL_RATE_11K = 1,
-       MTK_AFE_ADDA_DL_RATE_12K = 2,
-       MTK_AFE_ADDA_DL_RATE_16K = 3,
-       MTK_AFE_ADDA_DL_RATE_22K = 4,
-       MTK_AFE_ADDA_DL_RATE_24K = 5,
-       MTK_AFE_ADDA_DL_RATE_32K = 6,
-       MTK_AFE_ADDA_DL_RATE_44K = 7,
-       MTK_AFE_ADDA_DL_RATE_48K = 8,
-       MTK_AFE_ADDA_DL_RATE_96K = 9,
-       MTK_AFE_ADDA_DL_RATE_192K = 10,
-};
-
-enum {
-       MTK_AFE_ADDA_UL_RATE_8K = 0,
-       MTK_AFE_ADDA_UL_RATE_16K = 1,
-       MTK_AFE_ADDA_UL_RATE_32K = 2,
-       MTK_AFE_ADDA_UL_RATE_48K = 3,
-       MTK_AFE_ADDA_UL_RATE_96K = 4,
-       MTK_AFE_ADDA_UL_RATE_192K = 5,
-};
-
-enum {
-       DELAY_DATA_MISO1 = 0,
-       DELAY_DATA_MISO0 = 1,
-       DELAY_DATA_MISO2 = 1,
-};
-
 enum {
        MTK_AFE_ADDA,
        MTK_AFE_ADDA6,
@@ -63,62 +35,6 @@ struct mtk_dai_adda_priv {
        bool hires_required;
 };
 
-static unsigned int afe_adda_dl_rate_transform(struct mtk_base_afe *afe,
-                                              unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_DL_RATE_8K;
-       case 11025:
-               return MTK_AFE_ADDA_DL_RATE_11K;
-       case 12000:
-               return MTK_AFE_ADDA_DL_RATE_12K;
-       case 16000:
-               return MTK_AFE_ADDA_DL_RATE_16K;
-       case 22050:
-               return MTK_AFE_ADDA_DL_RATE_22K;
-       case 24000:
-               return MTK_AFE_ADDA_DL_RATE_24K;
-       case 32000:
-               return MTK_AFE_ADDA_DL_RATE_32K;
-       case 44100:
-               return MTK_AFE_ADDA_DL_RATE_44K;
-       case 48000:
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_DL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_DL_RATE_192K;
-       default:
-               dev_info(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_DL_RATE_48K;
-       }
-}
-
-static unsigned int afe_adda_ul_rate_transform(struct mtk_base_afe *afe,
-                                              unsigned int rate)
-{
-       switch (rate) {
-       case 8000:
-               return MTK_AFE_ADDA_UL_RATE_8K;
-       case 16000:
-               return MTK_AFE_ADDA_UL_RATE_16K;
-       case 32000:
-               return MTK_AFE_ADDA_UL_RATE_32K;
-       case 48000:
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       case 96000:
-               return MTK_AFE_ADDA_UL_RATE_96K;
-       case 192000:
-               return MTK_AFE_ADDA_UL_RATE_192K;
-       default:
-               dev_info(afe->dev, "%s(), rate %d invalid, use 48kHz!!!\n",
-                        __func__, rate);
-               return MTK_AFE_ADDA_UL_RATE_48K;
-       }
-}
-
 static int mt8195_adda_mtkaif_init(struct mtk_base_afe *afe)
 {
        struct mt8195_afe_private *afe_priv = afe->platform_priv;
@@ -644,7 +560,7 @@ static int mtk_dai_da_configure(struct mtk_base_afe *afe,
 
        /* set sampling rate */
        mask |= DL_2_INPUT_MODE_CTL_MASK;
-       val |= DL_2_INPUT_MODE_CTL(afe_adda_dl_rate_transform(afe, rate));
+       val |= DL_2_INPUT_MODE_CTL(mtk_adda_dl_rate_transform(afe, rate));
 
        /* turn off saturation */
        mask |= DL_2_CH1_SATURATION_EN_CTL;
@@ -681,7 +597,7 @@ static int mtk_dai_ad_configure(struct mtk_base_afe *afe,
        unsigned int mask = 0;
 
        mask |= UL_VOICE_MODE_CTL_MASK;
-       val |= UL_VOICE_MODE_CTL(afe_adda_ul_rate_transform(afe, rate));
+       val |= UL_VOICE_MODE_CTL(mtk_adda_ul_rate_transform(afe, rate));
 
        switch (id) {
        case MT8195_AFE_IO_UL_SRC1: