Lines Matching +full:- +full:- +full:trim +full:- +full:-

1 // SPDX-License-Identifier: GPL-2.0+
5 * Copyright (C) 2014-2017 Broadcom
11 #include "bcm-phy-lib.h"
54 /* AFE_RXCONFIG_2, set rCal offset for HT=0 code and LT=-2 code */ in bcm7xxx_28nm_d0_afe_config_init()
69 /* AFE_HPF_TRIM_OTHERS, set 100Tx/10BT to -4.5% swing and set rCal in bcm7xxx_28nm_d0_afe_config_init()
74 /* CORE_BASE1E, force trim to overwrite and set I_ext trim to 0000 */ in bcm7xxx_28nm_d0_afe_config_init()
77 /* DSP_TAP10, adjust bias current trim (+0% swing, +0 tick) */ in bcm7xxx_28nm_d0_afe_config_init()
97 /* AFE_HPF_TRIM_OTHERS, set 100Tx/10BT to -4.5% swing and set rCal in bcm7xxx_28nm_e0_plus_afe_config_init()
102 /* CORE_BASE1E, force trim to overwrite and set I_ext trim to 0000 */ in bcm7xxx_28nm_e0_plus_afe_config_init()
105 /* DSP_TAP10, adjust bias current trim (+0% swing, +0 tick) */ in bcm7xxx_28nm_e0_plus_afe_config_init()
141 u8 rev = PHY_BRCM_7XXX_REV(phydev->dev_flags); in bcm7xxx_28nm_config_init()
142 u8 patch = PHY_BRCM_7XXX_PATCH(phydev->dev_flags); in bcm7xxx_28nm_config_init()
150 rev = phydev->phy_id & ~phydev->drv->phy_id_mask; in bcm7xxx_28nm_config_init()
153 phydev_name(phydev), phydev->drv->name, rev, patch); in bcm7xxx_28nm_config_init()
206 /* Re-apply workarounds coming out suspend/resume */ in bcm7xxx_28nm_resume()
211 /* 28nm Gigabit PHYs come out of reset without any half-duplex in bcm7xxx_28nm_resume()
214 * gracefully handles auto-negotiated and forced modes. in bcm7xxx_28nm_resume()
248 /* Set current trim values INT_trim = -1, Ext_trim =0 */ in bcm7xxx_28nm_ephy_01_afe_config_init()
283 /* The 28nm EPHY does not support Clause 45 (MMD) used by bcm-phy-lib */
294 /* Enable auto-power down */ in bcm7xxx_28nm_ephy_apd_enable()
374 u8 rev = phydev->phy_id & ~phydev->drv->phy_id_mask; in bcm7xxx_28nm_ephy_config_init()
378 phydev_name(phydev), phydev->drv->name, rev); in bcm7xxx_28nm_ephy_config_init()
387 /* Apply AFE software work-around if necessary */ in bcm7xxx_28nm_ephy_config_init()
405 /* Re-apply workarounds coming out suspend/resume */ in bcm7xxx_28nm_ephy_resume()
478 switch (tuna->id) { in bcm7xxx_28nm_get_tunable()
482 return -EOPNOTSUPP; in bcm7xxx_28nm_get_tunable()
493 switch (tuna->id) { in bcm7xxx_28nm_set_tunable()
498 return -EOPNOTSUPP; in bcm7xxx_28nm_set_tunable()
505 * from successfully linking up, trigger auto-negotiation restart in bcm7xxx_28nm_set_tunable()
518 struct bcm7xxx_phy_priv *priv = phydev->priv; in bcm7xxx_28nm_get_phy_stats()
520 bcm_phy_get_stats(phydev, priv->stats, stats, data); in bcm7xxx_28nm_get_phy_stats()
528 priv = devm_kzalloc(&phydev->mdio.dev, sizeof(*priv), GFP_KERNEL); in bcm7xxx_28nm_probe()
530 return -ENOMEM; in bcm7xxx_28nm_probe()
532 phydev->priv = priv; in bcm7xxx_28nm_probe()
534 priv->stats = devm_kcalloc(&phydev->mdio.dev, in bcm7xxx_28nm_probe()
537 if (!priv->stats) in bcm7xxx_28nm_probe()
538 return -ENOMEM; in bcm7xxx_28nm_probe()
540 priv->clk = devm_clk_get_optional(&phydev->mdio.dev, NULL); in bcm7xxx_28nm_probe()
541 if (IS_ERR(priv->clk)) in bcm7xxx_28nm_probe()
542 return PTR_ERR(priv->clk); in bcm7xxx_28nm_probe()
544 ret = clk_prepare_enable(priv->clk); in bcm7xxx_28nm_probe()
561 struct bcm7xxx_phy_priv *priv = phydev->priv; in bcm7xxx_28nm_remove()
563 clk_disable_unprepare(priv->clk); in bcm7xxx_28nm_remove()