Lines Matching refs:phydev
70 static int dp83867_ack_interrupt(struct phy_device *phydev) in dp83867_ack_interrupt() argument
72 int err = phy_read(phydev, MII_DP83867_ISR); in dp83867_ack_interrupt()
80 static int dp83867_config_intr(struct phy_device *phydev) in dp83867_config_intr() argument
84 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in dp83867_config_intr()
85 micr_status = phy_read(phydev, MII_DP83867_MICR); in dp83867_config_intr()
95 return phy_write(phydev, MII_DP83867_MICR, micr_status); in dp83867_config_intr()
99 return phy_write(phydev, MII_DP83867_MICR, micr_status); in dp83867_config_intr()
103 static int dp83867_of_init(struct phy_device *phydev) in dp83867_of_init() argument
105 struct dp83867_private *dp83867 = phydev->priv; in dp83867_of_init()
106 struct device *dev = &phydev->dev; in dp83867_of_init()
113 if (!phydev->dev.of_node) in dp83867_of_init()
130 static int dp83867_of_init(struct phy_device *phydev) in dp83867_of_init() argument
136 static int dp83867_config_init(struct phy_device *phydev) in dp83867_config_init() argument
142 if (!phydev->priv) { in dp83867_config_init()
143 dp83867 = devm_kzalloc(&phydev->dev, sizeof(*dp83867), in dp83867_config_init()
148 phydev->priv = dp83867; in dp83867_config_init()
149 ret = dp83867_of_init(phydev); in dp83867_config_init()
153 dp83867 = (struct dp83867_private *)phydev->priv; in dp83867_config_init()
156 if (phy_interface_is_rgmii(phydev)) { in dp83867_config_init()
157 ret = phy_write(phydev, MII_DP83867_PHYCTRL, in dp83867_config_init()
163 if ((phydev->interface >= PHY_INTERFACE_MODE_RGMII_ID) && in dp83867_config_init()
164 (phydev->interface <= PHY_INTERFACE_MODE_RGMII_RXID)) { in dp83867_config_init()
165 val = phy_read_mmd_indirect(phydev, DP83867_RGMIICTL, in dp83867_config_init()
166 DP83867_DEVADDR, phydev->addr); in dp83867_config_init()
168 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_ID) in dp83867_config_init()
171 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) in dp83867_config_init()
174 if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID) in dp83867_config_init()
177 phy_write_mmd_indirect(phydev, DP83867_RGMIICTL, in dp83867_config_init()
178 DP83867_DEVADDR, phydev->addr, val); in dp83867_config_init()
183 phy_write_mmd_indirect(phydev, DP83867_RGMIIDCTL, in dp83867_config_init()
184 DP83867_DEVADDR, phydev->addr, delay); in dp83867_config_init()
190 static int dp83867_phy_reset(struct phy_device *phydev) in dp83867_phy_reset() argument
194 err = phy_write(phydev, DP83867_CTRL, DP83867_SW_RESET); in dp83867_phy_reset()
198 return dp83867_config_init(phydev); in dp83867_phy_reset()