We have the problem that DT is supposed to describe the hardware. Saying the PHY should add the delays, but if the MAC adds the delays it needs to mask the value passed to the PHY does not describe the hardware, it is Linix implementation details. The DT Maintainers don't want that in the DT binding because other OSes might decide to implement the details differently. So your description becomes: rgmii - PCB has long clock lines so delays are added by the PCB rgmii-id - PCB doesn't add delay. Either MAC or PHY needs to add the delays in both directions. rgmii-rxid - There is an extra long TX clock line on the PCB, but not the RX clock. rgmii-txid - There is an extra long RX clock line on the PCB, but not the TX clock. It is correct, but leaves so much unsaid developers will still get it wrong. What we really want is that developers: 1) Read the mailing list. Patches for RGMII delays are posted at least once an month and i point out how they are wrong. If developers actually read the mails, they would not make the same mistake again and again. 2) Developers for some reason like to invent their own code, rather than taking the easy route of copy from a driver already in Linux. The majority of drivers in Linux get this right, so if you copy another driver, you should get it right for free as well. Andrew