Message ID | 20220317091926.86765-1-andy.chiu@sifive.com |
---|---|
State | New |
Headers | show |
Series | [v2,1/2] dt-bindings: net: xilinx_axienet: add pcs-handle attribute | expand |
loop in: radhey.shyam.pandey@xilinx.com I am sending this out since I forgot to CC the maintainer of the driver, again... Sorry for being noisy here. Regards, Andy On Thu, Mar 17, 2022 at 5:21 PM Andy Chiu <andy.chiu@sifive.com> wrote: > > In some SGMII use cases where both an external PHY and the internal > PCS/PMA PHY need to be configured, we should explicitly use a phandle > "pcs-phy" to get the reference to the PCS/PMA PHY. Otherwise, the driver > would use "phy-handle" in the DT as the reference to both external and > the internal PCS/PMA PHY. > > In other cases where the core is connected to a SFP cage, we could > fallback, pointing phy-handle to the intenal PCS/PMA PHY, and let the > driver connect to the SFP module, if exist, via phylink. > > Fixes: 1a02556086fc (net: axienet: Properly handle PCS/PMA PHY for 1000BaseX mode) > Signed-off-by: Andy Chiu <andy.chiu@sifive.com> > Reviewed-by: Greentime Hu <greentime.hu@sifive.com> > --- > drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c > index 6fd5157f0a6d..17de81cc0ca5 100644 > --- a/drivers/net/ethernet/xilinx/xilinx_axienet_main.c > +++ b/drivers/net/ethernet/xilinx/xilinx_axienet_main.c > @@ -2078,7 +2078,13 @@ static int axienet_probe(struct platform_device *pdev) > ret = -EINVAL; > goto cleanup_mdio; > } > - lp->pcs_phy = of_mdio_find_device(lp->phy_node); > + np = of_parse_phandle(pdev->dev.of_node, "pcs-handle", 0); > + if (np) { > + lp->pcs_phy = of_mdio_find_device(np); > + of_node_put(np); > + } else { > + lp->pcs_phy = of_mdio_find_device(lp->phy_node); > + } > if (!lp->pcs_phy) { > ret = -EPROBE_DEFER; > goto cleanup_mdio; > -- > 2.34.1 >
loop in: radhey.shyam.pandey@xilinx.com On Thu, Mar 17, 2022 at 5:21 PM Andy Chiu <andy.chiu@sifive.com> wrote: > > Document the new pcs-handle attribute to support connecting to an > external PHY in SGMII or 1000Base-X modes through the internal PCS/PMA > PHY. > > Signed-off-by: Andy Chiu <andy.chiu@sifive.com> > Reviewed-by: Greentime Hu <greentime.hu@sifive.com> > --- > Documentation/devicetree/bindings/net/xilinx_axienet.txt | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/Documentation/devicetree/bindings/net/xilinx_axienet.txt b/Documentation/devicetree/bindings/net/xilinx_axienet.txt > index b8e4894bc634..2a9a3a90eb63 100644 > --- a/Documentation/devicetree/bindings/net/xilinx_axienet.txt > +++ b/Documentation/devicetree/bindings/net/xilinx_axienet.txt > @@ -68,6 +68,11 @@ Optional properties: > required through the core's MDIO interface (i.e. always, > unless the PHY is accessed through a different bus). > > + - pcs-handle: Phandle to the internal PCS/PMA PHY, if a fixed external PHY > + is tied to it in SGMII or 1000Base-X modes. This is not > + required for SFP connection. The driver would use phy-handle > + to reference the PCS/PMA PHY in such case. > + > Example: > axi_ethernet_eth: ethernet@40c00000 { > compatible = "xlnx,axi-ethernet-1.00.a"; > -- > 2.34.1 >
Thanks for the explanation, I will include that on the v3 patchset. Andy
diff --git a/Documentation/devicetree/bindings/net/xilinx_axienet.txt b/Documentation/devicetree/bindings/net/xilinx_axienet.txt index b8e4894bc634..2a9a3a90eb63 100644 --- a/Documentation/devicetree/bindings/net/xilinx_axienet.txt +++ b/Documentation/devicetree/bindings/net/xilinx_axienet.txt @@ -68,6 +68,11 @@ Optional properties: required through the core's MDIO interface (i.e. always, unless the PHY is accessed through a different bus). + - pcs-handle: Phandle to the internal PCS/PMA PHY, if a fixed external PHY + is tied to it in SGMII or 1000Base-X modes. This is not + required for SFP connection. The driver would use phy-handle + to reference the PCS/PMA PHY in such case. + Example: axi_ethernet_eth: ethernet@40c00000 { compatible = "xlnx,axi-ethernet-1.00.a";