Hi Everyone,

We have a new board which is to be released this year, which has a Inphi 
IN112525 PHY. We are currently developing under kernel 4.9 and using the 
xgmac_mdio driver for the MDIO bus. The long term plan is to have a Inphi 
kernel PHY driver upstream, but right now we want to make it work for 4.9.

Our problem is that:
The Inphi PHY has a vendor specific address space for accessing the C45 MDIO 
registers -  MMD30 address space - starting from 0x1E.
I noticed that during the probing of the MDIO bus, in phy_device.c, 
get_phy_c45_ids(), it first searches for non-zero Devices In package, with the 
dev_addr = 1.
After that, device zero (dev_addr = 0)   is probed ("Device zero is reserved 
for 802.3 c45 complied PHYs[.]") as a special case for Cortina CS4315/CS4340 
PHY.
Since the dev_addr for our Inphi PHY is 0x1E, it never gets found and the PHY 
driver doesn't get registered.
My colleagues have proposed a solution in which another property could be added 
in the PHY device tree node, that would contain the device address (dev_addr). 
This would imply some minor changes in phy_device.c , in get_phy_c45_ids(), but 
the benefit of this would be that it should work for other PHY vendors which 
decide to have a non-standard MDIO register set address.
I have a patch ready for this, but we would like to know if this is right way 
to go about this.

Please share your thoughts on this.

All the best,
Vicentiu  

Reply via email to