Re: [PATCH 3/3] net-next: dsa: add new driver for qca8xxx family
flat view
From: Vivien Didelot <hidden>
Date: 2016-09-13 17:12:01
Also in:
lkml
Hi Andrew, Andrew Lunn [off-list ref] writes:
quoted
ok, i will simply substract 1 from the phy_addr inside the mdio callbacks. this would make the code more readable and make the DT binding compliant with the ePAPR spec.It does however need well commenting. It is setting a trap for anybody who puts an external PHY on port 6. If they access that PHY via these functions, the address is off by one. This is the first silicon vendor who made their MDIO addresses for PHYs illogical. So i'm thinking we maybe should add a new function to dsa_switch_ops. /* Return the MDIO address for the PHY for this port. */ int (*phy_port_map(struct dsa_switch *ds, int port); This should return the MDIO address for integrated PHYs only, or -ENODEV if the port does not have an integrated PHY. For an external PHY, a phy-handle should be used. This phy_port_map() is used in dsa_slave_phy_setup(). But dsa_slave_phy_setup() is already too complex, so it needs doing with care.
Note that some switch drivers *have to* register their slave MDIO bus
themselves (e.g. bcm_sf2). This becomes confusing with the DSA
phy_{read,write} ops.
Since the former alternative is prefered, we may want to remove the
latter soon from DSA. If this phy_port_map is needed for that case, it'd
be preferable not to add it.
Thanks,
Vivien