diff options
author | Donald Skidmore <donald.c.skidmore@intel.com> | 2008-11-21 00:11:42 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-11-21 00:11:42 -0500 |
commit | c4900be053d376dfe4f603d000aa5e4c60745dec (patch) | |
tree | f5658e8d4f2345e0f15346020fe3aeb2adb48905 /drivers/net/ixgbe/ixgbe_phy.h | |
parent | 859ee3c43812051e21816c6d6d4cc04fb7ce9b2e (diff) |
ixgbe: add SFP+ driver support
This patch adds support for SFP+ PHY in the following device ID's (10DB,
10F1, 10E1). These SFP+ PHY's are accessed via an I2C interface so the
patch also includes functions to support this.
Another feature of note is that the PHY is pluggable and some
rearchitecting was needed to support this.
Signed-off-by: Donald Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_phy.h')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_phy.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/ixgbe/ixgbe_phy.h b/drivers/net/ixgbe/ixgbe_phy.h index 5cc063d02770..43a97bc420f5 100644 --- a/drivers/net/ixgbe/ixgbe_phy.h +++ b/drivers/net/ixgbe/ixgbe_phy.h | |||
@@ -63,6 +63,18 @@ | |||
63 | #define IXGBE_SFF_VENDOR_OUI_FTL 0x00906500 | 63 | #define IXGBE_SFF_VENDOR_OUI_FTL 0x00906500 |
64 | #define IXGBE_SFF_VENDOR_OUI_AVAGO 0x00176A00 | 64 | #define IXGBE_SFF_VENDOR_OUI_AVAGO 0x00176A00 |
65 | 65 | ||
66 | /* I2C SDA and SCL timing parameters for standard mode */ | ||
67 | #define IXGBE_I2C_T_HD_STA 4 | ||
68 | #define IXGBE_I2C_T_LOW 5 | ||
69 | #define IXGBE_I2C_T_HIGH 4 | ||
70 | #define IXGBE_I2C_T_SU_STA 5 | ||
71 | #define IXGBE_I2C_T_HD_DATA 5 | ||
72 | #define IXGBE_I2C_T_SU_DATA 1 | ||
73 | #define IXGBE_I2C_T_RISE 1 | ||
74 | #define IXGBE_I2C_T_FALL 1 | ||
75 | #define IXGBE_I2C_T_SU_STO 4 | ||
76 | #define IXGBE_I2C_T_BUF 5 | ||
77 | |||
66 | 78 | ||
67 | s32 ixgbe_init_phy_ops_generic(struct ixgbe_hw *hw); | 79 | s32 ixgbe_init_phy_ops_generic(struct ixgbe_hw *hw); |
68 | s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw); | 80 | s32 ixgbe_identify_phy_generic(struct ixgbe_hw *hw); |
@@ -84,4 +96,10 @@ s32 ixgbe_check_phy_link_tnx(struct ixgbe_hw *hw, | |||
84 | s32 ixgbe_get_phy_firmware_version_tnx(struct ixgbe_hw *hw, | 96 | s32 ixgbe_get_phy_firmware_version_tnx(struct ixgbe_hw *hw, |
85 | u16 *firmware_version); | 97 | u16 *firmware_version); |
86 | 98 | ||
99 | s32 ixgbe_reset_phy_nl(struct ixgbe_hw *hw); | ||
100 | s32 ixgbe_identify_sfp_module_generic(struct ixgbe_hw *hw); | ||
101 | s32 ixgbe_get_sfp_init_sequence_offsets(struct ixgbe_hw *hw, | ||
102 | u16 *list_offset, | ||
103 | u16 *data_offset); | ||
104 | |||
87 | #endif /* _IXGBE_PHY_H_ */ | 105 | #endif /* _IXGBE_PHY_H_ */ |