On Thu, Jun 18, 2020 at 10:45:54AM +0200, Russell King - ARM Linux admin wrote:
> Why do we need that complexity?  If we decide that we can allow
> phy-mode = "rgmii" and introduce new properties to control the
> delay, then we just need:
> 
>   rgmii-tx-delay-ps = <nnn>;
>   rgmii-rx-delay-ps = <nnn>;
> 
> specified in the MAC node (to be applied only at the MAC end) or
> specified in the PHY node (to be applied only at the PHY end.)
> In the normal case, this would be the standard delay value, but
> in exceptional cases where supported, the delays can be arbitary.
> We know there are PHYs out there which allow other delays.
> 
> This means each end is responsible for parsing these properties in
> its own node and applying them - or raising an error if they can't
> be supported.

Thank you. That makes a lot more sense while keeping the (imo) important
properties of my proposal:
 * It is backwards compatible. These properties override delays
   specified inside phy-mode. Otherwise the vague phy-mode meaning is
   retained.
 * The ambiguity is resolved. It is always clear where delays should be
   configure and the properties properly account for possible PCB
   traces.

It also resolves my original problem. If support for these properties is
added to macb_main.c, it would simply check that both delays are 0 as
internal delays are not supported by the hardware.  When I would have
attempted to configure an rx delay, it would have nicely errored out.

How can we achieve wider consensus on this and put it into the dt
specification? Should there be drivers supporting these first?

Helmut

Reply via email to