mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-24 17:23:25 -05:00
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>
This commit is contained in:
parent
922f2dd1b6
commit
ab6016e0c1
2 changed files with 6 additions and 0 deletions
|
@ -30,6 +30,9 @@ Optional Properties:
|
||||||
|
|
||||||
- max-speed: Maximum PHY supported speed (10, 100, 1000...)
|
- max-speed: Maximum PHY supported speed (10, 100, 1000...)
|
||||||
|
|
||||||
|
- broken-turn-around: If set, indicates the PHY device does not correctly
|
||||||
|
release the turn around line low at the end of a MDIO transaction.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
ethernet-phy@0 {
|
ethernet-phy@0 {
|
||||||
|
|
|
@ -68,6 +68,9 @@ static int of_mdiobus_register_phy(struct mii_bus *mdio, struct device_node *chi
|
||||||
phy->irq = mdio->irq[addr];
|
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
|
/* Associate the OF node with the device structure so it
|
||||||
* can be looked up later */
|
* can be looked up later */
|
||||||
of_node_get(child);
|
of_node_get(child);
|
||||||
|
|
Loading…
Add table
Reference in a new issue