Lines Matching +full:bcm +full:- +full:cygnus
1 // SPDX-License-Identifier: GPL-2.0
6 /* Broadcom Cygnus SoC internal transceivers support. */
7 #include "bcm-phy-lib.h"
17 /* Broadcom Cygnus Phy specific registers */
117 /* Re-initialize the PHY to apply AFE work-arounds and in bcm_cygnus_resume()
133 rev = phydev->phy_id & ~phydev->drv->phy_id_mask; in bcm_omega_config_init()
136 phydev_name(phydev), phydev->drv->name, rev); in bcm_omega_config_init()
172 /* Re-apply workarounds coming out suspend/resume */ in bcm_omega_resume()
177 /* 28nm Gigabit PHYs come out of reset without any half-duplex in bcm_omega_resume()
180 * gracefully handles auto-negotiated and forced modes. in bcm_omega_resume()
188 switch (tuna->id) { in bcm_omega_get_tunable()
192 return -EOPNOTSUPP; in bcm_omega_get_tunable()
203 switch (tuna->id) { in bcm_omega_set_tunable()
208 return -EOPNOTSUPP; in bcm_omega_set_tunable()
215 * from successfully linking up, trigger auto-negotiation restart in bcm_omega_set_tunable()
228 struct bcm_omega_phy_priv *priv = phydev->priv; in bcm_omega_get_phy_stats()
230 bcm_phy_get_stats(phydev, priv->stats, stats, data); in bcm_omega_get_phy_stats()
237 priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL); in bcm_omega_probe()
239 return -ENOMEM; in bcm_omega_probe()
241 phydev->priv = priv; in bcm_omega_probe()
243 priv->stats = devm_kcalloc(&phydev->mdio.dev, in bcm_omega_probe()
246 if (!priv->stats) in bcm_omega_probe()
247 return -ENOMEM; in bcm_omega_probe()
256 .name = "Broadcom Cygnus PHY",
290 MODULE_DESCRIPTION("Broadcom Cygnus internal PHY driver");