Lines Matching +full:mdi +full:- +full:cfg +full:- +full:order
1 // SPDX-License-Identifier: GPL-2.0
105 /* Sleep and timeout for checking if the Processor-Intensive
128 int len_l = min(stat->size, 16); in aqr107_get_stat()
129 int len_h = stat->size - len_l; in aqr107_get_stat()
133 val = phy_read_mmd(phydev, MDIO_MMD_C22EXT, stat->reg); in aqr107_get_stat()
137 ret = val & GENMASK(len_l - 1, 0); in aqr107_get_stat()
139 val = phy_read_mmd(phydev, MDIO_MMD_C22EXT, stat->reg + 1); in aqr107_get_stat()
143 ret += (val & GENMASK(len_h - 1, 0)) << 16; in aqr107_get_stat()
152 struct aqr107_priv *priv = phydev->priv; in aqr107_get_stats()
162 priv->sgmii_stats[i] += val; in aqr107_get_stats()
164 data[i] = priv->sgmii_stats[i]; in aqr107_get_stats()
196 ret = aqr_set_mdix(phydev, phydev->mdix_ctrl); in aqr_config_aneg()
202 if (phydev->autoneg == AUTONEG_DISABLE) in aqr_config_aneg()
216 phydev->advertising)) in aqr_config_aneg()
220 phydev->advertising)) in aqr_config_aneg()
225 phydev->advertising)) in aqr_config_aneg()
229 phydev->advertising)) in aqr_config_aneg()
247 bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; in aqr_config_intr()
306 if (phydev->autoneg == AUTONEG_ENABLE) { in aqr_read_status()
312 phydev->lp_advertising, in aqr_read_status()
315 phydev->lp_advertising, in aqr_read_status()
327 phydev->mdix = ETH_TP_MDI_X; in aqr_read_status()
329 phydev->mdix = ETH_TP_MDI; in aqr_read_status()
331 phydev->mdix = ETH_TP_MDI_INVALID; in aqr_read_status()
350 phydev->supported); in aqr105_get_features()
352 phydev->supported); in aqr105_get_features()
355 linkmode_set_bit(ETHTOOL_LINK_MODE_TP_BIT, phydev->supported); in aqr105_get_features()
356 linkmode_set_bit(ETHTOOL_LINK_MODE_FIBRE_BIT, phydev->supported); in aqr105_get_features()
368 switch (phydev->speed) { in aqr105_setup_forced()
374 if (phydev->duplex == DUPLEX_FULL) in aqr105_setup_forced()
392 return -EINVAL; in aqr105_setup_forced()
419 ret = aqr_set_mdix(phydev, phydev->mdix_ctrl); in aqr105_config_aneg()
425 if (phydev->autoneg == AUTONEG_DISABLE) in aqr105_config_aneg()
439 phydev->advertising)) in aqr105_config_aneg()
443 phydev->advertising)) in aqr105_config_aneg()
448 phydev->advertising)) in aqr105_config_aneg()
452 phydev->advertising)) in aqr105_config_aneg()
477 phydev->duplex = DUPLEX_FULL; in aqr105_read_rate()
479 phydev->duplex = DUPLEX_HALF; in aqr105_read_rate()
483 phydev->speed = SPEED_10; in aqr105_read_rate()
486 phydev->speed = SPEED_100; in aqr105_read_rate()
489 phydev->speed = SPEED_1000; in aqr105_read_rate()
492 phydev->speed = SPEED_2500; in aqr105_read_rate()
495 phydev->speed = SPEED_5000; in aqr105_read_rate()
498 phydev->speed = SPEED_10000; in aqr105_read_rate()
501 phydev->speed = SPEED_UNKNOWN; in aqr105_read_rate()
516 if (!phydev->link || phydev->autoneg == AUTONEG_DISABLE) in aqr105_read_status()
530 if (ret && ret != -ETIMEDOUT) in aqr105_read_status()
535 phydev->interface = PHY_INTERFACE_MODE_10GKR; in aqr105_read_status()
538 phydev->interface = PHY_INTERFACE_MODE_1000BASEKX; in aqr105_read_status()
541 phydev->interface = PHY_INTERFACE_MODE_10GBASER; in aqr105_read_status()
544 phydev->interface = PHY_INTERFACE_MODE_USXGMII; in aqr105_read_status()
547 phydev->interface = PHY_INTERFACE_MODE_XAUI; in aqr105_read_status()
550 phydev->interface = PHY_INTERFACE_MODE_SGMII; in aqr105_read_status()
553 phydev->interface = PHY_INTERFACE_MODE_RXAUI; in aqr105_read_status()
556 phydev->interface = PHY_INTERFACE_MODE_2500BASEX; in aqr105_read_status()
560 phydev->link = false; in aqr105_read_status()
561 phydev->interface = PHY_INTERFACE_MODE_NA; in aqr105_read_status()
579 phydev->duplex = DUPLEX_FULL; in aqr107_read_rate()
581 phydev->duplex = DUPLEX_HALF; in aqr107_read_rate()
585 phydev->speed = SPEED_10; in aqr107_read_rate()
589 phydev->speed = SPEED_100; in aqr107_read_rate()
593 phydev->speed = SPEED_1000; in aqr107_read_rate()
597 phydev->speed = SPEED_2500; in aqr107_read_rate()
601 phydev->speed = SPEED_5000; in aqr107_read_rate()
605 phydev->speed = SPEED_10000; in aqr107_read_rate()
609 phydev->speed = SPEED_UNKNOWN; in aqr107_read_rate()
619 phydev->rate_matching = RATE_MATCH_PAUSE; in aqr107_read_rate()
621 phydev->rate_matching = RATE_MATCH_NONE; in aqr107_read_rate()
634 if (!phydev->link || phydev->autoneg == AUTONEG_DISABLE) in aqr107_read_status()
648 if (ret && ret != -ETIMEDOUT) in aqr107_read_status()
653 phydev->interface = PHY_INTERFACE_MODE_10GKR; in aqr107_read_status()
656 phydev->interface = PHY_INTERFACE_MODE_1000BASEKX; in aqr107_read_status()
659 phydev->interface = PHY_INTERFACE_MODE_10GBASER; in aqr107_read_status()
662 phydev->interface = PHY_INTERFACE_MODE_USXGMII; in aqr107_read_status()
665 phydev->interface = PHY_INTERFACE_MODE_XAUI; in aqr107_read_status()
668 phydev->interface = PHY_INTERFACE_MODE_SGMII; in aqr107_read_status()
671 phydev->interface = PHY_INTERFACE_MODE_RXAUI; in aqr107_read_status()
674 phydev->interface = PHY_INTERFACE_MODE_2500BASEX; in aqr107_read_status()
678 phydev->link = false; in aqr107_read_status()
679 phydev->interface = PHY_INTERFACE_MODE_NA; in aqr107_read_status()
708 return -E2BIG; in aqr107_set_downshift()
723 switch (tuna->id) { in aqr107_get_tunable()
727 return -EOPNOTSUPP; in aqr107_get_tunable()
734 switch (tuna->id) { in aqr107_set_tunable()
738 return -EOPNOTSUPP; in aqr107_set_tunable()
794 struct device_node *np = phydev->mdio.dev.of_node; in aqr107_config_mdi()
798 ret = of_property_read_u32(np, "marvell,mdi-cfg-order", &mdi_conf); in aqr107_config_mdi()
800 /* Do nothing in case property "marvell,mdi-cfg-order" is not present */ in aqr107_config_mdi()
801 if (ret == -EINVAL || ret == -ENOSYS) in aqr107_config_mdi()
808 return -EINVAL; in aqr107_config_mdi()
817 struct aqr107_priv *priv = phydev->priv; in aqr107_config_init()
822 if (phydev->interface != PHY_INTERFACE_MODE_SGMII && in aqr107_config_init()
823 phydev->interface != PHY_INTERFACE_MODE_1000BASEKX && in aqr107_config_init()
824 phydev->interface != PHY_INTERFACE_MODE_2500BASEX && in aqr107_config_init()
825 phydev->interface != PHY_INTERFACE_MODE_XGMII && in aqr107_config_init()
826 phydev->interface != PHY_INTERFACE_MODE_USXGMII && in aqr107_config_init()
827 phydev->interface != PHY_INTERFACE_MODE_10GKR && in aqr107_config_init()
828 phydev->interface != PHY_INTERFACE_MODE_10GBASER && in aqr107_config_init()
829 phydev->interface != PHY_INTERFACE_MODE_XAUI && in aqr107_config_init()
830 phydev->interface != PHY_INTERFACE_MODE_RXAUI) in aqr107_config_init()
831 return -ENODEV; in aqr107_config_init()
833 WARN(phydev->interface == PHY_INTERFACE_MODE_XGMII, in aqr107_config_init()
849 for_each_set_bit(led_idx, &priv->leds_active_low, AQR_MAX_LEDS) { in aqr107_config_init()
855 for_each_set_bit(led_idx, &priv->leds_active_high, AQR_MAX_LEDS) { in aqr107_config_init()
869 if (phydev->interface != PHY_INTERFACE_MODE_SGMII && in aqcs109_config_init()
870 phydev->interface != PHY_INTERFACE_MODE_2500BASEX) in aqcs109_config_init()
871 return -ENODEV; in aqcs109_config_init()
886 if (phydev->state != PHY_RUNNING || phydev->autoneg == AUTONEG_DISABLE) in aqr107_link_change_notify()
913 downshift ? ", fast-retrain downshift advertised" : "", in aqr107_link_change_notify()
922 phydev_info(phydev, "Aquantia 1000Base-T2 mode active\n"); in aqr107_link_change_notify()
942 phydev_err(phydev, "timeout: processor-intensive MDIO operation\n"); in aqr107_wait_processor_intensive_op()
994 unsigned long *possible = phydev->possible_interfaces; in aqr107_fill_interface_modes()
999 /* Walk the media-speed configuration registers to determine which in aqr107_fill_interface_modes()
1000 * host-side serdes modes may be used by the PHY depending on the in aqr107_fill_interface_modes()
1050 /* It's been observed on some models that - when coming out of suspend in aqr113c_fill_interface_modes()
1051 * - the FW signals that the PHY is ready but the GLOBAL_CFG registers in aqr113c_fill_interface_modes()
1067 unsigned long *supported = phydev->supported; in aqr115c_get_features()
1085 phydev->supported); in aqr111_get_features()
1114 phydev->priv = devm_kzalloc(&phydev->mdio.dev, in aqr107_probe()
1116 if (!phydev->priv) in aqr107_probe()
1117 return -ENOMEM; in aqr107_probe()