Re: [PATCH net-next v3 6/8] net: phy: mscc: timestamping and PHC support

From: Antoine Tenart
Date: Mon Jun 22 2020 - 09:31:27 EST


Hi Andrew,

Quoting Andrew Lunn (2020-06-20 17:21:42)
> > + /* Retrieve the shared load/save GPIO. Request it as non exclusive as
> > + * the same GPIO can be requested by all the PHYs of the same package.
> > + * Ths GPIO must be used with the phc_lock taken (the lock is shared
> > + * between all PHYs).
> > + */
> > + vsc8531->load_save = devm_gpiod_get_optional(&phydev->mdio.dev, "load-save",
> > + GPIOD_FLAGS_BIT_NONEXCLUSIVE |
> > + GPIOD_OUT_LOW);
> > + if (IS_ERR(vsc8531->load_save)) {
> > + phydev_err(phydev, "Can't get load-save GPIO (%ld)\n",
> > + PTR_ERR(vsc8531->load_save));
> > + return PTR_ERR(vsc8531->load_save);
> > + }
> > +
>
> I can understand the GPIO being optional, it is only needed when PTP
> is being used. But i don't see a test anywhere that when PTP is being
> used the GPIO is provided. What actually happens if it is missing and
> somebody tries to use the PTP?

Not much would happen, the time set/get wouldn't be correct.

> Maybe only register the PTP parts with the core if the GPIO has been
> found in DT?

It's not easy, as some versions of the PHY (or the way it's integrated,
I'm not sure) do not need the GPIO. I'll double check, and if it is
required for PHC operations in this series, I'll do that.

Thanks,
Antoine

--
Antoine TÃnart, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com