Message ID | 20231201150131.326766-3-heiko@sntech.de (mailing list archive) |
---|---|
State | Accepted |
Commit | 99ac4cbcc2a50ecc86ffacc7b4b42ba4259a90d4 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: phy: micrel: additional clock handling | expand |
On 12/1/23 07:01, Heiko Stuebner wrote: > From: Heiko Stuebner <heiko.stuebner@cherry.de> > > The generic ethernet-phy binding allows describing an external clock since > commit 350b7a258f20 ("dt-bindings: net: phy: Document support for external PHY clk") > for cases where the phy is not supplied by an oscillator but instead > by a clock from the host system. > > And the old named "rmii-ref" clock from 2014 is only specified for phys > of the KSZ8021, KSZ8031, KSZ8081, KSZ8091 types. > > So allow retrieving and enabling the optional generic clock on phys that > do not provide a rmii-ref clock. > > Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de> Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
On Fri, Dec 01, 2023 at 04:01:31PM +0100, Heiko Stuebner wrote: > From: Heiko Stuebner <heiko.stuebner@cherry.de> > > The generic ethernet-phy binding allows describing an external clock since > commit 350b7a258f20 ("dt-bindings: net: phy: Document support for external PHY clk") > for cases where the phy is not supplied by an oscillator but instead > by a clock from the host system. > > And the old named "rmii-ref" clock from 2014 is only specified for phys > of the KSZ8021, KSZ8031, KSZ8081, KSZ8091 types. > > So allow retrieving and enabling the optional generic clock on phys that > do not provide a rmii-ref clock. > > Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
diff --git a/drivers/net/phy/micrel.c b/drivers/net/phy/micrel.c index ec6a39dc9053..9490849437c0 100644 --- a/drivers/net/phy/micrel.c +++ b/drivers/net/phy/micrel.c @@ -2021,6 +2021,11 @@ static int kszphy_probe(struct phy_device *phydev) rate); return -EINVAL; } + } else if (!clk) { + /* unnamed clock from the generic ethernet-phy binding */ + clk = devm_clk_get_optional_enabled(&phydev->mdio.dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); } if (ksz8041_fiber_mode(phydev))