diff --git a/src/mainboard/google/cherry/Makefile.mk b/src/mainboard/google/cherry/Makefile.mk
index 5fe1339..41ec839 100644
--- a/src/mainboard/google/cherry/Makefile.mk
+++ b/src/mainboard/google/cherry/Makefile.mk
@@ -14,7 +14,6 @@
 romstage-y += regulator.c
 romstage-y += reset.c
 romstage-y += romstage.c
-romstage-y += sdram_configs.c
 
 ramstage-y += memlayout.ld
 ramstage-y += boardid.c
diff --git a/src/mainboard/google/cherry/sdram_configs.c b/src/mainboard/google/cherry/sdram_configs.c
deleted file mode 100644
index de6bdd1..0000000
--- a/src/mainboard/google/cherry/sdram_configs.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_param.h>
-
-const struct sdram_info *get_sdram_config(void)
-{
-	/*
-	 * The MT8195 platform supports "dram adaptive" feature to
-	 * automatically detect dram information, including channel, rank, die size...,
-	 * and can automatically configure EMI settings.
-	 * So we will be passing a placeholder param blob.
-	 */
-	static struct sdram_info params;
-	return &params;
-}
diff --git a/src/mainboard/google/corsola/Makefile.mk b/src/mainboard/google/corsola/Makefile.mk
index 5483167..1442f33 100644
--- a/src/mainboard/google/corsola/Makefile.mk
+++ b/src/mainboard/google/corsola/Makefile.mk
@@ -14,7 +14,6 @@
 romstage-y += regulator.c
 romstage-y += reset.c
 romstage-y += romstage.c
-romstage-y += sdram_configs.c
 
 ramstage-y += memlayout.ld
 ramstage-y += boardid.c
diff --git a/src/mainboard/google/corsola/sdram_configs.c b/src/mainboard/google/corsola/sdram_configs.c
deleted file mode 100644
index f565f53..0000000
--- a/src/mainboard/google/corsola/sdram_configs.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_param.h>
-
-const struct sdram_info *get_sdram_config(void)
-{
-	/*
-	 * The MT8186 platform supports "dram adaptive" feature to
-	 * automatically detect dram information, including channel, rank, die size...,
-	 * and can automatically configure EMI settings.
-	 * So we will be passing a placeholder param blob.
-	 */
-	static struct sdram_info params;
-	return &params;
-}
diff --git a/src/mainboard/google/geralt/Makefile.mk b/src/mainboard/google/geralt/Makefile.mk
index b1af289..0975c5c 100644
--- a/src/mainboard/google/geralt/Makefile.mk
+++ b/src/mainboard/google/geralt/Makefile.mk
@@ -15,7 +15,6 @@
 romstage-y += regulator.c
 romstage-y += reset.c
 romstage-y += romstage.c
-romstage-y += sdram_configs.c
 
 ramstage-y += memlayout.ld
 ramstage-y += boardid.c
diff --git a/src/mainboard/google/geralt/sdram_configs.c b/src/mainboard/google/geralt/sdram_configs.c
deleted file mode 100644
index c4766be..0000000
--- a/src/mainboard/google/geralt/sdram_configs.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#include <soc/dramc_param.h>
-
-const struct sdram_info *get_sdram_config(void)
-{
-	/*
-	 * The MT8188 platform supports "dram adaptive" feature to automatically
-	 * detect dram information, including channel, rank, die size..., and
-	 * can automatically configure EMI settings. Therefore, we will be
-	 * passing a placeholder param blob.
-	 */
-	static struct sdram_info params;
-	return &params;
-}
diff --git a/src/soc/mediatek/common/Kconfig b/src/soc/mediatek/common/Kconfig
index 898918a..55ea5ec 100644
--- a/src/soc/mediatek/common/Kconfig
+++ b/src/soc/mediatek/common/Kconfig
@@ -8,6 +8,21 @@
 
 if SOC_MEDIATEK_COMMON
 
+config MEDIATEK_DRAM_ADAPTIVE
+	bool
+	default n if SOC_MEDIATEK_MT8173
+	default n if SOC_MEDIATEK_MT8183
+	default n if SOC_MEDIATEK_MT8192
+	default y
+	help
+	  Starting from MT8195, MediaTek platform supports "dram adaptive" to
+	  automatically detect dram information, including channel, rank, die
+	  size..., and can automatically configure EMI settings. So we can just
+	  pass a placeholder param blob to `mt_mem_init_run` by enabling this
+	  option.
+	  Platforms (MT8173, MT8183, MT8192) which do not support "dram adaptive"
+	  need to implement `get_sdram_config` to get the DRAM configuration info.
+
 config MEDIATEK_DRAM_DVFS
 	bool
 	default n
