staticconstchar *mtk_eth_path_name(u64 path)
{ switch (path) { case MTK_ETH_PATH_GMAC1_RGMII: return"gmac1_rgmii"; case MTK_ETH_PATH_GMAC1_TRGMII: return"gmac1_trgmii"; case MTK_ETH_PATH_GMAC1_SGMII: return"gmac1_sgmii"; case MTK_ETH_PATH_GMAC2_RGMII: return"gmac2_rgmii"; case MTK_ETH_PATH_GMAC2_SGMII: return"gmac2_sgmii"; case MTK_ETH_PATH_GMAC2_2P5GPHY: return"gmac2_2p5gphy"; case MTK_ETH_PATH_GMAC2_GEPHY: return"gmac2_gephy"; case MTK_ETH_PATH_GDM1_ESW: return"gdm1_esw"; default: return"unknown path";
}
}
switch (path) { case MTK_ETH_PATH_GMAC1_SGMII:
val = SYSCFG0_SGMII_GMAC1; break; case MTK_ETH_PATH_GMAC2_SGMII:
val = SYSCFG0_SGMII_GMAC2; break; case MTK_ETH_PATH_GMAC1_RGMII: case MTK_ETH_PATH_GMAC2_RGMII:
regmap_read(eth->ethsys, ETHSYS_SYSCFG0, &val);
val &= SYSCFG0_SGMII_MASK;
if ((path == MTK_GMAC1_RGMII && val == SYSCFG0_SGMII_GMAC1) ||
(path == MTK_GMAC2_RGMII && val == SYSCFG0_SGMII_GMAC2))
val = 0; else
updated = false; break; default:
updated = false; break;
}
if (updated)
regmap_update_bits(eth->ethsys, ETHSYS_SYSCFG0,
SYSCFG0_SGMII_MASK, val);
switch (path) { case MTK_ETH_PATH_GMAC1_SGMII:
val |= SYSCFG0_SGMII_GMAC1_V2; break; case MTK_ETH_PATH_GMAC2_GEPHY:
val &= ~(u32)SYSCFG0_SGMII_GMAC2_V2; break; case MTK_ETH_PATH_GMAC2_SGMII:
val |= SYSCFG0_SGMII_GMAC2_V2; break; default:
updated = false;
}
if (updated)
regmap_update_bits(eth->ethsys, ETHSYS_SYSCFG0,
SYSCFG0_SGMII_MASK, val);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.