drivers: net: phy: at803x: add interface mode support
This patch adds support for RGMII TX delay configuration on Atheros 803X, this can be enabled in debug registers. With this patch, PHY_INTERFACE_MODE_RGMII_TXID modes are now supported. Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ea13c9ee85
commit
1ca6d1b1ae
1 changed files with 16 additions and 0 deletions
|
@ -27,6 +27,10 @@
|
|||
#define AT803X_MMD_ACCESS_CONTROL 0x0D
|
||||
#define AT803X_MMD_ACCESS_CONTROL_DATA 0x0E
|
||||
#define AT803X_FUNC_DATA 0x4003
|
||||
#define AT803X_DEBUG_ADDR 0x1D
|
||||
#define AT803X_DEBUG_DATA 0x1E
|
||||
#define AT803X_DEBUG_SYSTEM_MODE_CTRL 0x05
|
||||
#define AT803X_DEBUG_RGMII_TX_CLK_DLY BIT(8)
|
||||
|
||||
MODULE_DESCRIPTION("Atheros 803x PHY driver");
|
||||
MODULE_AUTHOR("Matus Ujhelyi");
|
||||
|
@ -99,6 +103,7 @@ static void at803x_get_wol(struct phy_device *phydev,
|
|||
static int at803x_config_init(struct phy_device *phydev)
|
||||
{
|
||||
int val;
|
||||
int ret;
|
||||
u32 features;
|
||||
|
||||
features = SUPPORTED_TP | SUPPORTED_MII | SUPPORTED_AUI |
|
||||
|
@ -133,6 +138,17 @@ static int at803x_config_init(struct phy_device *phydev)
|
|||
phydev->supported = features;
|
||||
phydev->advertising = features;
|
||||
|
||||
if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID) {
|
||||
ret = phy_write(phydev, AT803X_DEBUG_ADDR,
|
||||
AT803X_DEBUG_SYSTEM_MODE_CTRL);
|
||||
if (ret)
|
||||
return ret;
|
||||
ret = phy_write(phydev, AT803X_DEBUG_DATA,
|
||||
AT803X_DEBUG_RGMII_TX_CLK_DLY);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue