Lines Matching refs:phydev
47 static int rtl821x_read_page(struct phy_device *phydev) in rtl821x_read_page() argument
49 return __phy_read(phydev, RTL821x_PAGE_SELECT); in rtl821x_read_page()
52 static int rtl821x_write_page(struct phy_device *phydev, int page) in rtl821x_write_page() argument
54 return __phy_write(phydev, RTL821x_PAGE_SELECT, page); in rtl821x_write_page()
57 static int rtl8201_ack_interrupt(struct phy_device *phydev) in rtl8201_ack_interrupt() argument
61 err = phy_read(phydev, RTL8201F_ISR); in rtl8201_ack_interrupt()
66 static int rtl821x_ack_interrupt(struct phy_device *phydev) in rtl821x_ack_interrupt() argument
70 err = phy_read(phydev, RTL821x_INSR); in rtl821x_ack_interrupt()
75 static int rtl8211f_ack_interrupt(struct phy_device *phydev) in rtl8211f_ack_interrupt() argument
79 err = phy_read_paged(phydev, 0xa43, RTL8211F_INSR); in rtl8211f_ack_interrupt()
84 static int rtl8201_config_intr(struct phy_device *phydev) in rtl8201_config_intr() argument
88 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in rtl8201_config_intr()
93 return phy_write_paged(phydev, 0x7, RTL8201F_IER, val); in rtl8201_config_intr()
96 static int rtl8211b_config_intr(struct phy_device *phydev) in rtl8211b_config_intr() argument
100 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in rtl8211b_config_intr()
101 err = phy_write(phydev, RTL821x_INER, in rtl8211b_config_intr()
104 err = phy_write(phydev, RTL821x_INER, 0); in rtl8211b_config_intr()
109 static int rtl8211e_config_intr(struct phy_device *phydev) in rtl8211e_config_intr() argument
113 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in rtl8211e_config_intr()
114 err = phy_write(phydev, RTL821x_INER, in rtl8211e_config_intr()
117 err = phy_write(phydev, RTL821x_INER, 0); in rtl8211e_config_intr()
122 static int rtl8211f_config_intr(struct phy_device *phydev) in rtl8211f_config_intr() argument
126 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) in rtl8211f_config_intr()
131 return phy_write_paged(phydev, 0xa42, RTL821x_INER, val); in rtl8211f_config_intr()
134 static int rtl8211_config_aneg(struct phy_device *phydev) in rtl8211_config_aneg() argument
138 ret = genphy_config_aneg(phydev); in rtl8211_config_aneg()
145 if (phydev->speed == SPEED_100 && phydev->autoneg == AUTONEG_DISABLE) { in rtl8211_config_aneg()
146 phy_write(phydev, 0x17, 0x2138); in rtl8211_config_aneg()
147 phy_write(phydev, 0x0e, 0x0260); in rtl8211_config_aneg()
149 phy_write(phydev, 0x17, 0x2108); in rtl8211_config_aneg()
150 phy_write(phydev, 0x0e, 0x0000); in rtl8211_config_aneg()
156 static int rtl8211c_config_init(struct phy_device *phydev) in rtl8211c_config_init() argument
159 phy_set_bits(phydev, MII_CTRL1000, in rtl8211c_config_init()
162 return genphy_config_init(phydev); in rtl8211c_config_init()
165 static int rtl8211f_config_init(struct phy_device *phydev) in rtl8211f_config_init() argument
170 ret = genphy_config_init(phydev); in rtl8211f_config_init()
175 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID || in rtl8211f_config_init()
176 phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) in rtl8211f_config_init()
179 return phy_modify_paged(phydev, 0xd08, 0x11, RTL8211F_TX_DELAY, val); in rtl8211f_config_init()
182 static int rtl8211b_suspend(struct phy_device *phydev) in rtl8211b_suspend() argument
184 phy_write(phydev, MII_MMD_DATA, BIT(9)); in rtl8211b_suspend()
186 return genphy_suspend(phydev); in rtl8211b_suspend()
189 static int rtl8211b_resume(struct phy_device *phydev) in rtl8211b_resume() argument
191 phy_write(phydev, MII_MMD_DATA, 0); in rtl8211b_resume()
193 return genphy_resume(phydev); in rtl8211b_resume()
196 static int rtl8366rb_config_init(struct phy_device *phydev) in rtl8366rb_config_init() argument
200 ret = genphy_config_init(phydev); in rtl8366rb_config_init()
204 ret = phy_set_bits(phydev, RTL8366RB_POWER_SAVE, in rtl8366rb_config_init()
207 dev_err(&phydev->mdio.dev, in rtl8366rb_config_init()