summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Mack <zonque@gmail.com>2012-09-26 07:24:27 +0000
committerDavid S. Miller <davem@davemloft.net>2012-10-01 17:10:55 -0400
commitd7559982701ac500662b2e8e150ff34f7faf0281 (patch)
treecd731653972e45649b1b13bb1b82d9602c152208
parent342b7b741d76bc8aadeff844634348bb2a343d19 (diff)
net: ti cpsw ethernet: allow reading phy interface mode from DT
Allow users to specify the phy interface of the CPSW slaves. The new node parameter is called "phy_if_mode" and is optional. The original behaviour of the driver is preserved when not given. Signed-off-by: Daniel Mack <zonque@gmail.com> Cc: Mugunthan V N <mugunthanvnm@ti.com> Cc: Vaibhav Hiremath <hvaibhav@ti.com> Cc: David S. Miller <davem@davemloft.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--Documentation/devicetree/bindings/net/cpsw.txt3
-rw-r--r--drivers/net/ethernet/ti/cpsw.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/net/cpsw.txt b/Documentation/devicetree/bindings/net/cpsw.txt
index dcaabe9fe86..d87f7d2b7b0 100644
--- a/Documentation/devicetree/bindings/net/cpsw.txt
+++ b/Documentation/devicetree/bindings/net/cpsw.txt
@@ -25,6 +25,8 @@ Required properties:
- slave_reg_ofs : Specifies slave register offset
- sliver_reg_ofs : Specifies slave sliver register offset
- phy_id : Specifies slave phy id
+- phy_if_mode : Specified slave phy interface mode (optional)
+ (one of the PHY_INTERFACE_MODE_* as numerical value)
- mac-address : Specifies slave MAC address
Optional properties:
@@ -62,6 +64,7 @@ Examples:
slave_reg_ofs = <0x208>;
sliver_reg_ofs = <0xd80>;
phy_id = "davinci_mdio.16:00";
+ phy_if_mode = <6>; /* PHY_INTERFACE_MODE_RGMII */
/* Filled in by U-Boot */
mac-address = [ 00 00 00 00 00 00 ];
};
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index df55e240374..3e12db6f9c0 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -855,6 +855,9 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
}
slave_data->sliver_reg_ofs = prop;
+ if (!of_property_read_u32(slave_node, "phy_if_mode", &prop))
+ slave_data->phy_if = prop;
+
mac_addr = of_get_mac_address(slave_node);
if (mac_addr)
memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN);