From 309a1a330ccaa103a7648e944d97a0032116b338 Mon Sep 17 00:00:00 2001 From: Ziyang Huang Date: Mon, 22 Apr 2024 21:50:39 +0800 Subject: [PATCH] nss_dp_main: support fixed-link Add support for "fixed link" to support ethernet MACs which are not connected to an MDIO managed PHY. For example, IPQ5018 has two internal MACs, one connected to a GE PHY and the other connected to a Uniphy to support connections to an external switch over a fixed link. As such, check for a fixed link in absence of a phy-handle and return an error when no phy-handle and fixed link is found. Signed-off-by: Ziyang Huang Signed-off-by: George Moussalem --- nss_dp_main.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/nss_dp_main.c b/nss_dp_main.c index 9a09edd5..204063bf 100644 --- a/nss_dp_main.c +++ b/nss_dp_main.c @@ -619,11 +619,20 @@ static int32_t nss_dp_of_get_pdata(struct device_node *np, } dp_priv->phy_node = of_parse_phandle(np, "phy-handle", 0); - if (!dp_priv->phy_node) { - pr_err("%s: error parsing phy-handle\n", np->name); - return -EFAULT; + if(!dp_priv->phy_node) { + if(of_phy_is_fixed_link(np)) { + int ret = of_phy_register_fixed_link(np); + if(ret < 0) { + pr_err("%s: fail to register fixed-link: %d\n", np->name, ret); + return -EFAULT; + } + } + dp_priv->phy_node = of_node_get(np); } + if(!dp_priv->phy_node) + pr_err("%s: no phy-handle or fixed-link found\n", np->name); + if (of_property_read_u32(np, "qcom,mactype", &hal_pdata->mactype)) { pr_err("%s: error reading mactype\n", np->name); return -EFAULT; -- 2.40.1