diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index acfa0ebecd712e97e198548366a575b2882dc542..d48a415d50c99d80c7e3ed1e27b1596b9e3e8ea4 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -891,7 +891,11 @@ ar8216_phy_write(struct ar8xxx_priv *priv, int addr, int regnum, u16 val)
 static int
 ar8229_hw_init(struct ar8xxx_priv *priv)
 {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)
+	phy_interface_t phy_if_mode;
+#else
 	int phy_if_mode;
+#endif
 
 	if (priv->initialized)
 		return 0;
@@ -899,7 +903,11 @@ ar8229_hw_init(struct ar8xxx_priv *priv)
 	ar8xxx_write(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET);
 	ar8xxx_reg_wait(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET, 0, 1000);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0)
+	of_get_phy_mode(priv->pdev->of_node, &phy_if_mode);
+#else
 	phy_if_mode = of_get_phy_mode(priv->pdev->of_node);
+#endif
 
 	if (phy_if_mode == PHY_INTERFACE_MODE_GMII) {
 		ar8xxx_write(priv, AR8229_REG_OPER_MODE0,