diff options
author | David Daney <david.daney@cavium.com> | 2012-06-27 03:33:35 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-06-28 00:23:24 -0400 |
commit | ac28b9f8cd66d6bc54f8063df59e99abd62173a4 (patch) | |
tree | 9a837eafeead399aebad03fb891654ddeff37513 /drivers/of | |
parent | a3caad0a160c03b7238a2518fa89abda78adef1e (diff) |
netdev/phy: Handle IEEE802.3 clause 45 Ethernet PHYs
The IEEE802.3 clause 45 MDIO bus protocol allows for directly
addressing PHY registers using a 21 bit address, and is used by many
10G Ethernet PHYS. Already existing is the ability of MDIO bus
drivers to use clause 45, with the MII_ADDR_C45 flag. Here we add
struct phy_c45_device_ids to hold the device identifier registers
present in clause 45. struct phy_device gets a couple of new fields:
c45_ids to hold the identifiers and is_c45 to signal that it is clause
45.
get_phy_device() gets a new parameter is_c45 to indicate that the PHY
device should use the clause 45 protocol, and its callers are adjusted
to pass false. The follow-on patch to of_mdio.c will pass true where
appropriate.
EXPORT phy_device_create() so that the follow-on patch to of_mdio.c
can use it to create phy devices for PHYs, that have non-standard
device identifier registers, based on the device tree bindings.
Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/of')
-rw-r--r-- | drivers/of/of_mdio.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/of/of_mdio.c b/drivers/of/of_mdio.c index 2574abde8d9..6c24cad322d 100644 --- a/drivers/of/of_mdio.c +++ b/drivers/of/of_mdio.c | |||
@@ -79,7 +79,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) | |||
79 | mdio->irq[addr] = PHY_POLL; | 79 | mdio->irq[addr] = PHY_POLL; |
80 | } | 80 | } |
81 | 81 | ||
82 | phy = get_phy_device(mdio, addr); | 82 | phy = get_phy_device(mdio, addr, false); |
83 | if (!phy || IS_ERR(phy)) { | 83 | if (!phy || IS_ERR(phy)) { |
84 | dev_err(&mdio->dev, "error probing PHY at address %i\n", | 84 | dev_err(&mdio->dev, "error probing PHY at address %i\n", |
85 | addr); | 85 | addr); |