Lines Matching refs:phy_data
257 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_i2c_xfer() local
260 if (!phy_data->comm_owned) in axgbe_phy_i2c_xfer()
269 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_redrv_write() local
294 i2c_op.target = phy_data->redrv_addr; in axgbe_phy_redrv_write()
308 i2c_op.target = phy_data->redrv_addr; in axgbe_phy_redrv_write()
365 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_put_mux() local
369 if (phy_data->sfp_comm == AXGBE_SFP_COMM_DIRECT) in axgbe_phy_sfp_put_mux()
375 i2c_op.target = phy_data->sfp_mux_address; in axgbe_phy_sfp_put_mux()
384 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_get_mux() local
388 if (phy_data->sfp_comm == AXGBE_SFP_COMM_DIRECT) in axgbe_phy_sfp_get_mux()
392 mux_channel = 1 << phy_data->sfp_mux_channel; in axgbe_phy_sfp_get_mux()
394 i2c_op.target = phy_data->sfp_mux_address; in axgbe_phy_sfp_get_mux()
403 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_put_comm_ownership() local
405 phy_data->comm_owned = 0; in axgbe_phy_put_comm_ownership()
412 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_get_comm_ownership() local
422 if (phy_data->comm_owned) in axgbe_phy_get_comm_ownership()
431 XP_SET_BITS(mutex_id, XP_I2C_MUTEX, ID, phy_data->port_id); in axgbe_phy_get_comm_ownership()
447 phy_data->comm_owned = 1; in axgbe_phy_get_comm_ownership()
460 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_phy_settings() local
462 if (phy_data->sfp_mod_absent) { in axgbe_phy_sfp_phy_settings()
477 switch (phy_data->sfp_base) { in axgbe_phy_sfp_phy_settings()
499 switch (phy_data->sfp_base) { in axgbe_phy_sfp_phy_settings()
509 switch (phy_data->sfp_speed) { in axgbe_phy_sfp_phy_settings()
511 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) in axgbe_phy_sfp_phy_settings()
513 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_sfp_phy_settings()
517 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_sfp_phy_settings()
521 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) in axgbe_phy_sfp_phy_settings()
526 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) in axgbe_phy_sfp_phy_settings()
528 else if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_sfp_phy_settings()
530 else if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) in axgbe_phy_sfp_phy_settings()
561 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_external_phy() local
563 if (!phy_data->sfp_changed) in axgbe_phy_sfp_external_phy()
566 phy_data->sfp_phy_avail = 0; in axgbe_phy_sfp_external_phy()
568 if (phy_data->sfp_base != AXGBE_SFP_BASE_1000_T) in axgbe_phy_sfp_external_phy()
574 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_belfuse_parse_quirks() local
575 struct axgbe_sfp_eeprom *sfp_eeprom = &phy_data->sfp_eeprom; in axgbe_phy_belfuse_parse_quirks()
583 phy_data->sfp_base = AXGBE_SFP_BASE_1000_SX; in axgbe_phy_belfuse_parse_quirks()
584 phy_data->sfp_cable = AXGBE_SFP_CABLE_ACTIVE; in axgbe_phy_belfuse_parse_quirks()
585 phy_data->sfp_speed = AXGBE_SFP_SPEED_1000; in axgbe_phy_belfuse_parse_quirks()
602 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_parse_eeprom() local
603 struct axgbe_sfp_eeprom *sfp_eeprom = &phy_data->sfp_eeprom; in axgbe_phy_sfp_parse_eeprom()
618 phy_data->sfp_cable = AXGBE_SFP_CABLE_PASSIVE; in axgbe_phy_sfp_parse_eeprom()
619 phy_data->sfp_cable_len = sfp_base[AXGBE_SFP_BASE_CU_CABLE_LEN]; in axgbe_phy_sfp_parse_eeprom()
621 phy_data->sfp_cable = AXGBE_SFP_CABLE_ACTIVE; in axgbe_phy_sfp_parse_eeprom()
626 phy_data->sfp_base = AXGBE_SFP_BASE_10000_SR; in axgbe_phy_sfp_parse_eeprom()
628 phy_data->sfp_base = AXGBE_SFP_BASE_10000_LR; in axgbe_phy_sfp_parse_eeprom()
631 phy_data->sfp_base = AXGBE_SFP_BASE_10000_LRM; in axgbe_phy_sfp_parse_eeprom()
633 phy_data->sfp_base = AXGBE_SFP_BASE_10000_ER; in axgbe_phy_sfp_parse_eeprom()
635 phy_data->sfp_base = AXGBE_SFP_BASE_1000_SX; in axgbe_phy_sfp_parse_eeprom()
637 phy_data->sfp_base = AXGBE_SFP_BASE_1000_LX; in axgbe_phy_sfp_parse_eeprom()
639 phy_data->sfp_base = AXGBE_SFP_BASE_1000_CX; in axgbe_phy_sfp_parse_eeprom()
641 phy_data->sfp_base = AXGBE_SFP_BASE_1000_T; in axgbe_phy_sfp_parse_eeprom()
642 else if ((phy_data->sfp_cable == AXGBE_SFP_CABLE_PASSIVE) && in axgbe_phy_sfp_parse_eeprom()
644 phy_data->sfp_base = AXGBE_SFP_BASE_10000_CR; in axgbe_phy_sfp_parse_eeprom()
646 switch (phy_data->sfp_base) { in axgbe_phy_sfp_parse_eeprom()
648 phy_data->sfp_speed = AXGBE_SFP_SPEED_100_1000; in axgbe_phy_sfp_parse_eeprom()
653 phy_data->sfp_speed = AXGBE_SFP_SPEED_1000; in axgbe_phy_sfp_parse_eeprom()
660 phy_data->sfp_speed = AXGBE_SFP_SPEED_10000; in axgbe_phy_sfp_parse_eeprom()
680 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_read_eeprom() local
717 if (memcmp(&phy_data->sfp_eeprom, &sfp_eeprom, sizeof(sfp_eeprom))) { in axgbe_phy_sfp_read_eeprom()
718 phy_data->sfp_changed = 1; in axgbe_phy_sfp_read_eeprom()
719 memcpy(&phy_data->sfp_eeprom, &sfp_eeprom, sizeof(sfp_eeprom)); in axgbe_phy_sfp_read_eeprom()
726 phy_data->sfp_diags = 1; in axgbe_phy_sfp_read_eeprom()
729 phy_data->sfp_changed = 0; in axgbe_phy_sfp_read_eeprom()
740 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_signals() local
747 ret = axgbe_phy_i2c_read(pdata, phy_data->sfp_gpio_address, in axgbe_phy_sfp_signals()
757 if (phy_data->sfp_gpio_mask & AXGBE_GPIO_NO_MOD_ABSENT) { in axgbe_phy_sfp_signals()
759 phy_data->sfp_mod_absent = 0; in axgbe_phy_sfp_signals()
761 if (!(gpio_input & (1 << phy_data->sfp_gpio_mod_absent))) in axgbe_phy_sfp_signals()
762 phy_data->sfp_mod_absent = 0; in axgbe_phy_sfp_signals()
765 if (!(phy_data->sfp_gpio_mask & AXGBE_GPIO_NO_RX_LOS) && in axgbe_phy_sfp_signals()
766 (gpio_input & (1 << phy_data->sfp_gpio_rx_los))) in axgbe_phy_sfp_signals()
767 phy_data->sfp_rx_los = 1; in axgbe_phy_sfp_signals()
769 if (!(phy_data->sfp_gpio_mask & AXGBE_GPIO_NO_TX_FAULT) && in axgbe_phy_sfp_signals()
770 (gpio_input & (1 << phy_data->sfp_gpio_tx_fault))) in axgbe_phy_sfp_signals()
771 phy_data->sfp_tx_fault = 1; in axgbe_phy_sfp_signals()
776 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_mod_absent() local
778 phy_data->sfp_mod_absent = 1; in axgbe_phy_sfp_mod_absent()
779 phy_data->sfp_phy_avail = 0; in axgbe_phy_sfp_mod_absent()
780 memset(&phy_data->sfp_eeprom, 0, sizeof(phy_data->sfp_eeprom)); in axgbe_phy_sfp_mod_absent()
783 static void axgbe_phy_sfp_reset(struct axgbe_phy_data *phy_data) in axgbe_phy_sfp_reset() argument
785 phy_data->sfp_rx_los = 0; in axgbe_phy_sfp_reset()
786 phy_data->sfp_tx_fault = 0; in axgbe_phy_sfp_reset()
787 phy_data->sfp_mod_absent = 1; in axgbe_phy_sfp_reset()
788 phy_data->sfp_diags = 0; in axgbe_phy_sfp_reset()
789 phy_data->sfp_base = AXGBE_SFP_BASE_UNKNOWN; in axgbe_phy_sfp_reset()
790 phy_data->sfp_cable = AXGBE_SFP_CABLE_UNKNOWN; in axgbe_phy_sfp_reset()
791 phy_data->sfp_speed = AXGBE_SFP_SPEED_UNKNOWN; in axgbe_phy_sfp_reset()
822 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_detect() local
826 axgbe_phy_sfp_reset(phy_data); in axgbe_phy_sfp_detect()
834 if (phy_data->sfp_mod_absent) { in axgbe_phy_sfp_detect()
842 axgbe_phy_sfp_reset(phy_data); in axgbe_phy_sfp_detect()
851 axgbe_base_as_string(phy_data->sfp_base)); in axgbe_phy_sfp_detect()
866 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an73_redrv_outcome() local
887 switch (phy_data->port_mode) { in axgbe_phy_an73_redrv_outcome()
897 switch (phy_data->port_mode) { in axgbe_phy_an73_redrv_outcome()
906 switch (phy_data->sfp_base) { in axgbe_phy_an73_redrv_outcome()
1044 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_advertising() local
1048 if (!phy_data->redrv) in axgbe_phy_an_advertising()
1056 switch (phy_data->port_mode) { in axgbe_phy_an_advertising()
1076 switch (phy_data->sfp_base) { in axgbe_phy_an_advertising()
1104 static enum axgbe_an_mode axgbe_phy_an_sfp_mode(struct axgbe_phy_data *phy_data) in axgbe_phy_an_sfp_mode() argument
1106 switch (phy_data->sfp_base) { in axgbe_phy_an_sfp_mode()
1120 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_mode() local
1123 if (phy_data->redrv) in axgbe_phy_an_mode()
1126 switch (phy_data->port_mode) { in axgbe_phy_an_mode()
1143 return axgbe_phy_an_sfp_mode(phy_data); in axgbe_phy_an_mode()
1152 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_set_redrv_mode_mdio() local
1155 redrv_reg = AXGBE_PHY_REDRV_MODE_REG + (phy_data->redrv_lane * 0x1000); in axgbe_phy_set_redrv_mode_mdio()
1158 return pdata->hw_if.write_ext_mii_regs(pdata, phy_data->redrv_addr, in axgbe_phy_set_redrv_mode_mdio()
1165 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_set_redrv_mode_i2c() local
1170 redrv_reg = AXGBE_PHY_REDRV_MODE_REG + (phy_data->redrv_lane * 0x1000); in axgbe_phy_set_redrv_mode_i2c()
1179 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_set_redrv_mode() local
1183 if (!phy_data->redrv) in axgbe_phy_set_redrv_mode()
1187 if ((phy_data->port_mode == AXGBE_PORT_MODE_SFP) && in axgbe_phy_set_redrv_mode()
1188 (phy_data->sfp_base != AXGBE_SFP_BASE_1000_CX) && in axgbe_phy_set_redrv_mode()
1189 (phy_data->sfp_base != AXGBE_SFP_BASE_10000_CR)) in axgbe_phy_set_redrv_mode()
1196 if (phy_data->redrv_if) in axgbe_phy_set_redrv_mode()
1290 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_power_off() local
1295 phy_data->cur_mode = AXGBE_MODE_UNKNOWN; in axgbe_phy_power_off()
1302 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfi_mode() local
1307 if (phy_data->sfp_cable != AXGBE_SFP_CABLE_PASSIVE) { in axgbe_phy_sfi_mode()
1310 if (phy_data->sfp_cable_len <= 1) in axgbe_phy_sfi_mode()
1312 else if (phy_data->sfp_cable_len <= 3) in axgbe_phy_sfi_mode()
1318 phy_data->cur_mode = AXGBE_MODE_SFI; in axgbe_phy_sfi_mode()
1325 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_kr_mode() local
1331 phy_data->cur_mode = AXGBE_MODE_KR; in axgbe_phy_kr_mode()
1338 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_kx_2500_mode() local
1344 phy_data->cur_mode = AXGBE_MODE_KX_2500; in axgbe_phy_kx_2500_mode()
1349 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sgmii_1000_mode() local
1356 phy_data->cur_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_sgmii_1000_mode()
1361 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_cur_mode() local
1363 return phy_data->cur_mode; in axgbe_phy_cur_mode()
1368 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_switch_baset_mode() local
1371 if (phy_data->port_mode != AXGBE_PORT_MODE_10GBASE_T) in axgbe_phy_switch_baset_mode()
1404 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_switch_mode() local
1406 switch (phy_data->port_mode) { in axgbe_phy_switch_mode()
1426 static enum axgbe_mode axgbe_phy_get_basex_mode(struct axgbe_phy_data *phy_data in axgbe_phy_get_basex_mode()
1440 static enum axgbe_mode axgbe_phy_get_baset_mode(struct axgbe_phy_data *phy_data in axgbe_phy_get_baset_mode()
1456 static enum axgbe_mode axgbe_phy_get_sfp_mode(struct axgbe_phy_data *phy_data, in axgbe_phy_get_sfp_mode() argument
1463 if (phy_data->sfp_base == AXGBE_SFP_BASE_1000_T) in axgbe_phy_get_sfp_mode()
1500 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_get_mode() local
1502 switch (phy_data->port_mode) { in axgbe_phy_get_mode()
1511 return axgbe_phy_get_baset_mode(phy_data, speed); in axgbe_phy_get_mode()
1514 return axgbe_phy_get_basex_mode(phy_data, speed); in axgbe_phy_get_mode()
1516 return axgbe_phy_get_sfp_mode(phy_data, speed); in axgbe_phy_get_mode()
1595 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_use_sfp_mode() local
1599 if (phy_data->sfp_base == AXGBE_SFP_BASE_1000_T) in axgbe_phy_use_sfp_mode()
1604 if (phy_data->sfp_base != AXGBE_SFP_BASE_1000_T) in axgbe_phy_use_sfp_mode()
1609 if (phy_data->sfp_base != AXGBE_SFP_BASE_1000_T) in axgbe_phy_use_sfp_mode()
1650 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_use_mode() local
1652 switch (phy_data->port_mode) { in axgbe_phy_use_mode()
1674 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_link_status() local
1679 if (phy_data->port_mode == AXGBE_PORT_MODE_SFP) { in axgbe_phy_link_status()
1683 if (phy_data->sfp_changed) { in axgbe_phy_link_status()
1688 if (phy_data->sfp_mod_absent || phy_data->sfp_rx_los) in axgbe_phy_link_status()
1701 if (phy_data->rrc_count++) { in axgbe_phy_link_status()
1702 phy_data->rrc_count = 0; in axgbe_phy_link_status()
1711 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_gpio_setup() local
1716 phy_data->sfp_gpio_address = AXGBE_GPIO_ADDRESS_PCA9555 + in axgbe_phy_sfp_gpio_setup()
1719 phy_data->sfp_gpio_mask = XP_GET_BITS(reg, XP_PROP_3, GPIO_MASK); in axgbe_phy_sfp_gpio_setup()
1721 phy_data->sfp_gpio_rx_los = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1723 phy_data->sfp_gpio_tx_fault = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1725 phy_data->sfp_gpio_mod_absent = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1727 phy_data->sfp_gpio_rate_select = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1733 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_comm_setup() local
1743 phy_data->sfp_comm = AXGBE_SFP_COMM_PCA9545; in axgbe_phy_sfp_comm_setup()
1744 phy_data->sfp_mux_address = (mux_addr_hi << 2) + mux_addr_lo; in axgbe_phy_sfp_comm_setup()
1745 phy_data->sfp_mux_channel = XP_GET_BITS(reg, XP_PROP_4, MUX_CHAN); in axgbe_phy_sfp_comm_setup()
1754 static bool axgbe_phy_redrv_error(struct axgbe_phy_data *phy_data) in axgbe_phy_redrv_error() argument
1756 if (!phy_data->redrv) in axgbe_phy_redrv_error()
1759 if (phy_data->redrv_if >= AXGBE_PHY_REDRV_IF_MAX) in axgbe_phy_redrv_error()
1762 switch (phy_data->redrv_model) { in axgbe_phy_redrv_error()
1764 if (phy_data->redrv_lane > 3) in axgbe_phy_redrv_error()
1768 if (phy_data->redrv_lane > 1) in axgbe_phy_redrv_error()
1780 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_mdio_reset_setup() local
1783 if (phy_data->conn_type != AXGBE_CONN_TYPE_MDIO) in axgbe_phy_mdio_reset_setup()
1786 phy_data->mdio_reset = XP_GET_BITS(reg, XP_PROP_3, MDIO_RESET); in axgbe_phy_mdio_reset_setup()
1787 switch (phy_data->mdio_reset) { in axgbe_phy_mdio_reset_setup()
1794 phy_data->mdio_reset); in axgbe_phy_mdio_reset_setup()
1797 if (phy_data->mdio_reset == AXGBE_MDIO_RESET_I2C_GPIO) { in axgbe_phy_mdio_reset_setup()
1798 phy_data->mdio_reset_addr = AXGBE_GPIO_ADDRESS_PCA9555 + in axgbe_phy_mdio_reset_setup()
1801 phy_data->mdio_reset_gpio = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_mdio_reset_setup()
1803 } else if (phy_data->mdio_reset == AXGBE_MDIO_RESET_INT_GPIO) { in axgbe_phy_mdio_reset_setup()
1804 phy_data->mdio_reset_gpio = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_mdio_reset_setup()
1813 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_port_mode_mismatch() local
1815 switch (phy_data->port_mode) { in axgbe_phy_port_mode_mismatch()
1818 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1819 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000)) in axgbe_phy_port_mode_mismatch()
1823 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_2500) in axgbe_phy_port_mode_mismatch()
1827 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1828 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000)) in axgbe_phy_port_mode_mismatch()
1832 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_port_mode_mismatch()
1836 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1837 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1838 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_2500)) in axgbe_phy_port_mode_mismatch()
1842 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1843 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1844 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000)) in axgbe_phy_port_mode_mismatch()
1848 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) in axgbe_phy_port_mode_mismatch()
1852 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1853 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1854 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000)) in axgbe_phy_port_mode_mismatch()
1866 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_conn_type_mismatch() local
1868 switch (phy_data->port_mode) { in axgbe_phy_conn_type_mismatch()
1872 if (phy_data->conn_type == AXGBE_CONN_TYPE_BACKPLANE) in axgbe_phy_conn_type_mismatch()
1880 if (phy_data->conn_type == AXGBE_CONN_TYPE_MDIO) in axgbe_phy_conn_type_mismatch()
1884 if (phy_data->conn_type == AXGBE_CONN_TYPE_SFP) in axgbe_phy_conn_type_mismatch()
1909 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_cdr_track() local
1914 if (!phy_data->phy_cdr_notrack) in axgbe_phy_cdr_track()
1917 rte_delay_us(phy_data->phy_cdr_delay + 400); in axgbe_phy_cdr_track()
1923 phy_data->phy_cdr_notrack = 0; in axgbe_phy_cdr_track()
1928 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_cdr_notrack() local
1933 if (phy_data->phy_cdr_notrack) in axgbe_phy_cdr_notrack()
1942 phy_data->phy_cdr_notrack = 1; in axgbe_phy_cdr_notrack()
1959 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_post() local
1964 if (phy_data->cur_mode != AXGBE_MODE_KR) in axgbe_phy_an_post()
1974 if (phy_data->phy_cdr_delay < AXGBE_CDR_DELAY_MAX) in axgbe_phy_an_post()
1975 phy_data->phy_cdr_delay += AXGBE_CDR_DELAY_INC; in axgbe_phy_an_post()
1986 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_pre() local
1991 if (phy_data->cur_mode != AXGBE_MODE_KR) in axgbe_phy_an_pre()
2003 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_stop() local
2006 axgbe_phy_sfp_reset(phy_data); in axgbe_phy_stop()
2021 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_start() local
2030 axgbe_phy_set_mode(pdata, phy_data->start_mode); in axgbe_phy_start()
2036 switch (phy_data->port_mode) { in axgbe_phy_start()
2050 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_reset() local
2054 cur_mode = phy_data->cur_mode; in axgbe_phy_reset()
2063 struct axgbe_phy_data *phy_data; in axgbe_phy_init() local
2078 phy_data = rte_zmalloc("phy_data memory", sizeof(*phy_data), 0); in axgbe_phy_init()
2079 if (!phy_data) { in axgbe_phy_init()
2083 pdata->phy_data = phy_data; in axgbe_phy_init()
2086 phy_data->port_mode = XP_GET_BITS(reg, XP_PROP_0, PORT_MODE); in axgbe_phy_init()
2087 phy_data->port_id = XP_GET_BITS(reg, XP_PROP_0, PORT_ID); in axgbe_phy_init()
2088 phy_data->port_speeds = XP_GET_BITS(reg, XP_PROP_0, PORT_SPEEDS); in axgbe_phy_init()
2089 phy_data->conn_type = XP_GET_BITS(reg, XP_PROP_0, CONN_TYPE); in axgbe_phy_init()
2090 phy_data->mdio_addr = XP_GET_BITS(reg, XP_PROP_0, MDIO_ADDR); in axgbe_phy_init()
2093 phy_data->redrv = XP_GET_BITS(reg, XP_PROP_4, REDRV_PRESENT); in axgbe_phy_init()
2094 phy_data->redrv_if = XP_GET_BITS(reg, XP_PROP_4, REDRV_IF); in axgbe_phy_init()
2095 phy_data->redrv_addr = XP_GET_BITS(reg, XP_PROP_4, REDRV_ADDR); in axgbe_phy_init()
2096 phy_data->redrv_lane = XP_GET_BITS(reg, XP_PROP_4, REDRV_LANE); in axgbe_phy_init()
2097 phy_data->redrv_model = XP_GET_BITS(reg, XP_PROP_4, REDRV_MODEL); in axgbe_phy_init()
2102 phy_data->port_mode, phy_data->conn_type); in axgbe_phy_init()
2109 phy_data->port_mode, phy_data->port_speeds); in axgbe_phy_init()
2119 if (axgbe_phy_redrv_error(phy_data)) { in axgbe_phy_init()
2123 pdata->kr_redrv = phy_data->redrv; in axgbe_phy_init()
2126 phy_data->cur_mode = AXGBE_MODE_UNKNOWN; in axgbe_phy_init()
2131 switch (phy_data->port_mode) { in axgbe_phy_init()
2139 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2141 phy_data->start_mode = AXGBE_MODE_KX_1000; in axgbe_phy_init()
2143 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) { in axgbe_phy_init()
2148 phy_data->start_mode = AXGBE_MODE_KR; in axgbe_phy_init()
2151 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2157 phy_data->start_mode = AXGBE_MODE_KX_2500; in axgbe_phy_init()
2159 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2167 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2169 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2171 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2173 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2176 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL22; in axgbe_phy_init()
2185 phy_data->start_mode = AXGBE_MODE_X; in axgbe_phy_init()
2187 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL22; in axgbe_phy_init()
2195 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2197 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2199 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2201 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2203 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_2500) { in axgbe_phy_init()
2205 phy_data->start_mode = AXGBE_MODE_KX_2500; in axgbe_phy_init()
2208 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL45; in axgbe_phy_init()
2216 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2218 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2220 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2222 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2224 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) { in axgbe_phy_init()
2226 phy_data->start_mode = AXGBE_MODE_KR; in axgbe_phy_init()
2229 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2240 phy_data->start_mode = AXGBE_MODE_SFI; in axgbe_phy_init()
2242 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2251 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2253 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2255 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2257 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2259 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) { in axgbe_phy_init()
2261 phy_data->start_mode = AXGBE_MODE_SFI; in axgbe_phy_init()
2267 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL22; in axgbe_phy_init()
2275 if ((phy_data->conn_type & AXGBE_CONN_TYPE_MDIO) && in axgbe_phy_init()
2276 (phy_data->phydev_mode != AXGBE_MDIO_MODE_NONE)) { in axgbe_phy_init()
2277 ret = pdata->hw_if.set_ext_mii_mode(pdata, phy_data->mdio_addr, in axgbe_phy_init()
2278 phy_data->phydev_mode); in axgbe_phy_init()
2281 phy_data->mdio_addr, phy_data->phydev_mode); in axgbe_phy_init()
2286 if (phy_data->redrv && !phy_data->redrv_if) { in axgbe_phy_init()
2287 ret = pdata->hw_if.set_ext_mii_mode(pdata, phy_data->redrv_addr, in axgbe_phy_init()
2291 phy_data->redrv_addr); in axgbe_phy_init()
2296 phy_data->phy_cdr_delay = AXGBE_CDR_DELAY_INIT; in axgbe_phy_init()