net: ti cpsw ethernet: allow reading phy interface mode from DT
authorDaniel Mack <zonque@gmail.com>
Wed, 26 Sep 2012 07:24:27 +0000 (07:24 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Oct 2012 21:10:55 +0000 (17:10 -0400)
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>
Documentation/devicetree/bindings/net/cpsw.txt
drivers/net/ethernet/ti/cpsw.c

index dcaabe9fe869d7f029f413d6d97335549974fd05..d87f7d2b7b0a9c2cc01dab0ec40f5bb9d31ad27b 100644 (file)
@@ -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 ];
                };
index df55e240374646e2f076d9b4764fab6dc0a07bab..3e12db6f9c0ca0a752a68ecfea22e755cd4b9498 100644 (file)
@@ -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);