Lines Matching +full:rmii +full:- +full:refclk +full:- +full:in

1 // SPDX-License-Identifier: GPL-2.0
81 /* Configure REF_CLK as input in RMII mode */
205 if (phydev->link) in tja11xx_config_aneg_cable_test()
208 if (!phydev->drv->cable_test_start || in tja11xx_config_aneg_cable_test()
209 !phydev->drv->cable_test_get_status) in tja11xx_config_aneg_cable_test()
216 ret = phydev->drv->cable_test_start(phydev); in tja11xx_config_aneg_cable_test()
223 ret = phydev->drv->cable_test_get_status(phydev, &finished); in tja11xx_config_aneg_cable_test()
238 switch (phydev->master_slave_set) { in tja11xx_config_aneg()
249 return -ENOTSUPP; in tja11xx_config_aneg()
266 struct tja11xx_priv *priv = phydev->priv; in tja11xx_get_interface_mode()
269 switch (phydev->interface) { in tja11xx_get_interface_mode()
277 if (priv->flags & TJA110X_RMII_MODE_REFCLK_IN) in tja11xx_get_interface_mode()
283 return -EINVAL; in tja11xx_get_interface_mode()
298 phydev->autoneg = AUTONEG_DISABLE; in tja11xx_config_init()
299 phydev->speed = SPEED_100; in tja11xx_config_init()
300 phydev->duplex = DUPLEX_FULL; in tja11xx_config_init()
302 switch (phydev->phy_id & PHY_ID_MASK) { in tja11xx_config_init()
336 return -EINVAL; in tja11xx_config_init()
364 phydev->master_slave_get = MASTER_SLAVE_CFG_UNKNOWN; in tja11xx_read_status()
365 phydev->master_slave_state = MASTER_SLAVE_STATE_UNSUPPORTED; in tja11xx_read_status()
376 phydev->master_slave_get = MASTER_SLAVE_CFG_MASTER_FORCE; in tja11xx_read_status()
378 phydev->master_slave_get = MASTER_SLAVE_CFG_SLAVE_FORCE; in tja11xx_read_status()
380 if (phydev->link) { in tja11xx_read_status()
386 phydev->link = 0; in tja11xx_read_status()
464 return -EOPNOTSUPP; in tja11xx_hwmon_read()
481 HWMON_CHANNEL_INFO(in, HWMON_I_LCRIT_ALARM),
499 struct device *dev = &phydev->mdio.dev; in tja11xx_hwmon_register()
501 priv->hwmon_name = devm_hwmon_sanitize_name(dev, dev_name(dev)); in tja11xx_hwmon_register()
502 if (IS_ERR(priv->hwmon_name)) in tja11xx_hwmon_register()
503 return PTR_ERR(priv->hwmon_name); in tja11xx_hwmon_register()
505 priv->hwmon_dev = in tja11xx_hwmon_register()
506 devm_hwmon_device_register_with_info(dev, priv->hwmon_name, in tja11xx_hwmon_register()
511 return PTR_ERR_OR_ZERO(priv->hwmon_dev); in tja11xx_hwmon_register()
516 struct device_node *node = phydev->mdio.dev.of_node; in tja11xx_parse_dt()
517 struct tja11xx_priv *priv = phydev->priv; in tja11xx_parse_dt()
522 if (of_property_read_bool(node, "nxp,rmii-refclk-in")) in tja11xx_parse_dt()
523 priv->flags |= TJA110X_RMII_MODE_REFCLK_IN; in tja11xx_parse_dt()
530 struct device *dev = &phydev->mdio.dev; in tja11xx_probe()
536 return -ENOMEM; in tja11xx_probe()
538 priv->phydev = phydev; in tja11xx_probe()
539 phydev->priv = priv; in tja11xx_probe()
552 struct phy_device *phydev_phy0 = priv->phydev; in tja1102_p1_register()
553 struct mii_bus *bus = phydev_phy0->mdio.bus; in tja1102_p1_register()
554 struct device *dev = &phydev_phy0->mdio.dev; in tja1102_p1_register()
555 struct device_node *np = dev->of_node; in tja1102_p1_register()
567 } else if (addr != phydev_phy0->mdio.addr + 1) { in tja1102_p1_register()
573 phydev_phy0->mdio.addr + 1); in tja1102_p1_register()
591 * the mii_bus->dev, which is not correct in case. in tja1102_p1_register()
593 phy->mdio.dev.parent = dev; in tja1102_p1_register()
599 * interrupt line, so -EPROBE_DEFER would make no sense in tja1102_p1_register()
611 struct device *dev = &phydev->mdio.dev; in tja1102_p0_probe()
617 return -ENOMEM; in tja1102_p0_probe()
619 priv->phydev = phydev; in tja1102_p0_probe()
620 INIT_WORK(&priv->phy_register_work, tja1102_p1_register); in tja1102_p0_probe()
626 schedule_work(&priv->phy_register_work); in tja1102_p0_probe()
635 if ((phydev->phy_id & PHY_ID_MASK) != PHY_ID_TJA1102) in tja1102_match_phy_device()
675 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in tja11xx_config_intr()
696 struct device *dev = &phydev->mdio.dev; in tja11xx_handle_interrupt()
738 * | BI_DA+ | BI_DA- | Result
740 * | + short to - | - short to + | short
903 MODULE_DESCRIPTION("NXP TJA11xx BoardR-Reach PHY driver");