Lines Matching defs:phydev

70 static int adin_read_status(struct phy_device *phydev)
74 ret = genphy_c45_read_status(phydev);
78 ret = phy_read_mmd(phydev, MDIO_MMD_AN, ADIN_AN_PHY_INST_STATUS);
83 phydev->master_slave_state = MASTER_SLAVE_STATE_SLAVE;
86 phydev->master_slave_state = MASTER_SLAVE_STATE_MASTER;
91 static int adin_config_aneg(struct phy_device *phydev)
93 struct adin_priv *priv = phydev->priv;
96 if (phydev->autoneg == AUTONEG_DISABLE) {
97 ret = genphy_c45_pma_setup_forced(phydev);
102 ret = phy_set_bits_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_B10L_PMA_CTRL,
105 ret = phy_clear_bits_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_B10L_PMA_CTRL,
111 return phy_set_bits_mmd(phydev, MDIO_MMD_AN, ADIN_FORCED_MODE, ADIN_FORCED_MODE_EN);
114 ret = phy_clear_bits_mmd(phydev, MDIO_MMD_AN, ADIN_FORCED_MODE, ADIN_FORCED_MODE_EN);
120 ret = phy_set_bits_mmd(phydev, MDIO_MMD_AN, MDIO_AN_T1_ADV_H,
129 ret = phy_clear_bits_mmd(phydev, MDIO_MMD_AN, MDIO_AN_T1_ADV_H,
136 return genphy_c45_config_aneg(phydev);
139 static int adin_set_powerdown_mode(struct phy_device *phydev, bool en)
145 ret = phy_write_mmd(phydev, MDIO_MMD_VEND1,
150 return phy_read_mmd_poll_timeout(phydev, MDIO_MMD_VEND1, ADIN_CRSM_STAT, ret,
155 static int adin_suspend(struct phy_device *phydev)
157 return adin_set_powerdown_mode(phydev, true);
160 static int adin_resume(struct phy_device *phydev)
162 return adin_set_powerdown_mode(phydev, false);
165 static int adin_set_loopback(struct phy_device *phydev, bool enable)
168 return phy_set_bits_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_10T1L_CTRL,
172 return phy_clear_bits_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_10T1L_CTRL,
176 static int adin_soft_reset(struct phy_device *phydev)
180 ret = phy_set_bits_mmd(phydev, MDIO_MMD_VEND1, ADIN_CRSM_SFT_RST, ADIN_CRSM_SFT_RST_EN);
184 return phy_read_mmd_poll_timeout(phydev, MDIO_MMD_VEND1, ADIN_CRSM_STAT, ret,
189 static int adin_get_features(struct phy_device *phydev)
191 struct adin_priv *priv = phydev->priv;
192 struct device *dev = &phydev->mdio.dev;
196 ret = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_PMA_10T1L_STAT);
203 phydev_dbg(phydev, "PHY supports 2.4V TX level: %s\n",
214 phydev_info(phydev,
219 phydev->supported);
221 return genphy_c45_pma_read_abilities(phydev);
224 static int adin_get_sqi(struct phy_device *phydev)
230 ret = phy_read_mmd(phydev, MDIO_MMD_PMAPMD, MDIO_STAT1);
236 ret = phy_read_mmd(phydev, MDIO_STAT1, ADIN_MSE_VAL);
249 static int adin_get_sqi_max(struct phy_device *phydev)
254 static int adin_probe(struct phy_device *phydev)
256 struct device *dev = &phydev->mdio.dev;
263 phydev->priv = priv;