]> Pileus Git - ~andy/linux/blobdiff - drivers/net/e1000e/hw.h
e1000e: add support for 82577/82578 GbE LOM parts
[~andy/linux] / drivers / net / e1000e / hw.h
index 6cdb703be9513816f17fbcaa4096dddd70d1f35d..fce3f0529e4cd72b640d9aab7c128f8f5d43486e 100644 (file)
@@ -193,7 +193,11 @@ enum e1e_registers {
        E1000_RXCSUM   = 0x05000, /* Rx Checksum Control - RW */
        E1000_RFCTL    = 0x05008, /* Receive Filter Control */
        E1000_MTA      = 0x05200, /* Multicast Table Array - RW Array */
-       E1000_RA       = 0x05400, /* Receive Address - RW Array */
+       E1000_RAL_BASE = 0x05400, /* Receive Address Low - RW */
+#define E1000_RAL(_n)   (E1000_RAL_BASE + ((_n) * 8))
+#define E1000_RA        (E1000_RAL(0))
+       E1000_RAH_BASE = 0x05404, /* Receive Address High - RW */
+#define E1000_RAH(_n)   (E1000_RAH_BASE + ((_n) * 8))
        E1000_VFTA     = 0x05600, /* VLAN Filter Table Array - RW Array */
        E1000_WUC      = 0x05800, /* Wakeup Control - RW */
        E1000_WUFC     = 0x05808, /* Wakeup Filter Control - RW */
@@ -368,6 +372,10 @@ enum e1e_registers {
 #define E1000_DEV_ID_ICH10_R_BM_V              0x10CE
 #define E1000_DEV_ID_ICH10_D_BM_LM             0x10DE
 #define E1000_DEV_ID_ICH10_D_BM_LF             0x10DF
+#define E1000_DEV_ID_PCH_M_HV_LM               0x10EA
+#define E1000_DEV_ID_PCH_M_HV_LC               0x10EB
+#define E1000_DEV_ID_PCH_D_HV_DM               0x10EF
+#define E1000_DEV_ID_PCH_D_HV_DC               0x10F0
 
 #define E1000_REVISION_4 4
 
@@ -383,6 +391,7 @@ enum e1000_mac_type {
        e1000_ich8lan,
        e1000_ich9lan,
        e1000_ich10lan,
+       e1000_pchlan,
 };
 
 enum e1000_media_type {
@@ -417,6 +426,8 @@ enum e1000_phy_type {
        e1000_phy_igp_3,
        e1000_phy_ife,
        e1000_phy_bm,
+       e1000_phy_82578,
+       e1000_phy_82577,
 };
 
 enum e1000_bus_width {
@@ -720,6 +731,7 @@ struct e1000_host_mng_command_info {
 
 /* Function pointers and static data for the MAC. */
 struct e1000_mac_operations {
+       s32  (*id_led_init)(struct e1000_hw *);
        bool (*check_mng_mode)(struct e1000_hw *);
        s32  (*check_for_link)(struct e1000_hw *);
        s32  (*cleanup_led)(struct e1000_hw *);
@@ -733,11 +745,13 @@ struct e1000_mac_operations {
        s32  (*init_hw)(struct e1000_hw *);
        s32  (*setup_link)(struct e1000_hw *);
        s32  (*setup_physical_interface)(struct e1000_hw *);
+       s32  (*setup_led)(struct e1000_hw *);
 };
 
 /* Function pointers for the PHY. */
 struct e1000_phy_operations {
        s32  (*acquire_phy)(struct e1000_hw *);
+       s32  (*check_polarity)(struct e1000_hw *);
        s32  (*check_reset_block)(struct e1000_hw *);
        s32  (*commit_phy)(struct e1000_hw *);
        s32  (*force_speed_duplex)(struct e1000_hw *);