src/dpdk/drivers/net/e1000/base/e1000_82575.c
s32 e1000_initialize_M88E1512_phy(struct e1000_hw *hw)
{
	struct e1000_phy_info *phy = &hw->phy;
	s32 ret_val = E1000_SUCCESS;

	DEBUGFUNC("e1000_initialize_M88E1512_phy");

	/* Check if this is correct PHY. */
	if (phy->id != M88E1512_E_PHY_ID)
		goto out;

	/* Switch to PHY page 0xFF. */
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FF);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x214B);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2144);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x0C28);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2146);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xB233);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x214D);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xCC0C);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2159);
	if (ret_val)
		goto out;

	/* Switch to PHY page 0xFB. */
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FB);
	if (ret_val)
		goto out;

	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_3, 0x000D);
	if (ret_val)
		goto out;

	/* Switch to PHY page 0x12. */
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x12);
	if (ret_val)
		goto out;

	/* Change mode to SGMII-to-Copper */
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_MODE, 0x8001);
	if (ret_val)
		goto out;

	/* Return the PHY to page 0. */
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0);
	if (ret_val)
		goto out;

	ret_val = phy->ops.commit(hw);
	if (ret_val) {
		DEBUGOUT("Error committing the PHY changes\n");
		return ret_val;
	}

	msec_delay(1000);
out:
	return ret_val;
}
/**
 *  e1000_initialize_M88E1512_phy - Initialize M88E1512 PHY
 *  @hw: pointer to the HW structure
 *
 *  Initialize Marvell 1512 to work correctly with Avoton.
 **/
Initialize M88E1512 PHY
@hw: pointer to the HW structure

Initialize Marvell 1512 to work correctly with Avoton.
Initialize M88E1512 PHY @hw : pointer to the HW structure Initialize Marvell 1512 to work correctly with Avoton .
s32 e1000_initialize_M88E1512_phy(struct e1000_hw *hw)
{
	struct e1000_phy_info *phy = &hw->phy;
	s32 ret_val = E1000_SUCCESS;
	DEBUGFUNC("e1000_initialize_M88E1512_phy");
	if (phy->id != M88E1512_E_PHY_ID)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FF);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x214B);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2144);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0x0C28);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2146);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xB233);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x214D);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_2, 0xCC0C);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_1, 0x2159);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x00FB);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_CFG_REG_3, 0x000D);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0x12);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1512_MODE, 0x8001);
	if (ret_val)
		goto out;
	ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0);
	if (ret_val)
		goto out;
	ret_val = phy->ops.commit(hw);
	if (ret_val) {
		DEBUGOUT("Error committing the PHY changes\n");
		return ret_val;
	}
	msec_delay(1000);
out:
	return ret_val;
}
s32 e1000_initialize_M88E1512_phy ( struct e1000_hw * hw ) { struct e1000_phy_info * phy = & hw -> phy ; s32 ret_val = E1000_SUCCESS ; DEBUGFUNC ( " " ) ; if ( phy -> id != M88E1512_E_PHY_ID ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1543_PAGE_ADDR , 0x00FF ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_2 , 0x214B ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_1 , 0x2144 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_2 , 0x0C28 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_1 , 0x2146 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_2 , 0xB233 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_1 , 0x214D ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_2 , 0xCC0C ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_1 , 0x2159 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1543_PAGE_ADDR , 0x00FB ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_CFG_REG_3 , 0x000D ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1543_PAGE_ADDR , 0x12 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1512_MODE , 0x8001 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . write_reg ( hw , E1000_M88E1543_PAGE_ADDR , 0 ) ; if ( ret_val ) goto out ; ret_val = phy -> ops . commit ( hw ) ; if ( ret_val ) { DEBUGOUT ( " \n " ) ; return ret_val ; } msec_delay ( 1000 ) ; out : return ret_val ; }
e1000_initialize_M88E1512_phy - Initialize M88E1512 PHY
  @hw: pointer to the HW structure
e1000_initialize_M88E1512_phy - Initialize M88E1512 PHY @hw : pointer to the HW structure
/* Check if this is correct PHY. */ /* Switch to PHY page 0xFF. */ /* Switch to PHY page 0xFB. */ /* Switch to PHY page 0x12. */ /* Change mode to SGMII-to-Copper */ /* Return the PHY to page 0. */