diff --git a/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c b/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
index 533f69e..b6f3f5e 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/phy/mediatek-ge.c
@@ -1360,40 +1360,6 @@
 
 static int mt7988_phy_probe(struct phy_device *phydev)
 {
-	struct device_node *np;
-	void __iomem *boottrap;
-	u32 reg;
-	int port;
-
-	/* Setup LED polarity according to boottrap's polarity */
-	np = of_find_compatible_node(NULL, NULL, "mediatek,boottrap");
-	if (!np)
-		return -ENOENT;
-	boottrap = of_iomap(np, 0);
-	if (!boottrap)
-		return -ENOMEM;
-	reg = readl(boottrap);
-	port = phydev->mdio.addr;
-	if ((port == GPHY_PORT0 && reg & BIT(8)) ||
-	    (port == GPHY_PORT1 && reg & BIT(9)) ||
-	    (port == GPHY_PORT2 && reg & BIT(10)) ||
-	    (port == GPHY_PORT3 && reg & BIT(11))) {
-		phy_write_mmd(phydev, MDIO_MMD_VEND2, MTK_PHY_LED0_ON_CTRL,
-			      MTK_PHY_LED0_ENABLE | MTK_PHY_LED0_ON_LINK10 |
-			      MTK_PHY_LED0_ON_LINK100 |
-			      MTK_PHY_LED0_ON_LINK1000);
-	} else {
-		phy_write_mmd(phydev, MDIO_MMD_VEND2, MTK_PHY_LED0_ON_CTRL,
-			      MTK_PHY_LED0_ENABLE | MTK_PHY_LED0_POLARITY |
-			      MTK_PHY_LED0_ON_LINK10 |
-			      MTK_PHY_LED0_ON_LINK100 |
-			      MTK_PHY_LED0_ON_LINK1000);
-	}
-	phy_write_mmd(phydev, MDIO_MMD_VEND2, MTK_PHY_LED0_BLINK_CTRL,
-		      MTK_PHY_LED0_1000TX | MTK_PHY_LED0_1000RX |
-		      MTK_PHY_LED0_100TX  | MTK_PHY_LED0_100RX  |
-		      MTK_PHY_LED0_10TX   | MTK_PHY_LED0_10RX);
-
 	mt7988_phy_finetune(phydev);
 
 	return mt798x_phy_calibration(phydev);
