Lines Matching refs:phy_data
256 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_i2c_xfer() local
259 if (!phy_data->comm_owned) in axgbe_phy_i2c_xfer()
268 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_redrv_write() local
293 i2c_op.target = phy_data->redrv_addr; in axgbe_phy_redrv_write()
307 i2c_op.target = phy_data->redrv_addr; in axgbe_phy_redrv_write()
364 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_put_mux() local
368 if (phy_data->sfp_comm == AXGBE_SFP_COMM_DIRECT) in axgbe_phy_sfp_put_mux()
374 i2c_op.target = phy_data->sfp_mux_address; in axgbe_phy_sfp_put_mux()
383 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_get_mux() local
387 if (phy_data->sfp_comm == AXGBE_SFP_COMM_DIRECT) in axgbe_phy_sfp_get_mux()
391 mux_channel = 1 << phy_data->sfp_mux_channel; in axgbe_phy_sfp_get_mux()
393 i2c_op.target = phy_data->sfp_mux_address; in axgbe_phy_sfp_get_mux()
402 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_put_comm_ownership() local
404 phy_data->comm_owned = 0; in axgbe_phy_put_comm_ownership()
411 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_get_comm_ownership() local
421 if (phy_data->comm_owned) in axgbe_phy_get_comm_ownership()
430 XP_SET_BITS(mutex_id, XP_I2C_MUTEX, ID, phy_data->port_id); in axgbe_phy_get_comm_ownership()
446 phy_data->comm_owned = 1; in axgbe_phy_get_comm_ownership()
459 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_phy_settings() local
461 if (phy_data->sfp_mod_absent) { in axgbe_phy_sfp_phy_settings()
476 switch (phy_data->sfp_base) { in axgbe_phy_sfp_phy_settings()
498 switch (phy_data->sfp_base) { in axgbe_phy_sfp_phy_settings()
508 switch (phy_data->sfp_speed) { in axgbe_phy_sfp_phy_settings()
510 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) in axgbe_phy_sfp_phy_settings()
512 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_sfp_phy_settings()
516 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_sfp_phy_settings()
520 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) in axgbe_phy_sfp_phy_settings()
525 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) in axgbe_phy_sfp_phy_settings()
527 else if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_sfp_phy_settings()
529 else if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) in axgbe_phy_sfp_phy_settings()
560 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_external_phy() local
562 if (!phy_data->sfp_changed) in axgbe_phy_sfp_external_phy()
565 phy_data->sfp_phy_avail = 0; in axgbe_phy_sfp_external_phy()
567 if (phy_data->sfp_base != AXGBE_SFP_BASE_1000_T) in axgbe_phy_sfp_external_phy()
573 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_belfuse_parse_quirks() local
574 struct axgbe_sfp_eeprom *sfp_eeprom = &phy_data->sfp_eeprom; in axgbe_phy_belfuse_parse_quirks()
582 phy_data->sfp_base = AXGBE_SFP_BASE_1000_SX; in axgbe_phy_belfuse_parse_quirks()
583 phy_data->sfp_cable = AXGBE_SFP_CABLE_ACTIVE; in axgbe_phy_belfuse_parse_quirks()
584 phy_data->sfp_speed = AXGBE_SFP_SPEED_1000; in axgbe_phy_belfuse_parse_quirks()
601 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_parse_eeprom() local
602 struct axgbe_sfp_eeprom *sfp_eeprom = &phy_data->sfp_eeprom; in axgbe_phy_sfp_parse_eeprom()
617 phy_data->sfp_cable = AXGBE_SFP_CABLE_PASSIVE; in axgbe_phy_sfp_parse_eeprom()
618 phy_data->sfp_cable_len = sfp_base[AXGBE_SFP_BASE_CU_CABLE_LEN]; in axgbe_phy_sfp_parse_eeprom()
620 phy_data->sfp_cable = AXGBE_SFP_CABLE_ACTIVE; in axgbe_phy_sfp_parse_eeprom()
625 phy_data->sfp_base = AXGBE_SFP_BASE_10000_SR; in axgbe_phy_sfp_parse_eeprom()
627 phy_data->sfp_base = AXGBE_SFP_BASE_10000_LR; in axgbe_phy_sfp_parse_eeprom()
630 phy_data->sfp_base = AXGBE_SFP_BASE_10000_LRM; in axgbe_phy_sfp_parse_eeprom()
632 phy_data->sfp_base = AXGBE_SFP_BASE_10000_ER; in axgbe_phy_sfp_parse_eeprom()
634 phy_data->sfp_base = AXGBE_SFP_BASE_1000_SX; in axgbe_phy_sfp_parse_eeprom()
636 phy_data->sfp_base = AXGBE_SFP_BASE_1000_LX; in axgbe_phy_sfp_parse_eeprom()
638 phy_data->sfp_base = AXGBE_SFP_BASE_1000_CX; in axgbe_phy_sfp_parse_eeprom()
640 phy_data->sfp_base = AXGBE_SFP_BASE_1000_T; in axgbe_phy_sfp_parse_eeprom()
641 else if ((phy_data->sfp_cable == AXGBE_SFP_CABLE_PASSIVE) && in axgbe_phy_sfp_parse_eeprom()
643 phy_data->sfp_base = AXGBE_SFP_BASE_10000_CR; in axgbe_phy_sfp_parse_eeprom()
645 switch (phy_data->sfp_base) { in axgbe_phy_sfp_parse_eeprom()
647 phy_data->sfp_speed = AXGBE_SFP_SPEED_100_1000; in axgbe_phy_sfp_parse_eeprom()
652 phy_data->sfp_speed = AXGBE_SFP_SPEED_1000; in axgbe_phy_sfp_parse_eeprom()
659 phy_data->sfp_speed = AXGBE_SFP_SPEED_10000; in axgbe_phy_sfp_parse_eeprom()
679 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_read_eeprom() local
716 if (memcmp(&phy_data->sfp_eeprom, &sfp_eeprom, sizeof(sfp_eeprom))) { in axgbe_phy_sfp_read_eeprom()
717 phy_data->sfp_changed = 1; in axgbe_phy_sfp_read_eeprom()
718 memcpy(&phy_data->sfp_eeprom, &sfp_eeprom, sizeof(sfp_eeprom)); in axgbe_phy_sfp_read_eeprom()
725 phy_data->sfp_diags = 1; in axgbe_phy_sfp_read_eeprom()
728 phy_data->sfp_changed = 0; in axgbe_phy_sfp_read_eeprom()
739 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_signals() local
746 ret = axgbe_phy_i2c_read(pdata, phy_data->sfp_gpio_address, in axgbe_phy_sfp_signals()
756 if (phy_data->sfp_gpio_mask & AXGBE_GPIO_NO_MOD_ABSENT) { in axgbe_phy_sfp_signals()
758 phy_data->sfp_mod_absent = 0; in axgbe_phy_sfp_signals()
760 if (!(gpio_input & (1 << phy_data->sfp_gpio_mod_absent))) in axgbe_phy_sfp_signals()
761 phy_data->sfp_mod_absent = 0; in axgbe_phy_sfp_signals()
764 if (!(phy_data->sfp_gpio_mask & AXGBE_GPIO_NO_RX_LOS) && in axgbe_phy_sfp_signals()
765 (gpio_input & (1 << phy_data->sfp_gpio_rx_los))) in axgbe_phy_sfp_signals()
766 phy_data->sfp_rx_los = 1; in axgbe_phy_sfp_signals()
768 if (!(phy_data->sfp_gpio_mask & AXGBE_GPIO_NO_TX_FAULT) && in axgbe_phy_sfp_signals()
769 (gpio_input & (1 << phy_data->sfp_gpio_tx_fault))) in axgbe_phy_sfp_signals()
770 phy_data->sfp_tx_fault = 1; in axgbe_phy_sfp_signals()
775 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_mod_absent() local
777 phy_data->sfp_mod_absent = 1; in axgbe_phy_sfp_mod_absent()
778 phy_data->sfp_phy_avail = 0; in axgbe_phy_sfp_mod_absent()
779 memset(&phy_data->sfp_eeprom, 0, sizeof(phy_data->sfp_eeprom)); in axgbe_phy_sfp_mod_absent()
782 static void axgbe_phy_sfp_reset(struct axgbe_phy_data *phy_data) in axgbe_phy_sfp_reset() argument
784 phy_data->sfp_rx_los = 0; in axgbe_phy_sfp_reset()
785 phy_data->sfp_tx_fault = 0; in axgbe_phy_sfp_reset()
786 phy_data->sfp_mod_absent = 1; in axgbe_phy_sfp_reset()
787 phy_data->sfp_diags = 0; in axgbe_phy_sfp_reset()
788 phy_data->sfp_base = AXGBE_SFP_BASE_UNKNOWN; in axgbe_phy_sfp_reset()
789 phy_data->sfp_cable = AXGBE_SFP_CABLE_UNKNOWN; in axgbe_phy_sfp_reset()
790 phy_data->sfp_speed = AXGBE_SFP_SPEED_UNKNOWN; in axgbe_phy_sfp_reset()
821 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_detect() local
825 axgbe_phy_sfp_reset(phy_data); in axgbe_phy_sfp_detect()
833 if (phy_data->sfp_mod_absent) { in axgbe_phy_sfp_detect()
841 axgbe_phy_sfp_reset(phy_data); in axgbe_phy_sfp_detect()
850 axgbe_base_as_string(phy_data->sfp_base)); in axgbe_phy_sfp_detect()
865 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an73_redrv_outcome() local
886 switch (phy_data->port_mode) { in axgbe_phy_an73_redrv_outcome()
895 switch (phy_data->port_mode) { in axgbe_phy_an73_redrv_outcome()
903 switch (phy_data->sfp_base) { in axgbe_phy_an73_redrv_outcome()
1041 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_advertising() local
1045 if (!phy_data->redrv) in axgbe_phy_an_advertising()
1053 switch (phy_data->port_mode) { in axgbe_phy_an_advertising()
1072 switch (phy_data->sfp_base) { in axgbe_phy_an_advertising()
1100 static enum axgbe_an_mode axgbe_phy_an_sfp_mode(struct axgbe_phy_data *phy_data) in axgbe_phy_an_sfp_mode() argument
1102 switch (phy_data->sfp_base) { in axgbe_phy_an_sfp_mode()
1116 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_mode() local
1119 if (phy_data->redrv) in axgbe_phy_an_mode()
1122 switch (phy_data->port_mode) { in axgbe_phy_an_mode()
1138 return axgbe_phy_an_sfp_mode(phy_data); in axgbe_phy_an_mode()
1147 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_set_redrv_mode_mdio() local
1150 redrv_reg = AXGBE_PHY_REDRV_MODE_REG + (phy_data->redrv_lane * 0x1000); in axgbe_phy_set_redrv_mode_mdio()
1153 return pdata->hw_if.write_ext_mii_regs(pdata, phy_data->redrv_addr, in axgbe_phy_set_redrv_mode_mdio()
1160 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_set_redrv_mode_i2c() local
1165 redrv_reg = AXGBE_PHY_REDRV_MODE_REG + (phy_data->redrv_lane * 0x1000); in axgbe_phy_set_redrv_mode_i2c()
1174 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_set_redrv_mode() local
1178 if (!phy_data->redrv) in axgbe_phy_set_redrv_mode()
1182 if ((phy_data->port_mode == AXGBE_PORT_MODE_SFP) && in axgbe_phy_set_redrv_mode()
1183 (phy_data->sfp_base != AXGBE_SFP_BASE_1000_CX) && in axgbe_phy_set_redrv_mode()
1184 (phy_data->sfp_base != AXGBE_SFP_BASE_10000_CR)) in axgbe_phy_set_redrv_mode()
1191 if (phy_data->redrv_if) in axgbe_phy_set_redrv_mode()
1246 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_power_off() local
1255 phy_data->cur_mode = AXGBE_MODE_UNKNOWN; in axgbe_phy_power_off()
1262 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfi_mode() local
1272 if (phy_data->sfp_cable != AXGBE_SFP_CABLE_PASSIVE) { in axgbe_phy_sfi_mode()
1275 if (phy_data->sfp_cable_len <= 1) in axgbe_phy_sfi_mode()
1277 else if (phy_data->sfp_cable_len <= 3) in axgbe_phy_sfi_mode()
1288 phy_data->cur_mode = AXGBE_MODE_SFI; in axgbe_phy_sfi_mode()
1295 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_kr_mode() local
1312 phy_data->cur_mode = AXGBE_MODE_KR; in axgbe_phy_kr_mode()
1319 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_kx_2500_mode() local
1334 phy_data->cur_mode = AXGBE_MODE_KX_2500; in axgbe_phy_kx_2500_mode()
1339 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sgmii_1000_mode() local
1355 phy_data->cur_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_sgmii_1000_mode()
1360 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_cur_mode() local
1362 return phy_data->cur_mode; in axgbe_phy_cur_mode()
1367 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_switch_baset_mode() local
1370 if (phy_data->port_mode != AXGBE_PORT_MODE_10GBASE_T) in axgbe_phy_switch_baset_mode()
1403 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_switch_mode() local
1405 switch (phy_data->port_mode) { in axgbe_phy_switch_mode()
1424 static enum axgbe_mode axgbe_phy_get_basex_mode(struct axgbe_phy_data *phy_data in axgbe_phy_get_basex_mode()
1438 static enum axgbe_mode axgbe_phy_get_baset_mode(struct axgbe_phy_data *phy_data in axgbe_phy_get_baset_mode()
1454 static enum axgbe_mode axgbe_phy_get_sfp_mode(struct axgbe_phy_data *phy_data, in axgbe_phy_get_sfp_mode() argument
1461 if (phy_data->sfp_base == AXGBE_SFP_BASE_1000_T) in axgbe_phy_get_sfp_mode()
1498 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_get_mode() local
1500 switch (phy_data->port_mode) { in axgbe_phy_get_mode()
1508 return axgbe_phy_get_baset_mode(phy_data, speed); in axgbe_phy_get_mode()
1511 return axgbe_phy_get_basex_mode(phy_data, speed); in axgbe_phy_get_mode()
1513 return axgbe_phy_get_sfp_mode(phy_data, speed); in axgbe_phy_get_mode()
1592 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_use_sfp_mode() local
1596 if (phy_data->sfp_base == AXGBE_SFP_BASE_1000_T) in axgbe_phy_use_sfp_mode()
1601 if (phy_data->sfp_base != AXGBE_SFP_BASE_1000_T) in axgbe_phy_use_sfp_mode()
1606 if (phy_data->sfp_base != AXGBE_SFP_BASE_1000_T) in axgbe_phy_use_sfp_mode()
1647 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_use_mode() local
1649 switch (phy_data->port_mode) { in axgbe_phy_use_mode()
1670 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_link_status() local
1675 if (phy_data->port_mode == AXGBE_PORT_MODE_SFP) { in axgbe_phy_link_status()
1679 if (phy_data->sfp_changed) { in axgbe_phy_link_status()
1684 if (phy_data->sfp_mod_absent || phy_data->sfp_rx_los) in axgbe_phy_link_status()
1697 if (phy_data->rrc_count++) { in axgbe_phy_link_status()
1698 phy_data->rrc_count = 0; in axgbe_phy_link_status()
1707 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_gpio_setup() local
1712 phy_data->sfp_gpio_address = AXGBE_GPIO_ADDRESS_PCA9555 + in axgbe_phy_sfp_gpio_setup()
1715 phy_data->sfp_gpio_mask = XP_GET_BITS(reg, XP_PROP_3, GPIO_MASK); in axgbe_phy_sfp_gpio_setup()
1717 phy_data->sfp_gpio_rx_los = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1719 phy_data->sfp_gpio_tx_fault = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1721 phy_data->sfp_gpio_mod_absent = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1723 phy_data->sfp_gpio_rate_select = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_sfp_gpio_setup()
1729 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_sfp_comm_setup() local
1739 phy_data->sfp_comm = AXGBE_SFP_COMM_PCA9545; in axgbe_phy_sfp_comm_setup()
1740 phy_data->sfp_mux_address = (mux_addr_hi << 2) + mux_addr_lo; in axgbe_phy_sfp_comm_setup()
1741 phy_data->sfp_mux_channel = XP_GET_BITS(reg, XP_PROP_4, MUX_CHAN); in axgbe_phy_sfp_comm_setup()
1750 static bool axgbe_phy_redrv_error(struct axgbe_phy_data *phy_data) in axgbe_phy_redrv_error() argument
1752 if (!phy_data->redrv) in axgbe_phy_redrv_error()
1755 if (phy_data->redrv_if >= AXGBE_PHY_REDRV_IF_MAX) in axgbe_phy_redrv_error()
1758 switch (phy_data->redrv_model) { in axgbe_phy_redrv_error()
1760 if (phy_data->redrv_lane > 3) in axgbe_phy_redrv_error()
1764 if (phy_data->redrv_lane > 1) in axgbe_phy_redrv_error()
1776 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_mdio_reset_setup() local
1779 if (phy_data->conn_type != AXGBE_CONN_TYPE_MDIO) in axgbe_phy_mdio_reset_setup()
1782 phy_data->mdio_reset = XP_GET_BITS(reg, XP_PROP_3, MDIO_RESET); in axgbe_phy_mdio_reset_setup()
1783 switch (phy_data->mdio_reset) { in axgbe_phy_mdio_reset_setup()
1790 phy_data->mdio_reset); in axgbe_phy_mdio_reset_setup()
1793 if (phy_data->mdio_reset == AXGBE_MDIO_RESET_I2C_GPIO) { in axgbe_phy_mdio_reset_setup()
1794 phy_data->mdio_reset_addr = AXGBE_GPIO_ADDRESS_PCA9555 + in axgbe_phy_mdio_reset_setup()
1797 phy_data->mdio_reset_gpio = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_mdio_reset_setup()
1799 } else if (phy_data->mdio_reset == AXGBE_MDIO_RESET_INT_GPIO) { in axgbe_phy_mdio_reset_setup()
1800 phy_data->mdio_reset_gpio = XP_GET_BITS(reg, XP_PROP_3, in axgbe_phy_mdio_reset_setup()
1809 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_port_mode_mismatch() local
1811 switch (phy_data->port_mode) { in axgbe_phy_port_mode_mismatch()
1813 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1814 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000)) in axgbe_phy_port_mode_mismatch()
1818 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_2500) in axgbe_phy_port_mode_mismatch()
1822 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1823 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000)) in axgbe_phy_port_mode_mismatch()
1827 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) in axgbe_phy_port_mode_mismatch()
1831 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1832 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1833 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_2500)) in axgbe_phy_port_mode_mismatch()
1837 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1838 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1839 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000)) in axgbe_phy_port_mode_mismatch()
1843 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) in axgbe_phy_port_mode_mismatch()
1847 if ((phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) || in axgbe_phy_port_mode_mismatch()
1848 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) || in axgbe_phy_port_mode_mismatch()
1849 (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000)) in axgbe_phy_port_mode_mismatch()
1861 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_conn_type_mismatch() local
1863 switch (phy_data->port_mode) { in axgbe_phy_conn_type_mismatch()
1866 if (phy_data->conn_type == AXGBE_CONN_TYPE_BACKPLANE) in axgbe_phy_conn_type_mismatch()
1874 if (phy_data->conn_type == AXGBE_CONN_TYPE_MDIO) in axgbe_phy_conn_type_mismatch()
1878 if (phy_data->conn_type == AXGBE_CONN_TYPE_SFP) in axgbe_phy_conn_type_mismatch()
1903 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_cdr_track() local
1908 if (!phy_data->phy_cdr_notrack) in axgbe_phy_cdr_track()
1911 rte_delay_us(phy_data->phy_cdr_delay + 400); in axgbe_phy_cdr_track()
1917 phy_data->phy_cdr_notrack = 0; in axgbe_phy_cdr_track()
1922 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_cdr_notrack() local
1927 if (phy_data->phy_cdr_notrack) in axgbe_phy_cdr_notrack()
1936 phy_data->phy_cdr_notrack = 1; in axgbe_phy_cdr_notrack()
1953 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_post() local
1958 if (phy_data->cur_mode != AXGBE_MODE_KR) in axgbe_phy_an_post()
1968 if (phy_data->phy_cdr_delay < AXGBE_CDR_DELAY_MAX) in axgbe_phy_an_post()
1969 phy_data->phy_cdr_delay += AXGBE_CDR_DELAY_INC; in axgbe_phy_an_post()
1980 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_an_pre() local
1985 if (phy_data->cur_mode != AXGBE_MODE_KR) in axgbe_phy_an_pre()
1997 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_stop() local
2000 axgbe_phy_sfp_reset(phy_data); in axgbe_phy_stop()
2015 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_start() local
2024 axgbe_phy_set_mode(pdata, phy_data->start_mode); in axgbe_phy_start()
2030 switch (phy_data->port_mode) { in axgbe_phy_start()
2044 struct axgbe_phy_data *phy_data = pdata->phy_data; in axgbe_phy_reset() local
2048 cur_mode = phy_data->cur_mode; in axgbe_phy_reset()
2057 struct axgbe_phy_data *phy_data; in axgbe_phy_init() local
2072 phy_data = rte_zmalloc("phy_data memory", sizeof(*phy_data), 0); in axgbe_phy_init()
2073 if (!phy_data) { in axgbe_phy_init()
2077 pdata->phy_data = phy_data; in axgbe_phy_init()
2080 phy_data->port_mode = XP_GET_BITS(reg, XP_PROP_0, PORT_MODE); in axgbe_phy_init()
2081 phy_data->port_id = XP_GET_BITS(reg, XP_PROP_0, PORT_ID); in axgbe_phy_init()
2082 phy_data->port_speeds = XP_GET_BITS(reg, XP_PROP_0, PORT_SPEEDS); in axgbe_phy_init()
2083 phy_data->conn_type = XP_GET_BITS(reg, XP_PROP_0, CONN_TYPE); in axgbe_phy_init()
2084 phy_data->mdio_addr = XP_GET_BITS(reg, XP_PROP_0, MDIO_ADDR); in axgbe_phy_init()
2087 phy_data->redrv = XP_GET_BITS(reg, XP_PROP_4, REDRV_PRESENT); in axgbe_phy_init()
2088 phy_data->redrv_if = XP_GET_BITS(reg, XP_PROP_4, REDRV_IF); in axgbe_phy_init()
2089 phy_data->redrv_addr = XP_GET_BITS(reg, XP_PROP_4, REDRV_ADDR); in axgbe_phy_init()
2090 phy_data->redrv_lane = XP_GET_BITS(reg, XP_PROP_4, REDRV_LANE); in axgbe_phy_init()
2091 phy_data->redrv_model = XP_GET_BITS(reg, XP_PROP_4, REDRV_MODEL); in axgbe_phy_init()
2096 phy_data->port_mode, phy_data->conn_type); in axgbe_phy_init()
2103 phy_data->port_mode, phy_data->port_speeds); in axgbe_phy_init()
2113 if (axgbe_phy_redrv_error(phy_data)) { in axgbe_phy_init()
2117 pdata->kr_redrv = phy_data->redrv; in axgbe_phy_init()
2120 phy_data->cur_mode = AXGBE_MODE_UNKNOWN; in axgbe_phy_init()
2125 switch (phy_data->port_mode) { in axgbe_phy_init()
2131 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2133 phy_data->start_mode = AXGBE_MODE_KX_1000; in axgbe_phy_init()
2135 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) { in axgbe_phy_init()
2140 phy_data->start_mode = AXGBE_MODE_KR; in axgbe_phy_init()
2143 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2149 phy_data->start_mode = AXGBE_MODE_KX_2500; in axgbe_phy_init()
2151 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2159 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2161 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2163 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2165 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2168 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL22; in axgbe_phy_init()
2177 phy_data->start_mode = AXGBE_MODE_X; in axgbe_phy_init()
2179 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL22; in axgbe_phy_init()
2187 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2189 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2191 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2193 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2195 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_2500) { in axgbe_phy_init()
2197 phy_data->start_mode = AXGBE_MODE_KX_2500; in axgbe_phy_init()
2200 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL45; in axgbe_phy_init()
2208 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2210 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2212 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2214 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2216 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) { in axgbe_phy_init()
2218 phy_data->start_mode = AXGBE_MODE_KR; in axgbe_phy_init()
2221 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2232 phy_data->start_mode = AXGBE_MODE_SFI; in axgbe_phy_init()
2234 phy_data->phydev_mode = AXGBE_MDIO_MODE_NONE; in axgbe_phy_init()
2243 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_100) { in axgbe_phy_init()
2245 phy_data->start_mode = AXGBE_MODE_SGMII_100; in axgbe_phy_init()
2247 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_1000) { in axgbe_phy_init()
2249 phy_data->start_mode = AXGBE_MODE_SGMII_1000; in axgbe_phy_init()
2251 if (phy_data->port_speeds & AXGBE_PHY_PORT_SPEED_10000) { in axgbe_phy_init()
2253 phy_data->start_mode = AXGBE_MODE_SFI; in axgbe_phy_init()
2259 phy_data->phydev_mode = AXGBE_MDIO_MODE_CL22; in axgbe_phy_init()
2267 if ((phy_data->conn_type & AXGBE_CONN_TYPE_MDIO) && in axgbe_phy_init()
2268 (phy_data->phydev_mode != AXGBE_MDIO_MODE_NONE)) { in axgbe_phy_init()
2269 ret = pdata->hw_if.set_ext_mii_mode(pdata, phy_data->mdio_addr, in axgbe_phy_init()
2270 phy_data->phydev_mode); in axgbe_phy_init()
2273 phy_data->mdio_addr, phy_data->phydev_mode); in axgbe_phy_init()
2278 if (phy_data->redrv && !phy_data->redrv_if) { in axgbe_phy_init()
2279 ret = pdata->hw_if.set_ext_mii_mode(pdata, phy_data->redrv_addr, in axgbe_phy_init()
2283 phy_data->redrv_addr); in axgbe_phy_init()
2288 phy_data->phy_cdr_delay = AXGBE_CDR_DELAY_INIT; in axgbe_phy_init()