> Having a GPIO driver within the MAC driver is O.K. For hardware diagnostics you should be using devlink, which many MAC drivers have. So i don't see a need for the PHY driver to access MMS 12. What I was trying to say is that I actually agree the PHY driver does not need to access MMS12. But the MAC driver might need to access MMS-es for vendor specific stuff. In our case, there is a model specific register we need to access during probe. > But we don't want vendor specific extensions. OS 101, the OS is there to make all hardware look the same. And in general, it is not often that vendors actually come up with anything unique. And if they do, and it is useful, other vendors will copy it. So rather than doing vendor specific extensions, you should be thinking about how to export it in a way which is common across multiple vendors. Fair enough, let's keep it for "hacks" then. Still, I think there are features that -initially- are kind of vendor specific, but in the long run they turn into standards or de-facto standards. I assume we want to help this happening (step-wise), don't we? For example, one big feature I think at some point we should understand how to deal with, is topology discovery for multi-drop. Maybe you've heard about it already, but in short it is a feature that allows one PHY to measure the distance (or rather, the propagation delay) to another node on the same multi-drop segment. Knowing the cable Tpd (~5ns/m), this allows you to get also the physical distance. It is a cool feature that has been also standardized in OPEN alliance and many vendors are already implemented it. As for other stuff, we put a lot of effort in convincing the committees to standardize the registers too, and fortunately we did it. The "problem" with topology discovery is that it involves both physical layer functions (to activate the functions that do the actual measurement) but also "upper layer" protocols to communicate with the nodes and carry on the actual measurement. For this "upper layer" stuff we did not define a standard. In my view, we should probably create some PHY extensions in the kernel to activate the physical layer part, leaving the "protocol" to the userland. May I ask your opinion? Thanks, Piergiorgio