Lines Matching refs:phy_dev
318 int32_t genphy_update_link(eth_phy_dev_t *phy_dev) in genphy_update_link() argument
320 uint8_t phy_addr = phy_dev->phy_addr; in genphy_update_link()
328 ret = eth_phy_read(phy_dev->priv, phy_addr, CVI_MII_BMSR, &mii_reg); in genphy_update_link()
338 if (phy_dev->link_state && mii_reg & CVI_BMSR_LSTATUS) in genphy_update_link()
341 if ((phy_dev->priv->link_info.autoneg == CSI_ETH_AUTONEG_ENABLE) && in genphy_update_link()
344 phy_dev->link_state = ETH_LINK_DOWN; in genphy_update_link()
349 ret = eth_phy_read(phy_dev->priv, phy_addr, CVI_MII_BMSR, &mii_reg); in genphy_update_link()
356 phy_dev->link_state = ETH_LINK_UP; in genphy_update_link()
358 phy_dev->link_state = ETH_LINK_DOWN; in genphy_update_link()
376 static int32_t genphy_config_advert(eth_phy_dev_t *phy_dev) in genphy_config_advert() argument
378 RT_ASSERT(phy_dev->priv); in genphy_config_advert()
380 eth_phy_priv_t *priv = phy_dev->priv; in genphy_config_advert()
381 uint8_t phy_addr = phy_dev->phy_addr; in genphy_config_advert()
388 phy_dev->advertising &= phy_dev->supported; in genphy_config_advert()
389 advertise = phy_dev->advertising; in genphy_config_advert()
453 if (phy_dev->supported & (CVI_SUPPORTED_1000baseT_Half | in genphy_config_advert()
473 static int32_t genphy_setup_forced(eth_phy_dev_t *phy_dev) in genphy_setup_forced() argument
475 RT_ASSERT(phy_dev->priv); in genphy_setup_forced()
477 eth_phy_priv_t *priv = phy_dev->priv; in genphy_setup_forced()
478 uint8_t phy_addr = phy_dev->phy_addr; in genphy_setup_forced()
497 int genphy_restart_aneg(eth_phy_dev_t *phy_dev) in genphy_restart_aneg() argument
501 ret = eth_phy_read(phy_dev->priv, phy_dev->phy_addr, CVI_MII_BMCR, &ctl); in genphy_restart_aneg()
511 ret = eth_phy_write(phy_dev->priv, phy_dev->phy_addr, CVI_MII_BMCR, ctl); in genphy_restart_aneg()
516 int32_t genphy_config_aneg(eth_phy_dev_t *phy_dev) in genphy_config_aneg() argument
518 RT_ASSERT(phy_dev->priv); in genphy_config_aneg()
520 eth_phy_priv_t *priv = phy_dev->priv; in genphy_config_aneg()
521 uint8_t phy_addr = phy_dev->phy_addr; in genphy_config_aneg()
527 return genphy_setup_forced(phy_dev); in genphy_config_aneg()
529 result = genphy_config_advert(phy_dev); in genphy_config_aneg()
548 result = genphy_restart_aneg(phy_dev); in genphy_config_aneg()
553 int32_t genphy_config(eth_phy_dev_t *phy_dev) in genphy_config() argument
555 RT_ASSERT(phy_dev->priv); in genphy_config()
557 eth_phy_priv_t *priv = phy_dev->priv; in genphy_config()
558 uint8_t phy_addr = phy_dev->phy_addr; in genphy_config()
599 phy_dev->supported &= features; in genphy_config()
600 phy_dev->advertising &= features; in genphy_config()
602 genphy_config_aneg(phy_dev); in genphy_config()
609 eth_phy_dev_t *phy_dev; in cvi_eth_phy_init() local
623 phy_dev = eth_connect_phy(priv, phy_mask, interface); in cvi_eth_phy_init()
624 if (phy_dev == NULL) { in cvi_eth_phy_init()
628 rt_kprintf("connect phy id: 0x%X\n", phy_dev->phy_id); in cvi_eth_phy_init()
630 phy_dev->priv = priv; in cvi_eth_phy_init()
633 eth_phy_reset(phy_dev); in cvi_eth_phy_init()
636 eth_phy_config(phy_dev); in cvi_eth_phy_init()
638 return phy_dev; in cvi_eth_phy_init()