These nodes are used for configuring a GMAC interface
and for defining external PHYs to be accessed with MDIO.
None of this is possible on MT7620N, only MT7620A,
so remove them from all MT7620N DTS.
When the mdio-bus node is missing, the driver returns -NODEV
which causes the internal switch to not initialize.
Replace that return so that everything works without the DTS node.
Also, an extra kernel message to indicate for all error conditions
that mdio-bus is disabled.
Fixes: d482356322c9 ("ramips: mt7620n: add mdio node and disable port4 by default")
Fixes: aa5014dd1a58 ("ramips: mt7620n: enable port 4 as EPHY by default")
Signed-off-by: Michael Pratt <mcpratt@pm.me>
(cherry picked from commit
a2acdf9607045e5669c305c57dd7c77be8351ba0)
reset-names = "fe", "esw";
mediatek,switch = <&gsw>;
-
- mdio-bus {
- #address-cells = <1>;
- #size-cells = <0>;
-
- status = "disabled";
- };
-
- port@4 {
- compatible = "mediatek,mt7620a-gsw-port", "mediatek,eth-port";
- reg = <4>;
-
- status = "disabled";
- };
};
gsw: gsw@10110000 {
status = "okay";
};
-ðernet {
- port@4 {
- status = "okay";
- };
-};
-
&state_default {
default {
groups = "spi refclk", "i2c", "ephy", "wled";
status = "okay";
};
-ðernet {
- port@4 {
- status = "okay";
- };
-};
-
&state_default {
default {
groups = "spi refclk", "i2c", "ephy", "wled";
mii_np = of_get_child_by_name(priv->dev->of_node, "mdio-bus");
if (!mii_np) {
dev_err(priv->dev, "no %s child node found", "mdio-bus");
- return -ENODEV;
+ err = 0;
+ goto err_no_bus;
}
if (!of_device_is_available(mii_np)) {
kfree(priv->mii_bus);
err_put_node:
of_node_put(mii_np);
+err_no_bus:
+ dev_err(priv->dev, "%s disabled", "mdio-bus");
priv->mii_bus = NULL;
return err;
}