Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 314686
b: refs/heads/master
c: 6bd47ac
h: refs/heads/master
v: v3
  • Loading branch information
David Daney authored and David S. Miller committed Jun 28, 2012
1 parent 1bf5d5d commit eefa49f
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ac28b9f8cd66d6bc54f8063df59e99abd62173a4
refs/heads/master: 6bd47ac2e434611e52027155438d7b4ad3c76bdb
12 changes: 11 additions & 1 deletion trunk/Documentation/devicetree/bindings/net/phy.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,20 @@ Required properties:
- linux,phandle : phandle for this node; likely referenced by an
ethernet controller node.

Optional Properties:

- compatible: Compatible list, may contain
"ethernet-phy-ieee802.3-c22" or "ethernet-phy-ieee802.3-c45" for
PHYs that implement IEEE802.3 clause 22 or IEEE802.3 clause 45
specifications. If neither of these are specified, the default is to
assume clause 22. The compatible list may also contain other
elements.

Example:

ethernet-phy@0 {
linux,phandle = <2452000>
compatible = "ethernet-phy-ieee802.3-c22";
linux,phandle = <2452000>;
interrupt-parent = <40000>;
interrupts = <35 1>;
reg = <0>;
Expand Down
16 changes: 12 additions & 4 deletions trunk/drivers/of/of_mdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
const __be32 *paddr;
u32 addr;
int len;
bool is_c45;

/* A PHY must have a reg property in the range [0-31] */
paddr = of_get_property(child, "reg", &len);
Expand All @@ -79,11 +80,18 @@ int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np)
mdio->irq[addr] = PHY_POLL;
}

phy = get_phy_device(mdio, addr, false);
is_c45 = of_device_is_compatible(child,
"ethernet-phy-ieee802.3-c45");
phy = get_phy_device(mdio, addr, is_c45);

if (!phy || IS_ERR(phy)) {
dev_err(&mdio->dev, "error probing PHY at address %i\n",
addr);
continue;
phy = phy_device_create(mdio, addr, 0, false, NULL);
if (!phy || IS_ERR(phy)) {
dev_err(&mdio->dev,
"error creating PHY at address %i\n",
addr);
continue;
}
}

/* Associate the OF node with the device structure so it
Expand Down

0 comments on commit eefa49f

Please sign in to comment.