diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2008-08-26 21:36:50 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-09-03 10:06:47 -0400 |
commit | f4187b56e1f8a05dd110875d5094b21b51ebd79b (patch) | |
tree | 7c3f97f98c808b6f6ab8ea6acdfb2f324e8a3c09 /drivers/net/e1000e/phy.c | |
parent | 2f15f9d60190a62bc8ac50fa84fea31fc0b00ecf (diff) |
e1000e: add support for 82567LM-3 and 82567LF-3 (ICH10D) parts
Add support for new LOM devices on the latest generation ICHx platforms.
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/net/e1000e/phy.c')
-rw-r--r-- | drivers/net/e1000e/phy.c | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/drivers/net/e1000e/phy.c b/drivers/net/e1000e/phy.c index b133dcf0e950..16724f84d5ce 100644 --- a/drivers/net/e1000e/phy.c +++ b/drivers/net/e1000e/phy.c | |||
@@ -1720,6 +1720,91 @@ s32 e1000e_get_cfg_done(struct e1000_hw *hw) | |||
1720 | return 0; | 1720 | return 0; |
1721 | } | 1721 | } |
1722 | 1722 | ||
1723 | /** | ||
1724 | * e1000e_phy_init_script_igp3 - Inits the IGP3 PHY | ||
1725 | * @hw: pointer to the HW structure | ||
1726 | * | ||
1727 | * Initializes a Intel Gigabit PHY3 when an EEPROM is not present. | ||
1728 | **/ | ||
1729 | s32 e1000e_phy_init_script_igp3(struct e1000_hw *hw) | ||
1730 | { | ||
1731 | hw_dbg(hw, "Running IGP 3 PHY init script\n"); | ||
1732 | |||
1733 | /* PHY init IGP 3 */ | ||
1734 | /* Enable rise/fall, 10-mode work in class-A */ | ||
1735 | e1e_wphy(hw, 0x2F5B, 0x9018); | ||
1736 | /* Remove all caps from Replica path filter */ | ||
1737 | e1e_wphy(hw, 0x2F52, 0x0000); | ||
1738 | /* Bias trimming for ADC, AFE and Driver (Default) */ | ||
1739 | e1e_wphy(hw, 0x2FB1, 0x8B24); | ||
1740 | /* Increase Hybrid poly bias */ | ||
1741 | e1e_wphy(hw, 0x2FB2, 0xF8F0); | ||
1742 | /* Add 4% to Tx amplitude in Gig mode */ | ||
1743 | e1e_wphy(hw, 0x2010, 0x10B0); | ||
1744 | /* Disable trimming (TTT) */ | ||
1745 | e1e_wphy(hw, 0x2011, 0x0000); | ||
1746 | /* Poly DC correction to 94.6% + 2% for all channels */ | ||
1747 | e1e_wphy(hw, 0x20DD, 0x249A); | ||
1748 | /* ABS DC correction to 95.9% */ | ||
1749 | e1e_wphy(hw, 0x20DE, 0x00D3); | ||
1750 | /* BG temp curve trim */ | ||
1751 | e1e_wphy(hw, 0x28B4, 0x04CE); | ||
1752 | /* Increasing ADC OPAMP stage 1 currents to max */ | ||
1753 | e1e_wphy(hw, 0x2F70, 0x29E4); | ||
1754 | /* Force 1000 ( required for enabling PHY regs configuration) */ | ||
1755 | e1e_wphy(hw, 0x0000, 0x0140); | ||
1756 | /* Set upd_freq to 6 */ | ||
1757 | e1e_wphy(hw, 0x1F30, 0x1606); | ||
1758 | /* Disable NPDFE */ | ||
1759 | e1e_wphy(hw, 0x1F31, 0xB814); | ||
1760 | /* Disable adaptive fixed FFE (Default) */ | ||
1761 | e1e_wphy(hw, 0x1F35, 0x002A); | ||
1762 | /* Enable FFE hysteresis */ | ||
1763 | e1e_wphy(hw, 0x1F3E, 0x0067); | ||
1764 | /* Fixed FFE for short cable lengths */ | ||
1765 | e1e_wphy(hw, 0x1F54, 0x0065); | ||
1766 | /* Fixed FFE for medium cable lengths */ | ||
1767 | e1e_wphy(hw, 0x1F55, 0x002A); | ||
1768 | /* Fixed FFE for long cable lengths */ | ||
1769 | e1e_wphy(hw, 0x1F56, 0x002A); | ||
1770 | /* Enable Adaptive Clip Threshold */ | ||
1771 | e1e_wphy(hw, 0x1F72, 0x3FB0); | ||
1772 | /* AHT reset limit to 1 */ | ||
1773 | e1e_wphy(hw, 0x1F76, 0xC0FF); | ||
1774 | /* Set AHT master delay to 127 msec */ | ||
1775 | e1e_wphy(hw, 0x1F77, 0x1DEC); | ||
1776 | /* Set scan bits for AHT */ | ||
1777 | e1e_wphy(hw, 0x1F78, 0xF9EF); | ||
1778 | /* Set AHT Preset bits */ | ||
1779 | e1e_wphy(hw, 0x1F79, 0x0210); | ||
1780 | /* Change integ_factor of channel A to 3 */ | ||
1781 | e1e_wphy(hw, 0x1895, 0x0003); | ||
1782 | /* Change prop_factor of channels BCD to 8 */ | ||
1783 | e1e_wphy(hw, 0x1796, 0x0008); | ||
1784 | /* Change cg_icount + enable integbp for channels BCD */ | ||
1785 | e1e_wphy(hw, 0x1798, 0xD008); | ||
1786 | /* | ||
1787 | * Change cg_icount + enable integbp + change prop_factor_master | ||
1788 | * to 8 for channel A | ||
1789 | */ | ||
1790 | e1e_wphy(hw, 0x1898, 0xD918); | ||
1791 | /* Disable AHT in Slave mode on channel A */ | ||
1792 | e1e_wphy(hw, 0x187A, 0x0800); | ||
1793 | /* | ||
1794 | * Enable LPLU and disable AN to 1000 in non-D0a states, | ||
1795 | * Enable SPD+B2B | ||
1796 | */ | ||
1797 | e1e_wphy(hw, 0x0019, 0x008D); | ||
1798 | /* Enable restart AN on an1000_dis change */ | ||
1799 | e1e_wphy(hw, 0x001B, 0x2080); | ||
1800 | /* Enable wh_fifo read clock in 10/100 modes */ | ||
1801 | e1e_wphy(hw, 0x0014, 0x0045); | ||
1802 | /* Restart AN, Speed selection is 1000 */ | ||
1803 | e1e_wphy(hw, 0x0000, 0x1340); | ||
1804 | |||
1805 | return 0; | ||
1806 | } | ||
1807 | |||
1723 | /* Internal function pointers */ | 1808 | /* Internal function pointers */ |
1724 | 1809 | ||
1725 | /** | 1810 | /** |