Re: PHY reset question

From: Bruno Thomsen
Date: Fri Oct 09 2020 - 10:26:09 EST


Hi Fabio and Oleksij

Den ons. 7. okt. 2020 kl. 11.50 skrev Fabio Estevam <festevam@xxxxxxxxx>:
>
> Hi Oleksij,
>
> On Tue, Oct 6, 2020 at 5:05 AM Oleksij Rempel <o.rempel@xxxxxxxxxxxxxx> wrote:
> >
> > Hello PHY experts,
> >
> > Short version:
> > what is the proper way to handle the PHY reset before identifying PHY?
> >
> > Long version:
> > I stumbled over following issue:
> > If PHY reset is registered within PHY node. Then, sometimes, we will not be
> > able to identify it (read PHY ID), because PHY is under reset.
> >
> > mdio {
> > compatible = "virtual,mdio-gpio";
> >
> > [...]
> >
> > /* Microchip KSZ8081 */
> > usbeth_phy: ethernet-phy@3 {
> > reg = <0x3>;
> >
> > interrupts-extended = <&gpio5 12 IRQ_TYPE_LEVEL_LOW>;
> > reset-gpios = <&gpio5 11 GPIO_ACTIVE_LOW>;
> > reset-assert-us = <500>;
> > reset-deassert-us = <1000>;
> > };
> >
> > [...]
> > };
> >
> > On simple boards with one PHY per MDIO bus, it is easy to workaround by using
> > phy-reset-gpios withing MAC node (illustrated in below DT example), instead of
> > using reset-gpios within PHY node (see above DT example).
> >
> > &fec {
> > [...]
> > phy-mode = "rmii";
> > phy-reset-gpios = <&gpio4 12 GPIO_ACTIVE_LOW>;
> > [...]
>
> I thought this has been fixed by Bruno's series:
> https://www.spinics.net/lists/netdev/msg673611.html

Yes, that has fixed the Microchip/Micrel PHY ID auto detection
issue. I have send a DTS patch v3 that makes use of the newly
added device tree parameter:
https://lkml.org/lkml/2020/9/23/595

/Bruno