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