[PATCH] net: dwc_eth_qos: add support of device tree configuration for reset delay

Ramon Fried rfried.dev at gmail.com
Thu Apr 15 08:08:05 CEST 2021


On Thu, Apr 15, 2021 at 4:41 AM Ramon Fried <rfried.dev at gmail.com> wrote:
>
> On Wed, Apr 14, 2021 at 5:36 PM Marek Vasut <marex at denx.de> wrote:
> >
> > On 4/14/21 4:07 PM, Patrick DELAUNAY wrote:
> > > Hi,
> >
> > Hi,
> >
> > > On 4/9/21 2:22 PM, Marek Vasut wrote:
> > >> On 4/9/21 10:00 AM, Patrick Delaunay wrote:
> > >>> The gpio reset assert/deassert delay are today harcoded in U-Boot driver
> > >>> but the value should be read from DT.
> > >>>
> > >>> STM32 use the generic binding defined in linux:
> > >>> Documentation/devicetree/bindings/net/ethernet-phy.yaml
> > >>>
> > >>>    reset-gpios:
> > >>>      maxItems: 1
> > >>>      description:
> > >>>        The GPIO phandle and specifier for the PHY reset signal.
> > >>>
> > >>>    reset-assert-us:
> > >>>      description:
> > >>>        Delay after the reset was asserted in microseconds. If this
> > >>>        property is missing the delay will be skipped.
> > >>>
> > >>>    reset-deassert-us:
> > >>>      description:
> > >>>        Delay after the reset was deasserted in microseconds. If
> > >>>        this property is missing the delay will be skipped.
> > >>>
> > >>> See also U-Boot: doc/device-tree-bindings/net/phy.txt
> > >>
> > >> Since this is a PHY property, shouldn't that be handled in
> > >> drivers/net/phy/ instead of MAC driver ?
> > >
> > >
> > > I was my first idea but I don't found found the correct location in phy
> > > (driver or uclass)
> > >
> > > to manage these generic property and the generic property "reset-gpios"
> > > was already
> > >
> > > managed in eth driver, so I continue to patch the driver.
> > >
> > >
> > > But I come back to this idea after your remark....
> > >
> > > => in linux these property are managed in
> > >
> > >      drivers/net/mdio/of_mdio.c::of_mdiobus_phy_device_register
> > >
> > >          parse DT node and add info in mdio
> > >
> > >      drivers/net/phy/mdio_device.c::mdio_device_reset
> > >
> > >          called in  mdio_probe / mdio_remove
> > >
> > >
> > > In my first search, I don't found the same level in the U-Boot drivers
> > > in drivers/net/phy/
> >
> > Note that this is MDIO-wide PHY reset (e.g. you can have single reset
> > line connected to multiple PHYs on single MDIO bus), this is not
> > PHY-specific reset.
> >
> > > but I miss the uclass defined in drivers/net/eth-phy-uclass.c
> > >
> > >
> > > Finally I think I need to manage the generic binding property
> > >
> > > (reset-gpios, reset-assert-us, reset-deassert-us) directly  in
> > >
> > > => drivers/net/mdio-uclass
> > >
> > >
> > > The GPIO RESET will be managed in mdio  ops: pre_probe/ post_remove
> > >
> > > as it is done in linux
> > >
> > > warning: today post_remove ops don't exit in u-class.
> > >
> > >
> > > Do you think it is the correct location ?
> >
> > For single-PHY reset, the correct location is in drivers/net/phy/ somewhere.
> >
> > > Do you think it should be a new serie (migrate the eqos property in mdio)
> > >
> > > after this eqos is accepted
> > >
> > > or I shoudl sent a new serie to replace this serie.
> >
> > I'll leave that decision to Ramon/Joe.
> Joe, I'll leave this to you.

You know what, let's go with the new series, please migrate it to the net/phy.
Thanks,
Ramon


More information about the U-Boot mailing list