summary refs log tree commit diff
path: root/drivers/of
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2015-05-12 10:33:25 -0700
committerDavid S. Miller <davem@davemloft.net>2015-05-14 13:40:55 -0400
commitab6016e0c134c3a564e6750f5b246ba17ada4686 (patch)
tree6fbd6275a5fb0a7acd330ffd46dfd79a22fd7215 /drivers/of
parent922f2dd1b65a888e34c472979460dc23211750a2 (diff)
downloadlinux-ab6016e0c134c3a564e6750f5b246ba17ada4686.tar.gz
of: mdio: Add a "broken-turn-around" property
Some Ethernet PHY devices/switches may not properly release the MDIO bus
during turn-around time, and fail to drive it low, which can be seen by
some controllers as a read failure, while the data clocked in is still
correct.

Add a boolean property "broken-turn-around" which is parsed by the
generic MDIO bus probing code and will set the corresponding bit in the
MDIO bus phy_ignore_ta_mask bitmask for MDIO bus drivers to utilize that
information.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/of')
-rw-r--r--drivers/of/of_mdio.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c
index 0c064485d1c2..fdc60db60829 100644
--- a/drivers/of/of_mdio.c
+++ b/drivers/of/of_mdio.c
@@ -68,6 +68,9 @@ static int of_mdiobus_register_phy(struct mii_bus *mdio, struct device_node *chi
 			phy->irq = mdio->irq[addr];
 	}
 
+	if (of_property_read_bool(child, "broken-turn-around"))
+		mdio->phy_ignore_ta_mask |= 1 << addr;
+
 	/* Associate the OF node with the device structure so it
 	 * can be looked up later */
 	of_node_get(child);