Lines Matching refs:phydev

36 static int lan88xx_read_page(struct phy_device *phydev)  in lan88xx_read_page()  argument
38 return __phy_read(phydev, LAN88XX_EXT_PAGE_ACCESS); in lan88xx_read_page()
41 static int lan88xx_write_page(struct phy_device *phydev, int page) in lan88xx_write_page() argument
43 return __phy_write(phydev, LAN88XX_EXT_PAGE_ACCESS, page); in lan88xx_write_page()
46 static int lan88xx_phy_config_intr(struct phy_device *phydev) in lan88xx_phy_config_intr() argument
50 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in lan88xx_phy_config_intr()
52 rc = phy_write(phydev, LAN88XX_INT_MASK, 0x7FFF); in lan88xx_phy_config_intr()
53 rc = phy_read(phydev, LAN88XX_INT_STS); in lan88xx_phy_config_intr()
54 rc = phy_write(phydev, LAN88XX_INT_MASK, in lan88xx_phy_config_intr()
58 rc = phy_write(phydev, LAN88XX_INT_MASK, 0); in lan88xx_phy_config_intr()
64 static int lan88xx_phy_ack_interrupt(struct phy_device *phydev) in lan88xx_phy_ack_interrupt() argument
66 int rc = phy_read(phydev, LAN88XX_INT_STS); in lan88xx_phy_ack_interrupt()
71 static int lan88xx_suspend(struct phy_device *phydev) in lan88xx_suspend() argument
73 struct lan88xx_priv *priv = phydev->priv; in lan88xx_suspend()
77 genphy_suspend(phydev); in lan88xx_suspend()
82 static int lan88xx_TR_reg_set(struct phy_device *phydev, u16 regaddr, in lan88xx_TR_reg_set() argument
89 save_page = phy_save_page(phydev); in lan88xx_TR_reg_set()
96 lan88xx_write_page(phydev, LAN88XX_EXT_PAGE_ACCESS_TR); in lan88xx_TR_reg_set()
98 ret = __phy_write(phydev, LAN88XX_EXT_PAGE_TR_LOW_DATA, in lan88xx_TR_reg_set()
105 ret = __phy_write(phydev, LAN88XX_EXT_PAGE_TR_HIGH_DATA, in lan88xx_TR_reg_set()
116 ret = __phy_write(phydev, LAN88XX_EXT_PAGE_TR_CR, buf); in lan88xx_TR_reg_set()
123 val = __phy_read(phydev, LAN88XX_EXT_PAGE_TR_CR); in lan88xx_TR_reg_set()
127 return phy_restore_page(phydev, save_page, ret); in lan88xx_TR_reg_set()
130 static void lan88xx_config_TR_regs(struct phy_device *phydev) in lan88xx_config_TR_regs() argument
138 err = lan88xx_TR_reg_set(phydev, 0x0F82, 0x12B00A); in lan88xx_config_TR_regs()
146 err = lan88xx_TR_reg_set(phydev, 0x168C, 0xD2C46F); in lan88xx_config_TR_regs()
154 err = lan88xx_TR_reg_set(phydev, 0x17A2, 0x620); in lan88xx_config_TR_regs()
163 err = lan88xx_TR_reg_set(phydev, 0x16A0, 0xEEFFDD); in lan88xx_config_TR_regs()
171 err = lan88xx_TR_reg_set(phydev, 0x16A6, 0x071448); in lan88xx_config_TR_regs()
179 err = lan88xx_TR_reg_set(phydev, 0x16A4, 0x13132F); in lan88xx_config_TR_regs()
187 err = lan88xx_TR_reg_set(phydev, 0x16A8, 0x0); in lan88xx_config_TR_regs()
196 err = lan88xx_TR_reg_set(phydev, 0x0FE8, 0x91B06C); in lan88xx_config_TR_regs()
205 err = lan88xx_TR_reg_set(phydev, 0x0FFC, 0xC0A028); in lan88xx_config_TR_regs()
214 err = lan88xx_TR_reg_set(phydev, 0x0FEA, 0x041600); in lan88xx_config_TR_regs()
221 err = lan88xx_TR_reg_set(phydev, 0x1686, 0x000004); in lan88xx_config_TR_regs()
226 static int lan88xx_probe(struct phy_device *phydev) in lan88xx_probe() argument
228 struct device *dev = &phydev->mdio.dev; in lan88xx_probe()
255 (void)phy_write(phydev, LAN78XX_PHY_LED_MODE_SELECT, reg); in lan88xx_probe()
261 priv->chip_id = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_ID); in lan88xx_probe()
262 priv->chip_rev = phy_read_mmd(phydev, 3, LAN88XX_MMD3_CHIP_REV); in lan88xx_probe()
264 phydev->priv = priv; in lan88xx_probe()
269 static void lan88xx_remove(struct phy_device *phydev) in lan88xx_remove() argument
271 struct device *dev = &phydev->mdio.dev; in lan88xx_remove()
272 struct lan88xx_priv *priv = phydev->priv; in lan88xx_remove()
278 static int lan88xx_set_wol(struct phy_device *phydev, in lan88xx_set_wol() argument
281 struct lan88xx_priv *priv = phydev->priv; in lan88xx_set_wol()
288 static void lan88xx_set_mdix(struct phy_device *phydev) in lan88xx_set_mdix() argument
293 switch (phydev->mdix_ctrl) { in lan88xx_set_mdix()
307 phy_write(phydev, LAN88XX_EXT_PAGE_ACCESS, LAN88XX_EXT_PAGE_SPACE_1); in lan88xx_set_mdix()
308 buf = phy_read(phydev, LAN88XX_EXT_MODE_CTRL); in lan88xx_set_mdix()
311 phy_write(phydev, LAN88XX_EXT_MODE_CTRL, buf); in lan88xx_set_mdix()
312 phy_write(phydev, LAN88XX_EXT_PAGE_ACCESS, LAN88XX_EXT_PAGE_SPACE_0); in lan88xx_set_mdix()
315 static int lan88xx_config_init(struct phy_device *phydev) in lan88xx_config_init() argument
319 genphy_config_init(phydev); in lan88xx_config_init()
321 val = phy_read_mmd(phydev, MDIO_MMD_PCS, in lan88xx_config_init()
325 phy_write_mmd(phydev, MDIO_MMD_PCS, PHY_ARDENNES_MMD_DEV_3_PHY_CFG, in lan88xx_config_init()
329 lan88xx_config_TR_regs(phydev); in lan88xx_config_init()
334 static int lan88xx_config_aneg(struct phy_device *phydev) in lan88xx_config_aneg() argument
336 lan88xx_set_mdix(phydev); in lan88xx_config_aneg()
338 return genphy_config_aneg(phydev); in lan88xx_config_aneg()