Re: [PATCH 1/2] dt-bindings: net: Add TI DP83640

From: Maxime Chevallier
Date: Fri Feb 23 2024 - 10:07:30 EST


Hi Andrew, Bastien,

On Wed, 31 Jan 2024 23:40:45 +0100
Andrew Lunn <andrew@xxxxxxx> wrote:

> On Wed, Jan 31, 2024 at 09:18:39PM +0000, Conor Dooley wrote:
> > On Wed, Jan 31, 2024 at 03:05:21PM -0600, Rob Herring wrote:
> > > On Tue, Jan 30, 2024 at 05:56:37PM +0000, Conor Dooley wrote:
> > > > On Tue, Jan 30, 2024 at 09:59:34AM +0100, Bastien Curutchet wrote:
> >
> > > > > + ti,fiber-mode:
> > > > > + $ref: /schemas/types.yaml#/definitions/uint32
> > > > > + enum: [0, 1]
> > > > > + description: |
> > > > > + If present, enables or disables the FX Fiber Mode.
> > > > > + Fiber mode support can also be strapped. If the strap pin is not set
> > > > > + correctly or not set at all then this can be used to configure it.
> > > > > + - 0 = FX Fiber Mode disabled
> > > > > + - 1 = FX Fiber Mode enabled
> > > > > + - unset = Configured by straps
> > > >
> > > > I don't like these properties that map meanings onto numbers. We can
> > > > have enums of strings in bindings that allow you to use something more
> > > > meaningful than "0" or "1".
> > >
> > > Tristate properties are fairly common pattern where we need
> > > on/off/default. I've thought about making it a type. I don't think we
> > > need defines for it.
> >
> > I think a type would be a good idea. I am not at all a fan of any of the
> > properties people introduce along these lines.
>
> Before going too far with that, i'm not actually sure it is required
> here. I've not looked at the PHY driver itself, but i expect there is
> some indication somewhere that the network stack expects a fibre link
> is to be used. We probably can determine at runtime if fibre should be
> used.

I've missed that thread initially. I guess that if Fiber is to be used,
this would be done through sfp, then we have all the regular interfaces
to configure the phy_interface_mode, in that case that would be
100BaseX.

So, a sane behaviour could simply be to configure the PHY in copper
mode by default, without relying on any DT property ? If anyone wants to
use fiber mode, then they would have to implement the
sfp_upstreamp_ops, which would take care of reconfiguring the MDI
interface of the PHY in the correct mode.

Maxime