Thread (19 messages) 19 messages, 5 authors, 2019-03-11

Re: [PATCH RESEND net] net: phy: xgmiitorgmii: Support generic PHY status read

From: Michal Simek <hidden>
Date: 2019-03-11 12:51:40
Also in: linux-arm-kernel, lkml

On 11. 03. 19 13:27, Harini Katakam wrote:
Hi Andrew,
On Mon, Mar 11, 2019 at 11:34 AM Harini Katakam [off-list ref] wrote:
quoted
Hi Andrew,
On Sat, Mar 9, 2019 at 9:53 PM Andrew Lunn [off-list ref] wrote:
quoted
quoted
Related to this, I have a query on how the DT node for gmii2rgmii should look.
One of the users of gmii2rgmii is Cadence macb driver. In Xilinx tree, we use
this piece of code to register this mdiobus:
+ mdio_np = of_get_child_by_name(np, "mdio");
+ if (mdio_np) {
+ of_node_put(mdio_np);
+ err = of_mdiobus_register(bp->mii_bus, mdio_np);
+ if (err)
+ goto err_out_unregister_bus;

And the DT node looks like this:
ethernet {
    phy-mode = "gmii";
    phy-handle = <&extphy>;

    mdio {
        extphy {
            reg = <x>;
        };
        gmii_to_rgmii{
            compatible = "xlnx,gmii-to-rgmii-1.0";
            phy-handle = <&extphy>;
            reg = <x>;
        };
    };
};
Hi Harini

You have this setup:

MAC <==> GMII2RGMII <==> RGMII_PHY

So you want the MAC phy-handle to point to the gmii_to_rgmii 'PHY'.

Feel free to submit a patch extending
Documentation/devicetree/bindings/net/xilinx_gmii2rgmii.txt to include
a MAC node, etc.
Thank you, will do the same.
Thanks again for your input. So, I did some testing with this change.
But the issue is that, if I point the phy-handle to gmi2rgmii,
of_phy_connect will be called from the MAC and it will fail because gmii2rgmii
is not a PHY driver and it does not have a standard PHY register set or ID.
Which goes back to the discussion above whether this needs to changed in the IP.

But right now, it is a bridge device on the MDIO bus and has no PHY
functionality.
Moreover, any MAC is capable of accessing the external PHY with no interference
in the MDIO path (the gmii2rgmii bridge just acts like another device
on a common bus).

What Michal suggested below in uboot is that they register gmii2rgmii
with a dummy
PHY ID and then attach the external phy driver in its probe. I'm not
sure if this will work
in linux i.e. calling phy_connect_direct inside the gmii2rgmii probe.
In u-boot behavior and wiring is similar to fixed-link phy.

Thanks,
Michal
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help