if_awg: Respect rgmii-*id PHY configurations
phy-mode can be one of: rgmii, rgmii-id, rgmii-txid, rgmii-rxid; as this was written, any of these alternate -id configurations would break as we fail to configure syscon for rgmii. Instead, simply check that phy-mode is configured for rgmii and we'll let the PHY driver handle any internal delay configuration. The pine64 should eventually specify phy-mode = "rgmii-txid" to address gigabit issues when rx delay is configured, motivating this change.
This commit is contained in:
parent
8e3f1dcf54
commit
858f246615
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=327240
@ -1177,7 +1177,7 @@ awg_setup_phy(device_t dev)
|
||||
if (sc->res[_RES_SYSCON] != NULL) {
|
||||
reg = bus_read_4(sc->res[_RES_SYSCON], 0);
|
||||
reg &= ~(EMAC_CLK_PIT | EMAC_CLK_SRC | EMAC_CLK_RMII_EN);
|
||||
if (strcmp(phy_type, "rgmii") == 0)
|
||||
if (strncmp(phy_type, "rgmii", 5) == 0)
|
||||
reg |= EMAC_CLK_PIT_RGMII | EMAC_CLK_SRC_RGMII;
|
||||
else if (strcmp(phy_type, "rmii") == 0)
|
||||
reg |= EMAC_CLK_RMII_EN;
|
||||
@ -1217,7 +1217,7 @@ awg_setup_phy(device_t dev)
|
||||
device_printf(dev, "EMAC clock: 0x%08x\n", reg);
|
||||
bus_write_4(sc->res[_RES_SYSCON], 0, reg);
|
||||
} else {
|
||||
if (strcmp(phy_type, "rgmii") == 0)
|
||||
if (strncmp(phy_type, "rgmii", 5) == 0)
|
||||
tx_parent_name = "emac_int_tx";
|
||||
else
|
||||
tx_parent_name = "mii_phy_tx";
|
||||
|
Loading…
Reference in New Issue
Block a user