Lines Matching refs:phydev

100 static int dp83867_ack_interrupt(struct phy_device *phydev)  in dp83867_ack_interrupt()  argument
102 int err = phy_read(phydev, MII_DP83867_ISR); in dp83867_ack_interrupt()
110 static int dp83867_config_intr(struct phy_device *phydev) in dp83867_config_intr() argument
114 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in dp83867_config_intr()
115 micr_status = phy_read(phydev, MII_DP83867_MICR); in dp83867_config_intr()
127 return phy_write(phydev, MII_DP83867_MICR, micr_status); in dp83867_config_intr()
131 return phy_write(phydev, MII_DP83867_MICR, micr_status); in dp83867_config_intr()
134 static int dp83867_config_port_mirroring(struct phy_device *phydev) in dp83867_config_port_mirroring() argument
137 (struct dp83867_private *)phydev->priv; in dp83867_config_port_mirroring()
140 val = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4); in dp83867_config_port_mirroring()
147 phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4, val); in dp83867_config_port_mirroring()
153 static int dp83867_of_init(struct phy_device *phydev) in dp83867_of_init() argument
155 struct dp83867_private *dp83867 = phydev->priv; in dp83867_of_init()
156 struct device *dev = &phydev->mdio.dev; in dp83867_of_init()
185 (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID || in dp83867_of_init()
186 phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID)) in dp83867_of_init()
192 (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID || in dp83867_of_init()
193 phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID)) in dp83867_of_init()
206 static int dp83867_of_init(struct phy_device *phydev) in dp83867_of_init() argument
212 static int dp83867_config_init(struct phy_device *phydev) in dp83867_config_init() argument
218 if (!phydev->priv) { in dp83867_config_init()
219 dp83867 = devm_kzalloc(&phydev->mdio.dev, sizeof(*dp83867), in dp83867_config_init()
224 phydev->priv = dp83867; in dp83867_config_init()
225 ret = dp83867_of_init(phydev); in dp83867_config_init()
229 dp83867 = (struct dp83867_private *)phydev->priv; in dp83867_config_init()
234 val = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4); in dp83867_config_init()
236 phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4, val); in dp83867_config_init()
239 if (phy_interface_is_rgmii(phydev)) { in dp83867_config_init()
240 val = phy_read(phydev, MII_DP83867_PHYCTRL); in dp83867_config_init()
256 bs = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_STRAP_STS1); in dp83867_config_init()
260 ret = phy_write(phydev, MII_DP83867_PHYCTRL, val); in dp83867_config_init()
265 if ((phydev->interface >= PHY_INTERFACE_MODE_RGMII_ID) && in dp83867_config_init()
266 (phydev->interface <= PHY_INTERFACE_MODE_RGMII_RXID)) { in dp83867_config_init()
267 val = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_RGMIICTL); in dp83867_config_init()
269 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) in dp83867_config_init()
272 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) in dp83867_config_init()
275 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) in dp83867_config_init()
278 phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_RGMIICTL, val); in dp83867_config_init()
283 phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_RGMIIDCTL, in dp83867_config_init()
287 val = phy_read_mmd(phydev, DP83867_DEVADDR, in dp83867_config_init()
294 phy_write_mmd(phydev, DP83867_DEVADDR, in dp83867_config_init()
300 if (phy_interrupt_is_valid(phydev)) { in dp83867_config_init()
301 val = phy_read(phydev, DP83867_CFG3); in dp83867_config_init()
303 phy_write(phydev, DP83867_CFG3, val); in dp83867_config_init()
307 dp83867_config_port_mirroring(phydev); in dp83867_config_init()
311 val = phy_read_mmd(phydev, DP83867_DEVADDR, DP83867_IO_MUX_CFG); in dp83867_config_init()
314 phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_IO_MUX_CFG, val); in dp83867_config_init()
320 static int dp83867_phy_reset(struct phy_device *phydev) in dp83867_phy_reset() argument
324 err = phy_write(phydev, DP83867_CTRL, DP83867_SW_RESET); in dp83867_phy_reset()
328 return dp83867_config_init(phydev); in dp83867_phy_reset()