linux/drivers/net/ethernet/intel/igb/e1000_hw.h

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2007 - 2018 Intel Corporation. */

#ifndef _E1000_IGB_HW_H_
#define _E1000_IGB_HW_H_

#include <linux/types.h>
#include <linux/delay.h>
#include <linux/io.h>
#include <linux/netdevice.h>

#include "e1000_regs.h"
#include "e1000_defines.h"

struct e1000_hw;

#define E1000_DEV_ID_82576
#define E1000_DEV_ID_82576_FIBER
#define E1000_DEV_ID_82576_SERDES
#define E1000_DEV_ID_82576_QUAD_COPPER
#define E1000_DEV_ID_82576_QUAD_COPPER_ET2
#define E1000_DEV_ID_82576_NS
#define E1000_DEV_ID_82576_NS_SERDES
#define E1000_DEV_ID_82576_SERDES_QUAD
#define E1000_DEV_ID_82575EB_COPPER
#define E1000_DEV_ID_82575EB_FIBER_SERDES
#define E1000_DEV_ID_82575GB_QUAD_COPPER
#define E1000_DEV_ID_82580_COPPER
#define E1000_DEV_ID_82580_FIBER
#define E1000_DEV_ID_82580_SERDES
#define E1000_DEV_ID_82580_SGMII
#define E1000_DEV_ID_82580_COPPER_DUAL
#define E1000_DEV_ID_82580_QUAD_FIBER
#define E1000_DEV_ID_DH89XXCC_SGMII
#define E1000_DEV_ID_DH89XXCC_SERDES
#define E1000_DEV_ID_DH89XXCC_BACKPLANE
#define E1000_DEV_ID_DH89XXCC_SFP
#define E1000_DEV_ID_I350_COPPER
#define E1000_DEV_ID_I350_FIBER
#define E1000_DEV_ID_I350_SERDES
#define E1000_DEV_ID_I350_SGMII
#define E1000_DEV_ID_I210_COPPER
#define E1000_DEV_ID_I210_FIBER
#define E1000_DEV_ID_I210_SERDES
#define E1000_DEV_ID_I210_SGMII
#define E1000_DEV_ID_I210_COPPER_FLASHLESS
#define E1000_DEV_ID_I210_SERDES_FLASHLESS
#define E1000_DEV_ID_I211_COPPER
#define E1000_DEV_ID_I354_BACKPLANE_1GBPS
#define E1000_DEV_ID_I354_SGMII
#define E1000_DEV_ID_I354_BACKPLANE_2_5GBPS

#define E1000_REVISION_2
#define E1000_REVISION_4

#define E1000_FUNC_0
#define E1000_FUNC_1
#define E1000_FUNC_2
#define E1000_FUNC_3

#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN0
#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN1
#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN2
#define E1000_ALT_MAC_ADDRESS_OFFSET_LAN3

enum e1000_mac_type {};

enum e1000_media_type {};

enum e1000_nvm_type {};

enum e1000_nvm_override {};

enum e1000_phy_type {};

enum e1000_bus_type {};

enum e1000_bus_speed {};

enum e1000_bus_width {};

enum e1000_1000t_rx_status {};

enum e1000_rev_polarity {};

enum e1000_fc_mode {};

/* Statistics counters collected by the MAC */
struct e1000_hw_stats {};

struct e1000_host_mng_dhcp_cookie {};

/* Host Interface "Rev 1" */
struct e1000_host_command_header {};

#define E1000_HI_MAX_DATA_LENGTH
struct e1000_host_command_info {};

/* Host Interface "Rev 2" */
struct e1000_host_mng_command_header {};

#define E1000_HI_MAX_MNG_DATA_LENGTH
struct e1000_host_mng_command_info {};

#include "e1000_mac.h"
#include "e1000_phy.h"
#include "e1000_nvm.h"
#include "e1000_mbx.h"

struct e1000_mac_operations {};

struct e1000_phy_operations {};

struct e1000_nvm_operations {};

#define E1000_MAX_SENSORS

struct e1000_thermal_diode_data {};

struct e1000_thermal_sensor_data {};

struct e1000_info {};

extern const struct e1000_info e1000_82575_info;

struct e1000_mac_info {};

struct e1000_phy_info {};

struct e1000_nvm_info {};

struct e1000_bus_info {};

struct e1000_fc_info {};

struct e1000_mbx_operations {};

struct e1000_mbx_stats {};

struct e1000_mbx_info {};

struct e1000_dev_spec_82575 {};

struct e1000_hw {};

struct net_device *igb_get_hw_dev(struct e1000_hw *hw);
#define hw_dbg(format, arg...)

/* These functions must be implemented by drivers */
s32 igb_read_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value);
s32 igb_write_pcie_cap_reg(struct e1000_hw *hw, u32 reg, u16 *value);

void igb_read_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value);
void igb_write_pci_cfg(struct e1000_hw *hw, u32 reg, u16 *value);
#endif /* _E1000_IGB_HW_H_ */