net/ice/base: implement 56G PHY access functions
Implement 56G PHY register and memory read/write functions to facilitate PTP support Signed-off-by: Sergey Temerkhanov <sergey.temerkhanov@intel.com> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Qiming Yang <qiming.yang@intel.com>
This commit is contained in:
parent
88b32fd7cc
commit
680793c782
File diff suppressed because it is too large
Load Diff
@ -6,11 +6,12 @@
|
||||
#define _ICE_PTP_HW_H_
|
||||
|
||||
enum ice_ptp_tmr_cmd {
|
||||
INIT_TIME,
|
||||
INIT_INCVAL,
|
||||
ADJ_TIME,
|
||||
ADJ_TIME_AT_TIME,
|
||||
READ_TIME
|
||||
ICE_PTP_INIT_TIME,
|
||||
ICE_PTP_INIT_INCVAL,
|
||||
ICE_PTP_ADJ_TIME,
|
||||
ICE_PTP_ADJ_TIME_AT_TIME,
|
||||
ICE_PTP_READ_TIME,
|
||||
ICE_PTP_NOP,
|
||||
};
|
||||
|
||||
enum ice_ptp_serdes {
|
||||
@ -232,6 +233,39 @@ enum ice_status ice_read_sma_ctrl_e810t(struct ice_hw *hw, u8 *data);
|
||||
enum ice_status ice_write_sma_ctrl_e810t(struct ice_hw *hw, u8 data);
|
||||
bool ice_is_pca9575_present(struct ice_hw *hw);
|
||||
|
||||
void
|
||||
ice_ptp_process_cgu_err(struct ice_hw *hw, struct ice_rq_event_info *event);
|
||||
/* ETH56G family functions */
|
||||
enum ice_status
|
||||
ice_read_phy_reg_eth56g(struct ice_hw *hw, u8 port, u16 offset, u32 *val);
|
||||
enum ice_status
|
||||
ice_write_phy_reg_eth56g(struct ice_hw *hw, u8 port, u16 offset, u32 val);
|
||||
enum ice_status
|
||||
ice_read_phy_mem_eth56g(struct ice_hw *hw, u8 port, u16 offset, u32 *val);
|
||||
enum ice_status
|
||||
ice_write_phy_mem_eth56g(struct ice_hw *hw, u8 port, u16 offset, u32 val);
|
||||
|
||||
enum ice_status
|
||||
ice_ptp_prep_port_adj_eth56g(struct ice_hw *hw, u8 port, s64 time,
|
||||
bool lock_sbq);
|
||||
|
||||
enum ice_status
|
||||
ice_ptp_read_phy_incval_eth56g(struct ice_hw *hw, u8 port, u64 *incval);
|
||||
enum ice_status
|
||||
ice_ptp_read_port_capture_eth56g(struct ice_hw *hw, u8 port,
|
||||
u64 *tx_ts, u64 *rx_ts);
|
||||
enum ice_status
|
||||
ice_ptp_one_port_cmd_eth56g(struct ice_hw *hw, u8 port,
|
||||
enum ice_ptp_tmr_cmd cmd, bool lock_sbq);
|
||||
enum ice_status
|
||||
ice_ptp_read_tx_hwtstamp_status_eth56g(struct ice_hw *hw, u32 *ts_status);
|
||||
enum ice_status
|
||||
ice_stop_phy_timer_eth56g(struct ice_hw *hw, u8 port, bool soft_reset);
|
||||
enum ice_status
|
||||
ice_start_phy_timer_eth56g(struct ice_hw *hw, u8 port, bool bypass);
|
||||
enum ice_status ice_phy_cfg_tx_offset_eth56g(struct ice_hw *hw, u8 port);
|
||||
enum ice_status ice_phy_cfg_rx_offset_eth56g(struct ice_hw *hw, u8 port);
|
||||
|
||||
#define PFTSYN_SEM_BYTES 4
|
||||
|
||||
#define ICE_PTP_CLOCK_INDEX_0 0x00
|
||||
|
@ -1135,6 +1135,13 @@ struct ice_switch_info {
|
||||
ice_declare_bitmap(prof_res_bm[ICE_MAX_NUM_PROFILES], ICE_MAX_FV_WORDS);
|
||||
};
|
||||
|
||||
/* PHY configuration */
|
||||
enum ice_phy_cfg {
|
||||
ICE_PHY_E810 = 1,
|
||||
ICE_PHY_E822,
|
||||
ICE_PHY_ETH56G,
|
||||
};
|
||||
|
||||
/* Port hardware description */
|
||||
struct ice_hw {
|
||||
u8 *hw_addr;
|
||||
@ -1159,6 +1166,7 @@ struct ice_hw {
|
||||
u8 revision_id;
|
||||
|
||||
u8 pf_id; /* device profile info */
|
||||
enum ice_phy_cfg phy_cfg;
|
||||
u8 logical_pf_id;
|
||||
|
||||
u16 max_burst_size; /* driver sets this value */
|
||||
@ -1233,6 +1241,9 @@ struct ice_hw {
|
||||
#define ICE_PORTS_PER_PHY 8
|
||||
#define ICE_NUM_EXTERNAL_PORTS ICE_PORTS_PER_PHY
|
||||
|
||||
/* bitmap of enabled logical ports */
|
||||
u32 ena_lports;
|
||||
|
||||
/* Active package version (currently active) */
|
||||
struct ice_pkg_ver active_pkg_ver;
|
||||
u32 pkg_seg_id;
|
||||
|
Loading…
x
Reference in New Issue
Block a user