diff --git a/src/soc/mediatek/common/include/soc/dramc_param_common.h b/src/soc/mediatek/common/include/soc/dramc_param_common.h
index 429f3c6..7dd8bba 100644
--- a/src/soc/mediatek/common/include/soc/dramc_param_common.h
+++ b/src/soc/mediatek/common/include/soc/dramc_param_common.h
@@ -101,4 +101,6 @@
 	u32 data_rate;
 };
 
+const struct sdram_info *get_sdram_config(void);
+
 #endif
diff --git a/src/soc/mediatek/common/memory.c b/src/soc/mediatek/common/memory.c
index be72023..72ea37e 100644
--- a/src/soc/mediatek/common/memory.c
+++ b/src/soc/mediatek/common/memory.c
@@ -313,7 +313,13 @@
 
 void mt_mem_init(struct dramc_param *dparam)
 {
-	const struct sdram_info *sdram_param = get_sdram_config();
+	const struct sdram_info *sdram_param = NULL;
+	static struct sdram_info fake_sdram_param;
+
+	if (CONFIG(MEDIATEK_DRAM_ADAPTIVE))
+		sdram_param = &fake_sdram_param;
+	else
+		sdram_param = get_sdram_config();
 
 	mt_mem_init_run(dparam, sdram_param);
 }
diff --git a/src/soc/mediatek/mt8186/include/soc/dramc_param.h b/src/soc/mediatek/mt8186/include/soc/dramc_param.h
index 2d6212b..29380c2 100644
--- a/src/soc/mediatek/mt8186/include/soc/dramc_param.h
+++ b/src/soc/mediatek/mt8186/include/soc/dramc_param.h
@@ -78,7 +78,6 @@
 	struct dramc_data dramc_datas;
 };
 
-const struct sdram_info *get_sdram_config(void);
 struct dramc_param *get_dramc_param_from_blob(void *blob);
 void dump_param_header(const void *blob);
 int initialize_dramc_param(void *blob);
diff --git a/src/soc/mediatek/mt8188/include/soc/dramc_param.h b/src/soc/mediatek/mt8188/include/soc/dramc_param.h
index 88e2a90..740e27b 100644
--- a/src/soc/mediatek/mt8188/include/soc/dramc_param.h
+++ b/src/soc/mediatek/mt8188/include/soc/dramc_param.h
@@ -98,7 +98,6 @@
 	struct dramc_data dramc_datas;
 };
 
-const struct sdram_info *get_sdram_config(void);
 struct dramc_param *get_dramc_param_from_blob(void *blob);
 void dump_param_header(const void *blob);
 int validate_dramc_param(const void *blob);
diff --git a/src/soc/mediatek/mt8192/include/soc/dramc_param.h b/src/soc/mediatek/mt8192/include/soc/dramc_param.h
index c4f1293..fca82be 100644
--- a/src/soc/mediatek/mt8192/include/soc/dramc_param.h
+++ b/src/soc/mediatek/mt8192/include/soc/dramc_param.h
@@ -73,7 +73,6 @@
 	struct dramc_data dramc_datas;
 };
 
-const struct sdram_info *get_sdram_config(void);
 struct dramc_param *get_dramc_param_from_blob(void *blob);
 void dump_param_header(const void *blob);
 int validate_dramc_param(const void *blob);
diff --git a/src/soc/mediatek/mt8195/include/soc/dramc_param.h b/src/soc/mediatek/mt8195/include/soc/dramc_param.h
index 7c66b70..0885ee0 100644
--- a/src/soc/mediatek/mt8195/include/soc/dramc_param.h
+++ b/src/soc/mediatek/mt8195/include/soc/dramc_param.h
@@ -73,7 +73,6 @@
 	struct dramc_data dramc_datas;
 };
 
-const struct sdram_info *get_sdram_config(void);
 struct dramc_param *get_dramc_param_from_blob(void *blob);
 void dump_param_header(const void *blob);
 int validate_dramc_param(const void *blob);
