From 02b7e81b786f522adf2e0b46ce335ac4dc538636 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 6 Jun 2012 17:24:09 +0000 Subject: ar71xx: add a helper function for setting up PHY4 swapping on ar933x git-svn-id: svn://svn.openwrt.org/openwrt/trunk@32092 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'target/linux/ar71xx/files/arch/mips/ath79/dev-eth.c') 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) { -- cgit v1.2.3