Hi Andrew, On 10/08/2018 07:50 PM, Andrew Lunn wrote: >> /* Configure GMII_SEL register */ >> - cpsw_phy_sel(cpsw->dev, slave->phy->interface, slave->slave_num); >> + if (!IS_ERR(slave->data->ifphy)) >> + phy_set_netif_mode(slave->data->ifphy, slave->data->phy_if); > > Is slave->data->phy_if also passed to phy_connect()? So you are going > to end up with both the MAC and the PHY inserting RGMII delays, and it > not working. No. This logic not changed comparing to how it was. * "rgmii" (RX and TX delays are added by the MAC when required) rgmii_id = 0 --> CPSW: 0 : Internal Delay, PHY - no delay * "rgmii-id" (RGMII with internal RX and TX delays provided by the PHY, the MAC should not add the RX or TX delays in this case) * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC should not add an RX delay in this case) * "rgmii-txid" (RGMII with internal TX delay provided by the PHY, the MAC should not add an TX delay in this case) rgmii_id = 1 --> CPSW: 1 : No Internal Delay, PHY/board - delay > > You need to somehow decide if the MAC is going to do the delay, or the > PHY. But not both. Again, this series does not change logic - only interfaces and DT. Thank you for review. -- regards, -grygorii