Lines Matching defs:phydev

59 static int lxt970_ack_interrupt(struct phy_device *phydev)
63 err = phy_read(phydev, MII_BMSR);
68 err = phy_read(phydev, MII_LXT970_ISR);
76 static int lxt970_config_intr(struct phy_device *phydev)
78 if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
79 return phy_write(phydev, MII_LXT970_IER, MII_LXT970_IER_IEN);
81 return phy_write(phydev, MII_LXT970_IER, 0);
84 static int lxt970_config_init(struct phy_device *phydev)
86 return phy_write(phydev, MII_LXT970_CONFIG, 0);
90 static int lxt971_ack_interrupt(struct phy_device *phydev)
92 int err = phy_read(phydev, MII_LXT971_ISR);
100 static int lxt971_config_intr(struct phy_device *phydev)
102 if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
103 return phy_write(phydev, MII_LXT971_IER, MII_LXT971_IER_IEN);
105 return phy_write(phydev, MII_LXT971_IER, 0);
113 static int lxt973a2_update_link(struct phy_device *phydev)
120 status = phy_read(phydev, MII_BMSR);
125 control = phy_read(phydev, MII_BMCR);
131 status = phy_read(phydev, MII_BMSR);
138 phydev->link = 0;
140 phydev->link = 1;
145 static int lxt973a2_read_status(struct phy_device *phydev)
152 err = lxt973a2_update_link(phydev);
156 if (AUTONEG_ENABLE == phydev->autoneg) {
159 adv = phy_read(phydev, MII_ADVERTISE);
165 lpa = phy_read(phydev, MII_LPA);
175 mii_lpa_to_linkmode_lpa_t(phydev->lp_advertising, lpa);
179 phydev->speed = SPEED_10;
180 phydev->duplex = DUPLEX_HALF;
181 phydev->pause = phydev->asym_pause = 0;
184 phydev->speed = SPEED_100;
187 phydev->duplex = DUPLEX_FULL;
190 phydev->duplex = DUPLEX_FULL;
193 phy_resolve_aneg_pause(phydev);
195 err = genphy_read_status_fixed(phydev);
199 phydev->pause = phydev->asym_pause = 0;
200 linkmode_zero(phydev->lp_advertising);
206 static int lxt973_probe(struct phy_device *phydev)
208 int val = phy_read(phydev, MII_LXT973_PCR);
215 val = phy_read(phydev, MII_BMCR);
218 phy_write(phydev, MII_BMCR, val);
220 phydev->priv = lxt973_probe;
221 phydev->port = PORT_FIBRE;
223 phydev->priv = NULL;
228 static int lxt973_config_aneg(struct phy_device *phydev)
231 return phydev->priv ? 0 : genphy_config_aneg(phydev);