_mt7620_mii_write(gsw, gsw->ephy_base + 4, 4, 0x05e1);
_mt7620_mii_write(gsw, gsw->ephy_base + 4, 16, 0x1313);
pr_info("gsw: setting port4 to ephy mode\n");
- } else if (!mdio_mode) {
- u32 val = rt_sysc_r32(SYSC_REG_CFG1);
-
- val &= ~(3 << 14);
- rt_sysc_w32(val, SYSC_REG_CFG1);
- pr_info("gsw: setting port4 to gmac mode\n");
}
}
(size != (4 * sizeof(*priv->phy->phy_fixed[id])))) {
pr_err("%s: invalid fixed link property\n", np->name);
priv->phy->phy_fixed[id] = NULL;
- return;
}
#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 10, 0)
return;
}
- priv->phy->phy_node[id] = of_parse_phandle(np, "phy-handle", 0);
- if (!priv->phy->phy_node[id] && !priv->phy->phy_fixed[id])
- return;
-
val = rt_sysc_r32(SYSC_REG_CFG1);
val &= ~(3 << shift);
val |= mask << shift;
val = 2;
break;
default:
- dev_err(priv->dev, "invalid link speed: %d\n",
- priv->phy->speed[id]);
+ dev_err(priv->dev, "port %d - invalid link speed: %d\n",
+ id, priv->phy->speed[id]);
priv->phy->phy_fixed[id] = 0;
return;
}
if (priv->phy->duplex[id])
val |= PMCR_DUPLEX;
mtk_switch_w32(gsw, val, GSW_REG_PORT_PMCR(id));
- dev_info(priv->dev, "using fixed link parameters\n");
+ dev_info(priv->dev, "port %d - using fixed link parameters\n", id);
+ return;
+ }
+
+ priv->phy->phy_node[id] = of_parse_phandle(np, "phy-handle", 0);
+ if (!priv->phy->phy_node[id]) {
+ dev_err(priv->dev, "port %d - missing phy handle\n", id);
return;
}
fe_connect_phy_node(priv, priv->phy->phy_node[id], id);
gsw->autopoll |= BIT(be32_to_cpup(phy_addr));
mt7620_auto_poll(gsw,id);
- return;
}
}