Lines Matching full:slave
211 #define for_active_slave(slave, priv) \ argument
212 slave = (priv)->slaves + (priv)->data.active_slave; if (slave)
213 #define for_each_slave(slave, priv) \ argument
214 for (slave = (priv)->slaves; slave != (priv)->slaves + \
215 (priv)->data.slaves; slave++)
470 static void cpsw_set_slave_mac(struct cpsw_slave *slave, in cpsw_set_slave_mac() argument
476 writel(mac_hi(pdata->enetaddr), &slave->regs->sa_hi); in cpsw_set_slave_mac()
477 writel(mac_lo(pdata->enetaddr), &slave->regs->sa_lo); in cpsw_set_slave_mac()
479 __raw_writel(mac_hi(priv->dev->enetaddr), &slave->regs->sa_hi); in cpsw_set_slave_mac()
480 __raw_writel(mac_lo(priv->dev->enetaddr), &slave->regs->sa_lo); in cpsw_set_slave_mac()
484 static int cpsw_slave_update_link(struct cpsw_slave *slave, in cpsw_slave_update_link() argument
512 if (mac_control == slave->mac_control) in cpsw_slave_update_link()
517 slave->slave_num, phy->speed, in cpsw_slave_update_link()
520 printf("link down on port %d\n", slave->slave_num); in cpsw_slave_update_link()
523 __raw_writel(mac_control, &slave->sliver->mac_control); in cpsw_slave_update_link()
524 slave->mac_control = mac_control; in cpsw_slave_update_link()
533 struct cpsw_slave *slave; in cpsw_update_link() local
535 for_active_slave(slave, priv) in cpsw_update_link()
536 ret = cpsw_slave_update_link(slave, priv, NULL); in cpsw_update_link()
549 static void cpsw_slave_init(struct cpsw_slave *slave, struct cpsw_priv *priv) in cpsw_slave_init() argument
553 setbit_and_wait_for_clear32(&slave->sliver->soft_reset); in cpsw_slave_init()
556 __raw_writel(0x76543210, &slave->sliver->rx_pri_map); in cpsw_slave_init()
557 __raw_writel(0x33221100, &slave->regs->tx_pri_map); in cpsw_slave_init()
560 __raw_writel(PKT_MAX, &slave->sliver->rx_maxlen); in cpsw_slave_init()
561 cpsw_set_slave_mac(slave, priv); in cpsw_slave_init()
563 slave->mac_control = 0; /* no link yet */ in cpsw_slave_init()
566 slave_port = cpsw_get_slave_port(priv, slave->slave_num); in cpsw_slave_init()
571 priv->phy_mask |= 1 << slave->data->phy_addr; in cpsw_slave_init()
671 struct cpsw_slave *slave; in _cpsw_init() local
698 for_active_slave(slave, priv) in _cpsw_init()
699 cpsw_slave_init(slave, priv); in _cpsw_init()
842 static void cpsw_slave_setup(struct cpsw_slave *slave, int slave_num, in cpsw_slave_setup() argument
847 slave->slave_num = slave_num; in cpsw_slave_setup()
848 slave->data = data; in cpsw_slave_setup()
849 slave->regs = regs + data->slave_reg_ofs; in cpsw_slave_setup()
850 slave->sliver = regs + data->sliver_reg_ofs; in cpsw_slave_setup()
853 static int cpsw_phy_init(struct cpsw_priv *priv, struct cpsw_slave *slave) in cpsw_phy_init() argument
859 slave->data->phy_addr, in cpsw_phy_init()
861 slave->data->phy_if); in cpsw_phy_init()
870 if (slave->data->phy_of_handle) in cpsw_phy_init()
871 phydev->node = offset_to_ofnode(slave->data->phy_of_handle); in cpsw_phy_init()
889 * that of active slave, then phy address can safely be updated. in cpsw_phy_addr_update()
901 struct cpsw_slave *slave; in _cpsw_register() local
919 for_each_slave(slave, priv) { in _cpsw_register()
920 cpsw_slave_setup(slave, idx, priv); in _cpsw_register()
930 for_active_slave(slave, priv) in _cpsw_register()
931 cpsw_phy_init(priv, slave); in _cpsw_register()
1082 int slave = priv->data.active_slave; in cpsw_gmii_sel_am3352() local
1107 mask = GMII_SEL_MODE_MASK << (slave * 2) | BIT(slave + 6); in cpsw_gmii_sel_am3352()
1108 mode <<= slave * 2; in cpsw_gmii_sel_am3352()
1111 if (slave == 0) in cpsw_gmii_sel_am3352()
1118 if (slave == 0) in cpsw_gmii_sel_am3352()
1136 int slave = priv->data.active_slave; in cpsw_gmii_sel_dra7xx() local
1158 switch (slave) { in cpsw_gmii_sel_dra7xx()
1167 dev_err(priv->dev, "invalid slave number...\n"); in cpsw_gmii_sel_dra7xx()
1277 if (!strncmp(name, "slave", 5)) { in cpsw_eth_ofdata_to_platdata()
1353 int cpsw_get_slave_phy_addr(struct udevice *dev, int slave) in cpsw_get_slave_phy_addr() argument
1358 return data->slave_data[slave].phy_addr; in cpsw_get_slave_phy_addr()