linux/drivers/net/phy/mscc/mscc_serdes.h
Bjarni Jonasson 85e97f0b98 net: phy: mscc: improved serdes calibration applied to VSC8514
The current IB serdes calibration algorithm (performed by the onboard 8051)
has proven to be unstable for the VSC8514 QSGMII phy.
A new algorithm has been developed based on
'Frequency-offset Jittered-Injection' or 'FoJi' method which solves
all known issues.  This patch disables the 8051 algorithm and
replaces it with the new FoJi algorithm.
The calibration is now performed in a new file (mscc_serdes.c),
which can act as an placeholder for future serdes configurations.

Fixes: e4f9ba642f0b ("net: phy: mscc: add support for VSC8514 PHY.")
Signed-off-by: Steen Hegelund <steen.hegelund@microchip.com>
Signed-off-by: Bjarni Jonasson <bjarni.jonasson@microchip.com>
Tested-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2021-02-16 14:06:18 -08:00

32 lines
874 B
C

/* SPDX-License-Identifier: (GPL-2.0 OR MIT) */
/*
* Driver for Microsemi VSC85xx PHYs
*
* Copyright (c) 2021 Microsemi Corporation
*/
#ifndef _MSCC_SERDES_PHY_H_
#define _MSCC_SERDES_PHY_H_
#define PHY_S6G_PLL5G_CFG2_GAIN_MASK GENMASK(9, 5)
#define PHY_S6G_PLL5G_CFG2_ENA_GAIN 1
#define PHY_S6G_DES_PHY_CTRL_POS 13
#define PHY_S6G_DES_MBTR_CTRL_POS 10
#define PHY_S6G_DES_CPMD_SEL_POS 8
#define PHY_S6G_DES_BW_HYST_POS 5
#define PHY_S6G_DES_BW_ANA_POS 1
#define PHY_S6G_DES_CFG 0x21
#define PHY_S6G_IB_CFG0 0x22
#define PHY_S6G_IB_CFG1 0x23
#define PHY_S6G_IB_CFG2 0x24
#define PHY_S6G_IB_CFG3 0x25
#define PHY_S6G_IB_CFG4 0x26
#define PHY_S6G_GP_CFG 0x2E
#define PHY_S6G_DFT_CFG0 0x35
#define PHY_S6G_IB_DFT_CFG2 0x37
int vsc85xx_sd6g_config_v2(struct phy_device *phydev);
#endif /* _MSCC_PHY_SERDES_H_ */