diff --git a/target/linux/mediatek/modules.mk b/target/linux/mediatek/modules.mk
index eb81afe2359b135e9522ad317d171ee5b2bdf4cf..9c6fb515f4c6290f5f016a1b416d70bcd3e9a1c0 100644
--- a/target/linux/mediatek/modules.mk
+++ b/target/linux/mediatek/modules.mk
@@ -15,6 +15,18 @@ endef
 
 $(eval $(call KernelPackage,ata-ahci-mtk))
 
+define KernelPackage/btmtkuart
+  SUBMENU:=Other modules
+  TITLE:=MediaTek HCI UART driver
+  DEPENDS:=@TARGET_mediatek_mt7622 +kmod-bluetooth +mt7622bt-firmware
+  KCONFIG:=CONFIG_BT_MTKUART
+  FILES:= \
+	$(LINUX_DIR)/drivers/bluetooth/btmtkuart.ko
+  AUTOLOAD:=$(call AutoProbe,btmtkuart)
+endef
+
+$(eval $(call KernelPackage,btmtkuart))
+
 define KernelPackage/sdhci-mtk
   SUBMENU:=Other modules
   TITLE:=Mediatek SDHCI driver
diff --git a/target/linux/mediatek/mt7622/config-5.4 b/target/linux/mediatek/mt7622/config-5.4
index cf12a1f52c4a93a88902b103bed85a48bc7c0edc..3861704eaaf689df49a4a08f90080854dae3286b 100755
--- a/target/linux/mediatek/mt7622/config-5.4
+++ b/target/linux/mediatek/mt7622/config-5.4
@@ -121,21 +121,6 @@ CONFIG_BLK_SCSI_REQUEST=y
 CONFIG_BLOCK_COMPAT=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_BT=y
-CONFIG_BT_BCM=y
-CONFIG_BT_BREDR=y
-CONFIG_BT_DEBUGFS=y
-CONFIG_BT_HCIUART=y
-CONFIG_BT_HCIUART_BCM=y
-# CONFIG_BT_HCIUART_INTEL is not set
-# CONFIG_BT_HCIUART_NOKIA is not set
-CONFIG_BT_HCIUART_QCA=y
-CONFIG_BT_HCIUART_SERDEV=y
-CONFIG_BT_HCIVHCI=y
-CONFIG_BT_HS=y
-CONFIG_BT_LE=y
-CONFIG_BT_MTKUART=y
-CONFIG_BT_QCA=y
 # CONFIG_CAVIUM_TX2_ERRATUM_219 is not set
 CONFIG_CC_HAS_KASAN_GENERIC=y
 CONFIG_CLKDEV_LOOKUP=y