Thread (35 messages) 35 messages, 5 authors, 2017-09-20

[PATCH v5 10/10] net: stmmac: dwmac-sun8i: Handle integrated/external MDIOs

From: clabbe.montjoie@gmail.com (Corentin Labbe)
Date: 2017-09-08 14:08:44
Also in: linux-devicetree, lkml, netdev

On Fri, Sep 08, 2017 at 04:00:20PM +0200, Andrew Lunn wrote:
quoted
quoted
quoted
+static int mdio_mux_syscon_switch_fn(int current_child, int desired_child,
+				     void *data)
+{
+	struct stmmac_priv *priv = data;
+	struct sunxi_priv_data *gmac = priv->plat->bsp_priv;
+	u32 reg, val;
+	int ret = 0;
+	bool need_reset = false;
+
+	if (current_child ^ desired_child) {
+		regmap_read(gmac->regmap, SYSCON_EMAC_REG, &reg);
+		switch (desired_child) {
+		case DWMAC_sUN8I_MDIO_MUX_INTERNAL_ID:
+			dev_info(priv->device, "Switch mux to internal PHY");
+			val = (reg & ~H3_EPHY_MUX_MASK) | H3_EPHY_SELECT;
+			if (gmac->use_internal_phy)
+				need_reset = true;
+			break;
This i don't get. Why do you need use_internal_phy? Isn't that
implicit from DWMAC_sUN8I_MDIO_MUX_INTERNAL_ID? Is it even possible to
use an external PHY on the internal MDIO bus?
On my H3 box with external PHY, the MDIO mux library first select (for scan ?) the internal MDIO.
Without use_internal_phy usage, this board will launch a reset to use the internal MDIO... and this reset timeout/fail.
Do you know why the reset times out/fails?
Because there are nothing connected to it.
I got also reset timeout on integrated MDIO when the integrated PHY is not powered.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help