From: Dimitri Fedrau <dimitri.fedrau@xxxxxxxxxxxx> Add helper which returns the MAC series termination resistance value. Modifying the resistance to an appropriate value can reduce signal reflections and therefore improve signal quality. Signed-off-by: Dimitri Fedrau <dimitri.fedrau@xxxxxxxxxxxx> --- drivers/net/phy/phy_device.c | 15 +++++++++++++++ include/linux/phy.h | 3 +++ 2 files changed, 18 insertions(+) diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c index b2d32fbc8c8507f6280e4c3c671466f672c1cc8f..575583aa8b4d49bef796e96059e4f0dd56b351f9 100644 --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c @@ -2975,6 +2975,21 @@ int phy_get_tx_amplitude_gain(struct phy_device *phydev, struct device *dev, } EXPORT_SYMBOL_GPL(phy_get_tx_amplitude_gain); +/** + * phy_get_mac_series_termination - stores MAC series termination in @val + * @phydev: phy_device struct + * @dev: pointer to the devices device struct + * @val: MAC series termination + * + * Returns: 0 on success, < 0 on failure + */ +int phy_get_mac_series_termination(struct phy_device *phydev, + struct device *dev, u32 *val) +{ + return phy_get_u32_property(dev, "mac-series-termination-ohms", val); +} +EXPORT_SYMBOL_GPL(phy_get_mac_series_termination); + static int phy_led_set_brightness(struct led_classdev *led_cdev, enum led_brightness value) { diff --git a/include/linux/phy.h b/include/linux/phy.h index c4a6385faf41c3156d1a9086eaf5c746640cddbe..633899c4250c91a366849ee0c11d93feec48262f 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -2052,6 +2052,9 @@ int phy_get_tx_amplitude_gain(struct phy_device *phydev, struct device *dev, enum ethtool_link_mode_bit_indices linkmode, u32 *val); +int phy_get_mac_series_termination(struct phy_device *phydev, + struct device *dev, u32 *val); + void phy_resolve_pause(unsigned long *local_adv, unsigned long *partner_adv, bool *tx_pause, bool *rx_pause); -- 2.39.5