Lines Matching +full:rx +full:- +full:sample +full:- +full:delay +full:- +full:ns

1 // SPDX-License-Identifier: GPL-2.0+
14 #include <linux/delay.h>
95 struct device *dev = &phydev->mdio.dev; in rtl821x_probe()
101 return -ENOMEM; in rtl821x_probe()
107 priv->phycr1 = ret & (RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_XTAL_OFF); in rtl821x_probe()
108 if (of_property_read_bool(dev->of_node, "realtek,aldps-enable")) in rtl821x_probe()
109 priv->phycr1 |= RTL8211F_ALDPS_PLL_OFF | RTL8211F_ALDPS_ENABLE | RTL8211F_ALDPS_XTAL_OFF; in rtl821x_probe()
115 priv->phycr2 = ret & RTL8211F_CLKOUT_EN; in rtl821x_probe()
116 if (of_property_read_bool(dev->of_node, "realtek,clkout-disable")) in rtl821x_probe()
117 priv->phycr2 &= ~RTL8211F_CLKOUT_EN; in rtl821x_probe()
119 phydev->priv = priv; in rtl821x_probe()
156 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in rtl8201_config_intr()
179 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in rtl8211b_config_intr()
201 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in rtl8211e_config_intr()
224 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in rtl8211f_config_intr()
314 if (phydev->speed == SPEED_100 && phydev->autoneg == AUTONEG_DISABLE) { in rtl8211_config_aneg()
334 struct rtl821x_priv *priv = phydev->priv; in rtl8211f_config_init()
335 struct device *dev = &phydev->mdio.dev; in rtl8211f_config_init()
341 priv->phycr1); in rtl8211f_config_init()
348 switch (phydev->interface) { in rtl8211f_config_init()
369 default: /* the rest of the modes imply leaving delay as is. */ in rtl8211f_config_init()
376 dev_err(dev, "Failed to update the TX delay register\n"); in rtl8211f_config_init()
380 "%s 2ns TX delay (and changing the value from pin-strapping RXD1 or the bootloader)\n", in rtl8211f_config_init()
384 "2ns TX delay was already %s (by pin-strapping RXD1 or bootloader configuration)\n", in rtl8211f_config_init()
391 dev_err(dev, "Failed to update the RX delay register\n"); in rtl8211f_config_init()
395 "%s 2ns RX delay (and changing the value from pin-strapping RXD0 or the bootloader)\n", in rtl8211f_config_init()
399 "2ns RX delay was already %s (by pin-strapping RXD0 or bootloader configuration)\n", in rtl8211f_config_init()
404 RTL8211F_CLKOUT_EN, priv->phycr2); in rtl8211f_config_init()
432 /* enable TX/RX delay for rgmii-* modes, and disable them for rgmii. */ in rtl8211e_config_init()
433 switch (phydev->interface) { in rtl8211e_config_init()
450 /* According to a sample driver there is a 0x1c config register on the in rtl8211e_config_init()
452 * the RX/TX delays otherwise controlled by RXDLY/TXDLY pins. in rtl8211e_config_init()
455 * 13 = Force Tx RX Delay controlled by bit12 bit11, in rtl8211e_config_init()
456 * 12 = RX Delay, 11 = TX Delay in rtl8211e_config_init()
496 dev_err(&phydev->mdio.dev, in rtl8366rb_config_init()
508 if (!phydev->link) in rtlgen_get_speed()
517 phydev->speed = SPEED_10; in rtlgen_get_speed()
520 phydev->speed = SPEED_100; in rtlgen_get_speed()
523 phydev->speed = SPEED_1000; in rtlgen_get_speed()
526 phydev->speed = SPEED_10000; in rtlgen_get_speed()
529 phydev->speed = SPEED_2500; in rtlgen_get_speed()
532 phydev->speed = SPEED_5000; in rtlgen_get_speed()
569 ret = -EOPNOTSUPP; in rtlgen_read_mmd()
585 ret = -EOPNOTSUPP; in rtlgen_write_mmd()
595 if (ret != -EOPNOTSUPP) in rtl822x_read_mmd()
620 if (ret != -EOPNOTSUPP) in rtl822x_write_mmd()
641 phydev->supported, val & RTL_SUPPORTS_2500FULL); in rtl822x_get_features()
643 phydev->supported, val & RTL_SUPPORTS_5000FULL); in rtl822x_get_features()
645 phydev->supported, val & RTL_SUPPORTS_10000FULL); in rtl822x_get_features()
654 if (phydev->autoneg == AUTONEG_ENABLE) { in rtl822x_config_aneg()
658 phydev->advertising)) in rtl822x_config_aneg()
674 if (phydev->autoneg == AUTONEG_ENABLE) { in rtl822x_read_status()
681 phydev->lp_advertising, lpadv & RTL_LPADV_10000FULL); in rtl822x_read_status()
683 phydev->lp_advertising, lpadv & RTL_LPADV_5000FULL); in rtl822x_read_status()
685 phydev->lp_advertising, lpadv & RTL_LPADV_2500FULL); in rtl822x_read_status()
708 return phydev->phy_id == RTL_GENERIC_PHYID && in rtlgen_match_phy_device()
714 return phydev->phy_id == RTL_GENERIC_PHYID && in rtl8226_match_phy_device()
730 phydev->autoneg = AUTONEG_DISABLE; in rtl9000a_config_init()
731 phydev->speed = SPEED_100; in rtl9000a_config_init()
732 phydev->duplex = DUPLEX_FULL; in rtl9000a_config_init()
742 switch (phydev->master_slave_set) { in rtl9000a_config_aneg()
753 return -EOPNOTSUPP; in rtl9000a_config_aneg()
767 phydev->master_slave_get = MASTER_SLAVE_CFG_UNKNOWN; in rtl9000a_read_status()
768 phydev->master_slave_state = MASTER_SLAVE_STATE_UNKNOWN; in rtl9000a_read_status()
778 phydev->master_slave_get = MASTER_SLAVE_CFG_MASTER_FORCE; in rtl9000a_read_status()
780 phydev->master_slave_get = MASTER_SLAVE_CFG_SLAVE_FORCE; in rtl9000a_read_status()
786 phydev->master_slave_state = MASTER_SLAVE_STATE_MASTER; in rtl9000a_read_status()
788 phydev->master_slave_state = MASTER_SLAVE_STATE_SLAVE; in rtl9000a_read_status()
807 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { in rtl9000a_config_intr()
927 .name = "Generic FE-GE Realtek PHY",
962 .name = "RTL8226-CG 2.5Gbps PHY",
972 .name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY",
982 .name = "RTL8221B-VB-CG 2.5Gbps PHY",
992 .name = "RTL8221B-VM-CG 2.5Gbps PHY",