Lines Matching refs:phydev
45 static int ksz90xx_startup(struct phy_device *phydev) in ksz90xx_startup() argument
50 ret = genphy_update_link(phydev); in ksz90xx_startup()
54 phy_ctl = phy_read(phydev, MDIO_DEVAD_NONE, MII_KSZ90xx_PHY_CTL); in ksz90xx_startup()
57 phydev->duplex = DUPLEX_FULL; in ksz90xx_startup()
59 phydev->duplex = DUPLEX_HALF; in ksz90xx_startup()
62 phydev->speed = SPEED_1000; in ksz90xx_startup()
64 phydev->speed = SPEED_100; in ksz90xx_startup()
66 phydev->speed = SPEED_10; in ksz90xx_startup()
109 static int ksz90x1_of_config_group(struct phy_device *phydev, in ksz90x1_of_config_group() argument
112 struct udevice *dev = phydev->dev; in ksz90x1_of_config_group()
113 struct phy_driver *drv = phydev->drv; in ksz90x1_of_config_group()
143 return drv->writeext(phydev, 0, ofcfg->devad, ofcfg->reg, regval); in ksz90x1_of_config_group()
146 static int ksz9021_of_config(struct phy_device *phydev) in ksz9021_of_config() argument
156 ret = ksz90x1_of_config_group(phydev, &(ofcfg[i])); in ksz9021_of_config()
164 static int ksz9031_of_config(struct phy_device *phydev) in ksz9031_of_config() argument
175 ret = ksz90x1_of_config_group(phydev, &(ofcfg[i])); in ksz9031_of_config()
183 static int ksz9031_center_flp_timing(struct phy_device *phydev) in ksz9031_center_flp_timing() argument
185 struct phy_driver *drv = phydev->drv; in ksz9031_center_flp_timing()
191 ret = drv->writeext(phydev, 0, 0, MII_KSZ9031_FLP_BURST_TX_LO, 0x1A80); in ksz9031_center_flp_timing()
195 ret = drv->writeext(phydev, 0, 0, MII_KSZ9031_FLP_BURST_TX_HI, 0x6); in ksz9031_center_flp_timing()
200 static int ksz9021_of_config(struct phy_device *phydev) in ksz9021_of_config() argument
205 static int ksz9031_of_config(struct phy_device *phydev) in ksz9031_of_config() argument
210 static int ksz9031_center_flp_timing(struct phy_device *phydev) in ksz9031_center_flp_timing() argument
219 int ksz9021_phy_extended_write(struct phy_device *phydev, int regnum, u16 val) in ksz9021_phy_extended_write() argument
222 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9021_phy_extended_write()
224 return phy_write(phydev, MDIO_DEVAD_NONE, in ksz9021_phy_extended_write()
228 int ksz9021_phy_extended_read(struct phy_device *phydev, int regnum) in ksz9021_phy_extended_read() argument
231 phy_write(phydev, MDIO_DEVAD_NONE, MII_KSZ9021_EXTENDED_CTRL, regnum); in ksz9021_phy_extended_read()
232 return phy_read(phydev, MDIO_DEVAD_NONE, MII_KSZ9021_EXTENDED_DATAR); in ksz9021_phy_extended_read()
236 static int ksz9021_phy_extread(struct phy_device *phydev, int addr, int devaddr, in ksz9021_phy_extread() argument
239 return ksz9021_phy_extended_read(phydev, regnum); in ksz9021_phy_extread()
242 static int ksz9021_phy_extwrite(struct phy_device *phydev, int addr, in ksz9021_phy_extwrite() argument
245 return ksz9021_phy_extended_write(phydev, regnum, val); in ksz9021_phy_extwrite()
248 static int ksz9021_config(struct phy_device *phydev) in ksz9021_config() argument
253 unsigned features = phydev->drv->features; in ksz9021_config()
256 ret = ksz9021_of_config(phydev); in ksz9021_config()
268 phydev->advertising = features; in ksz9021_config()
269 phydev->supported = features; in ksz9021_config()
270 phy_write(phydev, MDIO_DEVAD_NONE, MII_CTRL1000, ctrl1000); in ksz9021_config()
271 genphy_config_aneg(phydev); in ksz9021_config()
272 genphy_restart_aneg(phydev); in ksz9021_config()
291 int ksz9031_phy_extended_write(struct phy_device *phydev, in ksz9031_phy_extended_write() argument
295 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_write()
298 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_write()
301 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_write()
304 return phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_write()
308 int ksz9031_phy_extended_read(struct phy_device *phydev, int devaddr, in ksz9031_phy_extended_read() argument
311 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_read()
313 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_read()
315 phy_write(phydev, MDIO_DEVAD_NONE, in ksz9031_phy_extended_read()
317 return phy_read(phydev, MDIO_DEVAD_NONE, MII_KSZ9031_MMD_REG_DATA); in ksz9031_phy_extended_read()
320 static int ksz9031_phy_extread(struct phy_device *phydev, int addr, int devaddr, in ksz9031_phy_extread() argument
323 return ksz9031_phy_extended_read(phydev, devaddr, regnum, in ksz9031_phy_extread()
327 static int ksz9031_phy_extwrite(struct phy_device *phydev, int addr, in ksz9031_phy_extwrite() argument
330 return ksz9031_phy_extended_write(phydev, devaddr, regnum, in ksz9031_phy_extwrite()
334 static int ksz9031_config(struct phy_device *phydev) in ksz9031_config() argument
338 ret = ksz9031_of_config(phydev); in ksz9031_config()
341 ret = ksz9031_center_flp_timing(phydev); in ksz9031_config()
351 features = phydev->drv->features; in ksz9031_config()
354 phydev->advertising = phydev->supported = features; in ksz9031_config()
357 bmcr = phy_read(phydev, MDIO_DEVAD_NONE, MII_BMCR); in ksz9031_config()
359 phy_write(phydev, MDIO_DEVAD_NONE, MII_BMCR, bmcr); in ksz9031_config()
362 phy_write(phydev, MDIO_DEVAD_NONE, MII_CTRL1000, 0); in ksz9031_config()
365 genphy_config_aneg(phydev); in ksz9031_config()
366 genphy_restart_aneg(phydev); in ksz9031_config()
371 return genphy_config(phydev); in ksz9031_config()