Lines Matching defs:phydev

56 static int dp83td510_config_intr(struct phy_device *phydev)
60 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) {
61 ret = phy_write_mmd(phydev, MDIO_MMD_VEND2,
67 ret = phy_set_bits_mmd(phydev, MDIO_MMD_VEND2,
73 ret = phy_write_mmd(phydev, MDIO_MMD_VEND2,
78 ret = phy_clear_bits_mmd(phydev, MDIO_MMD_VEND2,
88 static irqreturn_t dp83td510_handle_interrupt(struct phy_device *phydev)
93 ret = phy_read_mmd(phydev, MDIO_MMD_VEND2, DP83TD510E_INTERRUPT_REG_1);
95 phy_error(phydev);
102 phy_trigger_machine(phydev);
107 static int dp83td510_read_status(struct phy_device *phydev)
112 phydev->speed = SPEED_UNKNOWN;
113 phydev->duplex = DUPLEX_UNKNOWN;
114 phydev->pause = 0;
115 phydev->asym_pause = 0;
116 linkmode_zero(phydev->lp_advertising);
118 phy_sts = phy_read(phydev, DP83TD510E_PHY_STS);
120 phydev->link = !!(phy_sts & DP83TD510E_LINK_STATUS);
121 if (phydev->link) {
123 phydev->duplex = DUPLEX_FULL;
124 phydev->speed = SPEED_10;
126 if (phydev->autoneg == AUTONEG_ENABLE) {
127 ret = genphy_c45_read_lpa(phydev);
131 phy_resolve_aneg_linkmode(phydev);
135 if (phydev->autoneg == AUTONEG_ENABLE) {
136 ret = genphy_c45_baset1_read_status(phydev);
140 ret = phy_read_mmd(phydev, MDIO_MMD_VEND2,
146 phydev->master_slave_state = MASTER_SLAVE_STATE_ERR;
148 return genphy_c45_pma_baset1_read_master_slave(phydev);
154 static int dp83td510_config_aneg(struct phy_device *phydev)
159 ret = genphy_c45_pma_baset1_setup_master_slave(phydev);
163 if (phydev->autoneg == AUTONEG_DISABLE)
164 return genphy_c45_an_disable_aneg(phydev);
166 ret = genphy_c45_an_config_aneg(phydev);
172 return genphy_c45_check_and_restart_aneg(phydev, changed);
175 static int dp83td510_get_sqi(struct phy_device *phydev)
180 if (!phydev->link)
183 ret = phy_read_mmd(phydev, MDIO_MMD_VEND2, DP83TD510E_MSE_DETECT);
196 static int dp83td510_get_sqi_max(struct phy_device *phydev)
201 static int dp83td510_get_features(struct phy_device *phydev)
210 linkmode_set_bit(ETHTOOL_LINK_MODE_Autoneg_BIT, phydev->supported);
211 linkmode_set_bit(ETHTOOL_LINK_MODE_Asym_Pause_BIT, phydev->supported);
212 linkmode_set_bit(ETHTOOL_LINK_MODE_Pause_BIT, phydev->supported);
214 phydev->supported);