Lines Matching +full:5 +full:g +full:- +full:usxgmii

1 // SPDX-License-Identifier: GPL-2.0
56 #define MDIO_AN_TX_VEND_STATUS1_5000BASET 5
94 /* Sleep and timeout for checking if the Processor-Intensive
142 int len_l = min(stat->size, 16); in aqr107_get_stat()
143 int len_h = stat->size - len_l; in aqr107_get_stat()
147 val = phy_read_mmd(phydev, MDIO_MMD_C22EXT, stat->reg); in aqr107_get_stat()
151 ret = val & GENMASK(len_l - 1, 0); in aqr107_get_stat()
153 val = phy_read_mmd(phydev, MDIO_MMD_C22EXT, stat->reg + 1); in aqr107_get_stat()
157 ret += (val & GENMASK(len_h - 1, 0)) << 16; in aqr107_get_stat()
166 struct aqr107_priv *priv = phydev->priv; in aqr107_get_stats()
176 priv->sgmii_stats[i] += val; in aqr107_get_stats()
178 data[i] = priv->sgmii_stats[i]; in aqr107_get_stats()
188 if (phydev->autoneg == AUTONEG_DISABLE) in aqr_config_aneg()
202 phydev->advertising)) in aqr_config_aneg()
206 phydev->advertising)) in aqr_config_aneg()
209 /* Handle the case when the 2.5G and 5G speeds are not advertised */ in aqr_config_aneg()
211 phydev->advertising)) in aqr_config_aneg()
215 phydev->advertising)) in aqr_config_aneg()
233 bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; in aqr_config_intr()
292 if (phydev->autoneg == AUTONEG_ENABLE) { in aqr_read_status()
298 phydev->lp_advertising, in aqr_read_status()
301 phydev->lp_advertising, in aqr_read_status()
318 phydev->duplex = DUPLEX_FULL; in aqr107_read_rate()
320 phydev->duplex = DUPLEX_HALF; in aqr107_read_rate()
324 phydev->speed = SPEED_10; in aqr107_read_rate()
328 phydev->speed = SPEED_100; in aqr107_read_rate()
332 phydev->speed = SPEED_1000; in aqr107_read_rate()
336 phydev->speed = SPEED_2500; in aqr107_read_rate()
340 phydev->speed = SPEED_5000; in aqr107_read_rate()
344 phydev->speed = SPEED_10000; in aqr107_read_rate()
348 phydev->speed = SPEED_UNKNOWN; in aqr107_read_rate()
358 phydev->rate_matching = RATE_MATCH_PAUSE; in aqr107_read_rate()
360 phydev->rate_matching = RATE_MATCH_NONE; in aqr107_read_rate()
373 if (!phydev->link || phydev->autoneg == AUTONEG_DISABLE) in aqr107_read_status()
382 phydev->interface = PHY_INTERFACE_MODE_10GKR; in aqr107_read_status()
385 phydev->interface = PHY_INTERFACE_MODE_1000BASEKX; in aqr107_read_status()
388 phydev->interface = PHY_INTERFACE_MODE_10GBASER; in aqr107_read_status()
391 phydev->interface = PHY_INTERFACE_MODE_USXGMII; in aqr107_read_status()
394 phydev->interface = PHY_INTERFACE_MODE_XAUI; in aqr107_read_status()
397 phydev->interface = PHY_INTERFACE_MODE_SGMII; in aqr107_read_status()
400 phydev->interface = PHY_INTERFACE_MODE_RXAUI; in aqr107_read_status()
403 phydev->interface = PHY_INTERFACE_MODE_2500BASEX; in aqr107_read_status()
406 phydev->interface = PHY_INTERFACE_MODE_NA; in aqr107_read_status()
435 return -E2BIG; in aqr107_set_downshift()
450 switch (tuna->id) { in aqr107_get_tunable()
454 return -EOPNOTSUPP; in aqr107_get_tunable()
461 switch (tuna->id) { in aqr107_set_tunable()
465 return -EOPNOTSUPP; in aqr107_set_tunable()
513 if (phydev->interface != PHY_INTERFACE_MODE_SGMII && in aqr107_config_init()
514 phydev->interface != PHY_INTERFACE_MODE_1000BASEKX && in aqr107_config_init()
515 phydev->interface != PHY_INTERFACE_MODE_2500BASEX && in aqr107_config_init()
516 phydev->interface != PHY_INTERFACE_MODE_XGMII && in aqr107_config_init()
517 phydev->interface != PHY_INTERFACE_MODE_USXGMII && in aqr107_config_init()
518 phydev->interface != PHY_INTERFACE_MODE_10GKR && in aqr107_config_init()
519 phydev->interface != PHY_INTERFACE_MODE_10GBASER && in aqr107_config_init()
520 phydev->interface != PHY_INTERFACE_MODE_XAUI && in aqr107_config_init()
521 phydev->interface != PHY_INTERFACE_MODE_RXAUI) in aqr107_config_init()
522 return -ENODEV; in aqr107_config_init()
524 WARN(phydev->interface == PHY_INTERFACE_MODE_XGMII, in aqr107_config_init()
525 …ut of date, please update it. The AQR107 family doesn't support XGMII, maybe you mean USXGMII.\n"); in aqr107_config_init()
539 if (phydev->interface != PHY_INTERFACE_MODE_SGMII && in aqcs109_config_init()
540 phydev->interface != PHY_INTERFACE_MODE_2500BASEX) in aqcs109_config_init()
541 return -ENODEV; in aqcs109_config_init()
547 /* AQCS109 belongs to a chip family partially supporting 10G and 5G. in aqcs109_config_init()
549 * AQCS109 however supports speeds up to 2.5G only. in aqcs109_config_init()
562 if (phydev->state != PHY_RUNNING || phydev->autoneg == AUTONEG_DISABLE) in aqr107_link_change_notify()
589 downshift ? ", fast-retrain downshift advertised" : "", in aqr107_link_change_notify()
598 phydev_info(phydev, "Aquantia 1000Base-T2 mode active\n"); in aqr107_link_change_notify()
618 phydev_err(phydev, "timeout: processor-intensive MDIO operation\n"); in aqr107_wait_processor_intensive_op()
670 unsigned long *possible = phydev->possible_interfaces; in aqr107_fill_interface_modes()
675 /* Walk the media-speed configuration registers to determine which in aqr107_fill_interface_modes()
676 * host-side serdes modes may be used by the PHY depending on the in aqr107_fill_interface_modes()
737 phydev->priv = devm_kzalloc(&phydev->mdio.dev, in aqr107_probe()
739 if (!phydev->priv) in aqr107_probe()
740 return -ENOMEM; in aqr107_probe()