linux/drivers/net/ethernet/intel/igc/igc_hw.h

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

#ifndef _IGC_HW_H_
#define _IGC_HW_H_

#include <linux/types.h>
#include <linux/if_ether.h>
#include <linux/netdevice.h>

#include "igc_regs.h"
#include "igc_defines.h"
#include "igc_mac.h"
#include "igc_phy.h"
#include "igc_nvm.h"
#include "igc_i225.h"
#include "igc_base.h"

#define IGC_DEV_ID_I225_LM
#define IGC_DEV_ID_I225_V
#define IGC_DEV_ID_I225_I
#define IGC_DEV_ID_I220_V
#define IGC_DEV_ID_I225_K
#define IGC_DEV_ID_I225_K2
#define IGC_DEV_ID_I226_K
#define IGC_DEV_ID_I225_LMVP
#define IGC_DEV_ID_I226_LMVP
#define IGC_DEV_ID_I225_IT
#define IGC_DEV_ID_I226_LM
#define IGC_DEV_ID_I226_V
#define IGC_DEV_ID_I226_IT
#define IGC_DEV_ID_I221_V
#define IGC_DEV_ID_I226_BLANK_NVM
#define IGC_DEV_ID_I225_BLANK_NVM

/* Function pointers for the MAC. */
struct igc_mac_operations {};

enum igc_mac_type {};

enum igc_media_type {};

enum igc_nvm_type {};

struct igc_info {};

extern const struct igc_info igc_base_info;

struct igc_mac_info {};

struct igc_nvm_operations {};

struct igc_phy_operations {};

struct igc_nvm_info {};

struct igc_phy_info {};

struct igc_bus_info {};

enum igc_fc_mode {};

struct igc_fc_info {};

struct igc_dev_spec_base {};

struct igc_hw {};

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

struct net_device *igc_get_hw_dev(struct igc_hw *hw);
#define hw_dbg(format, arg...)

s32  igc_read_pcie_cap_reg(struct igc_hw *hw, u32 reg, u16 *value);
s32  igc_write_pcie_cap_reg(struct igc_hw *hw, u32 reg, u16 *value);
void igc_read_pci_cfg(struct igc_hw *hw, u32 reg, u16 *value);
void igc_write_pci_cfg(struct igc_hw *hw, u32 reg, u16 *value);

#endif /* _IGC_HW_H_ */