• Home
  • Raw
  • Download

Lines Matching +full:phy +full:- +full:pma

1 // SPDX-License-Identifier: GPL-2.0
3 * Driver for Aquantia PHY
14 #include <linux/phy.h>
166 int len_l = min(stat->size, 16); in aqr107_get_stat()
167 int len_h = stat->size - len_l; in aqr107_get_stat()
171 val = phy_read_mmd(phydev, MDIO_MMD_C22EXT, stat->reg); in aqr107_get_stat()
175 ret = val & GENMASK(len_l - 1, 0); in aqr107_get_stat()
177 val = phy_read_mmd(phydev, MDIO_MMD_C22EXT, stat->reg + 1); in aqr107_get_stat()
181 ret += (val & GENMASK(len_h - 1, 0)) << 16; in aqr107_get_stat()
190 struct aqr107_priv *priv = phydev->priv; in aqr107_get_stats()
200 priv->sgmii_stats[i] += val; in aqr107_get_stats()
202 data[i] = priv->sgmii_stats[i]; in aqr107_get_stats()
212 if (phydev->autoneg == AUTONEG_DISABLE) in aqr_config_aneg()
226 phydev->advertising)) in aqr_config_aneg()
230 phydev->advertising)) in aqr_config_aneg()
246 bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; in aqr_config_intr()
277 if (phydev->autoneg == AUTONEG_ENABLE) { in aqr_read_status()
283 phydev->lp_advertising, in aqr_read_status()
286 phydev->lp_advertising, in aqr_read_status()
303 phydev->speed = SPEED_10; in aqr107_read_rate()
306 phydev->speed = SPEED_100; in aqr107_read_rate()
309 phydev->speed = SPEED_1000; in aqr107_read_rate()
312 phydev->speed = SPEED_2500; in aqr107_read_rate()
315 phydev->speed = SPEED_5000; in aqr107_read_rate()
318 phydev->speed = SPEED_10000; in aqr107_read_rate()
321 phydev->speed = SPEED_UNKNOWN; in aqr107_read_rate()
326 phydev->duplex = DUPLEX_FULL; in aqr107_read_rate()
328 phydev->duplex = DUPLEX_HALF; in aqr107_read_rate()
341 if (!phydev->link || phydev->autoneg == AUTONEG_DISABLE) in aqr107_read_status()
350 phydev->interface = PHY_INTERFACE_MODE_10GKR; in aqr107_read_status()
353 phydev->interface = PHY_INTERFACE_MODE_10GBASER; in aqr107_read_status()
356 phydev->interface = PHY_INTERFACE_MODE_USXGMII; in aqr107_read_status()
359 phydev->interface = PHY_INTERFACE_MODE_SGMII; in aqr107_read_status()
362 phydev->interface = PHY_INTERFACE_MODE_2500BASEX; in aqr107_read_status()
365 phydev->interface = PHY_INTERFACE_MODE_NA; in aqr107_read_status()
394 return -E2BIG; in aqr107_set_downshift()
409 switch (tuna->id) { in aqr107_get_tunable()
413 return -EOPNOTSUPP; in aqr107_get_tunable()
420 switch (tuna->id) { in aqr107_set_tunable()
424 return -EOPNOTSUPP; in aqr107_set_tunable()
471 /* Check that the PHY interface type is compatible */ in aqr107_config_init()
472 if (phydev->interface != PHY_INTERFACE_MODE_SGMII && in aqr107_config_init()
473 phydev->interface != PHY_INTERFACE_MODE_2500BASEX && in aqr107_config_init()
474 phydev->interface != PHY_INTERFACE_MODE_XGMII && in aqr107_config_init()
475 phydev->interface != PHY_INTERFACE_MODE_USXGMII && in aqr107_config_init()
476 phydev->interface != PHY_INTERFACE_MODE_10GKR && in aqr107_config_init()
477 phydev->interface != PHY_INTERFACE_MODE_10GBASER) in aqr107_config_init()
478 return -ENODEV; in aqr107_config_init()
480 WARN(phydev->interface == PHY_INTERFACE_MODE_XGMII, in aqr107_config_init()
494 /* Check that the PHY interface type is compatible */ in aqcs109_config_init()
495 if (phydev->interface != PHY_INTERFACE_MODE_SGMII && in aqcs109_config_init()
496 phydev->interface != PHY_INTERFACE_MODE_2500BASEX) in aqcs109_config_init()
497 return -ENODEV; in aqcs109_config_init()
504 * PMA speed ability bits are the same for all members of the family, in aqcs109_config_init()
520 if (phydev->state != PHY_RUNNING || phydev->autoneg == AUTONEG_DISABLE) in aqr107_link_change_notify()
524 /* call failed or link partner is no Aquantia PHY */ in aqr107_link_change_notify()
544 phydev_dbg(phydev, "Link partner is Aquantia PHY, FW %u.%u%s%s%s\n", in aqr107_link_change_notify()
547 downshift ? ", fast-retrain downshift advertised" : "", in aqr107_link_change_notify()
556 phydev_info(phydev, "Aquantia 1000Base-T2 mode active\n"); in aqr107_link_change_notify()
573 phydev->priv = devm_kzalloc(&phydev->mdio.dev, in aqr107_probe()
575 if (!phydev->priv) in aqr107_probe()
576 return -ENOMEM; in aqr107_probe()
677 MODULE_DESCRIPTION("Aquantia PHY driver");