aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/files
diff options
context:
space:
mode:
authorChuanhong Guo <gch981213@gmail.com>2019-01-20 22:25:25 +0800
committerPetr Štetiar <ynezz@true.cz>2019-03-24 01:44:27 +0100
commitc8c2ef1d495dd3fd3096ac508e91a02f9c583ea8 (patch)
treea74615f4406577d448cc7c2c050e75779004c989 /target/linux/generic/files
parentd6366ce3665f010a7ae7061a557689643073040a (diff)
downloadupstream-c8c2ef1d495dd3fd3096ac508e91a02f9c583ea8.tar.gz
upstream-c8c2ef1d495dd3fd3096ac508e91a02f9c583ea8.tar.bz2
upstream-c8c2ef1d495dd3fd3096ac508e91a02f9c583ea8.zip
generic: ar8216: do a software reset for switch during hw_init
This applies to ar8216 and ar8236. QCA's newer U-boot will enable the switch mdio master for FE switches which makes phy inaccessible from CPU mdio. (e.g. on TP-Link TL-WR941N v7 Chinese version which uses QCA9558+AR8236.) For these devices PHY probing is broken and mdio device probing is a must. We also need to disable switch mdio master in driver for later PHY initialization. Do a soft reset during hw_init so that mdio master can be disabled and expose PHYs to CPU mdio for later PHY accessing. Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Diffstat (limited to 'target/linux/generic/files')
-rw-r--r--target/linux/generic/files/drivers/net/phy/ar8216.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/ar8216.c b/target/linux/generic/files/drivers/net/phy/ar8216.c
index a33d4b31fe..259adef822 100644
--- a/target/linux/generic/files/drivers/net/phy/ar8216.c
+++ b/target/linux/generic/files/drivers/net/phy/ar8216.c
@@ -705,6 +705,9 @@ ar8216_hw_init(struct ar8xxx_priv *priv)
if (priv->initialized)
return 0;
+ ar8xxx_write(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET);
+ ar8xxx_reg_wait(priv, AR8216_REG_CTRL, AR8216_CTRL_RESET, 0, 1000);
+
ar8xxx_phy_init(priv);
priv->initialized = true;