Lines Matching defs:phydev

51 static int smsc_phy_config_intr(struct phy_device *phydev)
53 struct smsc_phy_priv *priv = phydev->priv;
57 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) {
63 rc = phy_write(phydev, MII_LAN83C185_IM, intmask);
68 static int smsc_phy_ack_interrupt(struct phy_device *phydev)
70 int rc = phy_read (phydev, MII_LAN83C185_ISF);
75 static int smsc_phy_config_init(struct phy_device *phydev)
77 struct smsc_phy_priv *priv = phydev->priv;
83 rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
89 rc = phy_write(phydev, MII_LAN83C185_CTRL_STATUS,
94 return smsc_phy_ack_interrupt(phydev);
97 static int smsc_phy_reset(struct phy_device *phydev)
99 int rc = phy_read(phydev, MII_LAN83C185_SPECIAL_MODES);
109 phy_write(phydev, MII_LAN83C185_SPECIAL_MODES, rc);
113 return genphy_soft_reset(phydev);
116 static int lan911x_config_init(struct phy_device *phydev)
118 return smsc_phy_ack_interrupt(phydev);
121 static int lan87xx_config_aneg(struct phy_device *phydev)
126 switch (phydev->mdix_ctrl) {
138 return genphy_config_aneg(phydev);
141 rc = phy_read(phydev, SPECIAL_CTRL_STS);
149 phy_write(phydev, SPECIAL_CTRL_STS, rc);
151 phydev->mdix = phydev->mdix_ctrl;
152 return genphy_config_aneg(phydev);
155 static int lan95xx_config_aneg_ext(struct phy_device *phydev)
159 if (phydev->phy_id != 0x0007c0f0) /* not (LAN9500A or LAN9505A) */
160 return lan87xx_config_aneg(phydev);
163 rc = phy_read(phydev, PHY_EDPD_CONFIG);
168 phy_write(phydev, PHY_EDPD_CONFIG, rc);
169 return lan87xx_config_aneg(phydev);
181 static int lan87xx_read_status(struct phy_device *phydev)
183 struct smsc_phy_priv *priv = phydev->priv;
186 err = genphy_read_status(phydev);
190 if (!phydev->link && priv->energy_enable) {
192 int rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
196 rc = phy_write(phydev, MII_LAN83C185_CTRL_STATUS,
206 10000, 640000, true, phydev,
212 rc = phy_read(phydev, MII_LAN83C185_CTRL_STATUS);
216 rc = phy_write(phydev, MII_LAN83C185_CTRL_STATUS,
225 static int smsc_get_sset_count(struct phy_device *phydev)
230 static void smsc_get_strings(struct phy_device *phydev, u8 *data)
240 static u64 smsc_get_stat(struct phy_device *phydev, int i)
246 val = phy_read(phydev, stat.reg);
255 static void smsc_get_stats(struct phy_device *phydev,
261 data[i] = smsc_get_stat(phydev, i);
264 static void smsc_phy_remove(struct phy_device *phydev)
266 struct smsc_phy_priv *priv = phydev->priv;
272 static int smsc_phy_probe(struct phy_device *phydev)
274 struct device *dev = &phydev->mdio.dev;
288 phydev->priv = priv;