[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2044096516.560385.1644309521228.JavaMail.zimbra@savoirfairelinux.com>
Date: Tue, 8 Feb 2022 03:38:41 -0500 (EST)
From: Enguerrand de Ribaucourt
<enguerrand.de-ribaucourt@...oirfairelinux.com>
To: Andrew Lunn <andrew@...n.ch>
Cc: netdev <netdev@...r.kernel.org>, hkallweit1 <hkallweit1@...il.com>,
linux <linux@...linux.org.uk>
Subject: Re: [PATCH v2 1/2] net: phy: micrel: add Microchip KSZ 9897 Switch
PHY support
----- Original Message -----
> From: "Andrew Lunn" <andrew@...n.ch>
> To: "Enguerrand de Ribaucourt" <enguerrand.de-ribaucourt@...oirfairelinux.com>
> Cc: "netdev" <netdev@...r.kernel.org>, "hkallweit1" <hkallweit1@...il.com>, "linux" <linux@...linux.org.uk>
> Sent: Tuesday, February 8, 2022 12:28:53 AM
> Subject: Re: [PATCH v2 1/2] net: phy: micrel: add Microchip KSZ 9897 Switch PHY support
> > + /* KSZ8081A3/KSZ8091R1 PHY and KSZ9897 switch share the same
> > + * exact PHY ID. However, they can be told apart by the default value
> > + * of the LED mode. It is 0 for the PHY, and 1 for the switch.
> > + */
> > + ret &= (MICREL_KSZ8081_CTRL2_LED_MODE0 | MICREL_KSZ8081_CTRL2_LED_MODE1);
> > + if (!ksz_8081)
> > + return ret;
> > + else
> > + return !ret;
> What exactly does MICREL_KSZ8081_CTRL2_LED_MODE0 and
> MICREL_KSZ8081_CTRL2_LED_MODE1 mean? We have to be careful in that
> there could be use cases which actually wants to configure the
> LEDs. There have been recent discussions for two other PHYs recently
> where the bootloader is configuring the LEDs, to something other than
> their default value.
Those registers configure the LED Mode according to the KSZ8081 datasheet:
[00] = LED1: Speed LED0: Link/Activity
[01] = LED1: Activity LED0: Link
[10], [11] = Reserved
default value is [00].
Indeed, if the bootloader changes them, we would match the wrong
device. However, I closely examined all the registers, and there is no
read-only bit that we can use to differentiate both models. The
LED mode bits are the only ones that have a different default value on the
KSZ8081: [00] and the KSZ9897: [01]. Also, the RMII registers are not
documented in the KSZ9897 datasheet so that value is not guaranteed to
be [01] even though that's what I observed.
Do you think we should find another way to match KSZ8081 and KSZ9897?
The good news is that I'm now confident about the phy_id emitted by
both models.
Thanks for your help.
> Andrew
Powered by blists - more mailing lists