Merge branch 'master' of git://git.denx.de/u-boot-video
[oweals/u-boot.git] / drivers / net / keystone_net.c
index e41b7d1365d106f6b93c554b8a5a10824c376413..1b781f4d95a74939de39363f4dc532af21524fe8 100644 (file)
@@ -56,13 +56,16 @@ struct rx_buff_desc net_rx_buffs = {
 #ifdef CONFIG_DM_ETH
 
 enum link_type {
-       LINK_TYPE_MAC_TO_MAC_AUTO = 0,
-       LINK_TYPE_MAC_TO_PHY_MODE = 1,
-       LINK_TYPE_MAC_TO_MAC_FORCED_MODE = 2,
-       LINK_TYPE_MAC_TO_FIBRE_MODE = 3,
-       LINK_TYPE_MAC_TO_PHY_NO_MDIO_MODE = 4,
-       LINK_TYPE_10G_MAC_TO_PHY_MODE = 10,
-       LINK_TYPE_10G_MAC_TO_MAC_FORCED_MODE = 11,
+       LINK_TYPE_SGMII_MAC_TO_MAC_AUTO         = 0,
+       LINK_TYPE_SGMII_MAC_TO_PHY_MODE         = 1,
+       LINK_TYPE_SGMII_MAC_TO_MAC_FORCED_MODE  = 2,
+       LINK_TYPE_SGMII_MAC_TO_FIBRE_MODE       = 3,
+       LINK_TYPE_SGMII_MAC_TO_PHY_NO_MDIO_MODE = 4,
+       LINK_TYPE_RGMII_LINK_MAC_PHY            = 5,
+       LINK_TYPE_RGMII_LINK_MAC_MAC_FORCED     = 6,
+       LINK_TYPE_RGMII_LINK_MAC_PHY_NO_MDIO    = 7,
+       LINK_TYPE_10G_MAC_TO_PHY_MODE           = 10,
+       LINK_TYPE_10G_MAC_TO_MAC_FORCED_MODE    = 11,
 };
 
 #define mac_hi(mac)     (((mac)[0] << 0) | ((mac)[1] << 8) |    \
@@ -990,7 +993,7 @@ static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0)
        char *slave_name;
 
        interfaces = fdt_subnode_offset(fdt, gbe, "interfaces");
-       fdt_for_each_subnode(fdt, slave, interfaces) {
+       fdt_for_each_subnode(slave, fdt, interfaces) {
                int slave_no;
 
                slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
@@ -1015,7 +1018,7 @@ static int ks2_eth_bind_slaves(struct udevice *dev, int gbe, int *gbe_0)
        }
 
        sec_slave = fdt_subnode_offset(fdt, gbe, "secondary-slave-ports");
-       fdt_for_each_subnode(fdt, slave, sec_slave) {
+       fdt_for_each_subnode(slave, fdt, sec_slave) {
                int slave_no;
 
                slave_no = fdtdec_get_int(fdt, slave, "slave-port", -ENOENT);
@@ -1077,11 +1080,15 @@ static int ks2_eth_parse_slave_interface(int netcp, int slave,
                priv->mdio_base = (void *)fdtdec_get_addr(fdt, mdio, "reg");
        }
 
-       if (priv->link_type == LINK_TYPE_MAC_TO_PHY_MODE) {
+       if (priv->link_type == LINK_TYPE_SGMII_MAC_TO_PHY_MODE) {
                priv->phy_if = PHY_INTERFACE_MODE_SGMII;
                pdata->phy_interface = priv->phy_if;
                priv->sgmii_link_type = SGMII_LINK_MAC_PHY;
                priv->has_mdio = true;
+       } else if (priv->link_type == LINK_TYPE_RGMII_LINK_MAC_PHY) {
+               priv->phy_if = PHY_INTERFACE_MODE_RGMII;
+               pdata->phy_interface = priv->phy_if;
+               priv->has_mdio = true;
        }
 
        return 0;
@@ -1092,7 +1099,7 @@ static int ks2_sl_eth_ofdata_to_platdata(struct udevice *dev)
        struct ks2_eth_priv *priv = dev_get_priv(dev);
        struct eth_pdata *pdata = dev_get_platdata(dev);
        const void *fdt = gd->fdt_blob;
-       int slave = dev->of_offset;
+       int slave = dev_of_offset(dev);
        int interfaces;
        int gbe;
        int netcp_devices;
@@ -1119,13 +1126,13 @@ static int ks2_eth_ofdata_to_platdata(struct udevice *dev)
        int netcp_devices;
        int gbe;
 
-       netcp_devices = fdt_subnode_offset(fdt, dev->of_offset,
+       netcp_devices = fdt_subnode_offset(fdt, dev_of_offset(dev),
                                           "netcp-devices");
        gbe = fdt_subnode_offset(fdt, netcp_devices, "gbe");
 
        ks2_eth_bind_slaves(dev, gbe, &gbe_0);
 
-       ks2_eth_parse_slave_interface(dev->of_offset, gbe_0, priv, pdata);
+       ks2_eth_parse_slave_interface(dev_of_offset(dev), gbe_0, priv, pdata);
 
        pdata->iobase = dev_get_addr(dev);