diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-06-06 17:24:09 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-06-06 17:24:09 +0000 |
commit | dc9675282e17439ac7ffecc29f0a5e2ddd3b9264 (patch) | |
tree | 203339543515de0aaffda1a6c433180ebc20d448 /target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c | |
parent | 072bed476076acec560557e985ca0ddcdd62be9a (diff) | |
download | upstream-dc9675282e17439ac7ffecc29f0a5e2ddd3b9264.tar.gz upstream-dc9675282e17439ac7ffecc29f0a5e2ddd3b9264.tar.bz2 upstream-dc9675282e17439ac7ffecc29f0a5e2ddd3b9264.zip |
ar71xx: add a helper function for setting up PHY4 swapping on ar933x
SVN-Revision: 32092
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c')
-rw-r--r-- | target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c index bc88a44aa7..45817e171a 100644 --- a/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c +++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c @@ -634,6 +634,24 @@ static int __init ath79_setup_phy_if_mode(unsigned int id, return 0; } +void __init ath79_setup_ar933x_phy4_switch(bool mac, bool mdio) +{ + void __iomem *base; + u32 t; + + base = ioremap(AR933X_GMAC_BASE, AR933X_GMAC_SIZE); + + t = __raw_readl(base + AR933X_GMAC_REG_ETH_CFG); + t &= ~(AR933X_ETH_CFG_SW_PHY_SWAP | AR933X_ETH_CFG_SW_PHY_ADDR_SWAP); + if (mac) + t |= AR933X_ETH_CFG_SW_PHY_SWAP; + if (mdio) + t |= AR933X_ETH_CFG_SW_PHY_ADDR_SWAP; + __raw_writel(t, base + AR933X_GMAC_REG_ETH_CFG); + + iounmap(base); +} + static int ath79_eth_instance __initdata; void __init ath79_register_eth(unsigned int id) { |