phy: renesas: r8a779f0-ether-serdes: Add .exit() ops
authorYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Wed, 11 Oct 2023 08:18:17 +0000 (17:18 +0900)
committerVinod Koul <vkoul@kernel.org>
Fri, 13 Oct 2023 10:13:30 +0000 (15:43 +0530)
Add r8a779f0_eth_serdes_exit() to clear the initialized flag
for re-initializing this PHY if needed.

Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Link: https://lore.kernel.org/r/20231011081817.257113-3-yoshihiro.shimoda.uh@renesas.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/renesas/r8a779f0-ether-serdes.c

index ba1109d6bdd90f4e248beabacee5cd717159cc08..fc6e398fa3bfb65c5d92f9e87e98fc593bf69ae5 100644 (file)
@@ -261,6 +261,15 @@ static int r8a779f0_eth_serdes_init(struct phy *p)
        return ret;
 }
 
+static int r8a779f0_eth_serdes_exit(struct phy *p)
+{
+       struct r8a779f0_eth_serdes_channel *channel = phy_get_drvdata(p);
+
+       channel->dd->initialized = false;
+
+       return 0;
+}
+
 static int r8a779f0_eth_serdes_hw_init_late(struct r8a779f0_eth_serdes_channel
 *channel)
 {
@@ -318,6 +327,7 @@ static int r8a779f0_eth_serdes_set_speed(struct phy *p, int speed)
 
 static const struct phy_ops r8a779f0_eth_serdes_ops = {
        .init           = r8a779f0_eth_serdes_init,
+       .exit           = r8a779f0_eth_serdes_exit,
        .power_on       = r8a779f0_eth_serdes_power_on,
        .set_mode       = r8a779f0_eth_serdes_set_mode,
        .set_speed      = r8a779f0_eth_serdes_set_speed,