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

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

#ifndef _IGC_REGS_H_
#define _IGC_REGS_H_

/* General Register Descriptions */
#define IGC_CTRL
#define IGC_STATUS
#define IGC_EECD
#define IGC_CTRL_EXT
#define IGC_MDIC
#define IGC_CONNSW
#define IGC_VET
#define IGC_LEDCTL
#define IGC_I225_PHPM
#define IGC_GPHY_VERSION

/* Internal Packet Buffer Size Registers */
#define IGC_RXPBS
#define IGC_TXPBS

/* NVM  Register Descriptions */
#define IGC_EERD
#define IGC_EEWR

/* Flow Control Register Descriptions */
#define IGC_FCAL
#define IGC_FCAH
#define IGC_FCT
#define IGC_FCTTV
#define IGC_FCRTL
#define IGC_FCRTH
#define IGC_FCRTV

/* Semaphore registers */
#define IGC_SW_FW_SYNC
#define IGC_SWSM
#define IGC_FWSM

/* Function Active and Power State to MNG */
#define IGC_FACTPS

/* Interrupt Register Description */
#define IGC_EICR
#define IGC_EICS
#define IGC_EIMS
#define IGC_EIMC
#define IGC_EIAC
#define IGC_EIAM
#define IGC_ICR
#define IGC_ICS
#define IGC_IMS
#define IGC_IMC
#define IGC_IAM
/* Intr Throttle - RW */
#define IGC_EITR(_n)
/* Interrupt Vector Allocation - RW */
#define IGC_IVAR0
#define IGC_IVAR_MISC
#define IGC_GPIE

/* RSS registers */
#define IGC_MRQC

/* Filtering Registers */
#define IGC_ETQF(_n)
#define IGC_FHFT(_n)
#define IGC_FHFT_EXT(_n)
#define IGC_FHFTSL

/* ETQF register bit definitions */
#define IGC_ETQF_FILTER_ENABLE
#define IGC_ETQF_QUEUE_ENABLE
#define IGC_ETQF_QUEUE_SHIFT
#define IGC_ETQF_QUEUE_MASK
#define IGC_ETQF_ETYPE_MASK

/* FHFT register bit definitions */
#define IGC_FHFT_LENGTH_MASK
#define IGC_FHFT_QUEUE_SHIFT
#define IGC_FHFT_QUEUE_MASK
#define IGC_FHFT_PRIO_SHIFT
#define IGC_FHFT_PRIO_MASK
#define IGC_FHFT_IMM_INT
#define IGC_FHFT_DROP

/* FHFTSL register bit definitions */
#define IGC_FHFTSL_FTSL_SHIFT
#define IGC_FHFTSL_FTSL_MASK

/* Redirection Table - RW Array */
#define IGC_RETA(_i)
/* RSS Random Key - RW Array */
#define IGC_RSSRK(_i)

/* Receive Register Descriptions */
#define IGC_RCTL
#define IGC_SRRCTL(_n)
#define IGC_PSRTYPE(_i)
#define IGC_RDBAL(_n)
#define IGC_RDBAH(_n)
#define IGC_RDLEN(_n)
#define IGC_RDH(_n)
#define IGC_RDT(_n)
#define IGC_RXDCTL(_n)
#define IGC_RQDPC(_n)
#define IGC_RXCSUM
#define IGC_RLPML
#define IGC_RFCTL
#define IGC_MTA
#define IGC_RA
#define IGC_UTA
#define IGC_RAL(_n)
#define IGC_RAH(_n)
#define IGC_VLANPQF

/* Transmit Register Descriptions */
#define IGC_TCTL
#define IGC_TIPG
#define IGC_TDBAL(_n)
#define IGC_TDBAH(_n)
#define IGC_TDLEN(_n)
#define IGC_TDH(_n)
#define IGC_TDT(_n)
#define IGC_TXDCTL(_n)

/* MMD Register Descriptions */
#define IGC_MMDAC
#define IGC_MMDAAD

/* Statistics Register Descriptions */
#define IGC_CRCERRS
#define IGC_ALGNERRC
#define IGC_RXERRC
#define IGC_MPC
#define IGC_SCC
#define IGC_ECOL
#define IGC_MCC
#define IGC_LATECOL
#define IGC_COLC
#define IGC_RERC
#define IGC_DC
#define IGC_TNCRS
#define IGC_HTDPMC
#define IGC_RLEC
#define IGC_XONRXC
#define IGC_XONTXC
#define IGC_XOFFRXC
#define IGC_XOFFTXC
#define IGC_FCRUC
#define IGC_PRC64
#define IGC_PRC127
#define IGC_PRC255
#define IGC_PRC511
#define IGC_PRC1023
#define IGC_PRC1522
#define IGC_GPRC
#define IGC_BPRC
#define IGC_MPRC
#define IGC_GPTC
#define IGC_GORCL
#define IGC_GORCH
#define IGC_GOTCL
#define IGC_GOTCH
#define IGC_RNBC
#define IGC_RUC
#define IGC_RFC
#define IGC_ROC
#define IGC_RJC
#define IGC_MGTPRC
#define IGC_MGTPDC
#define IGC_MGTPTC
#define IGC_TORL
#define IGC_TORH
#define IGC_TOTL
#define IGC_TOTH
#define IGC_TPR
#define IGC_TPT
#define IGC_PTC64
#define IGC_PTC127
#define IGC_PTC255
#define IGC_PTC511
#define IGC_PTC1023
#define IGC_PTC1522
#define IGC_MPTC
#define IGC_BPTC
#define IGC_TSCTC
#define IGC_IAC
#define IGC_RPTHC
#define IGC_TLPIC
#define IGC_RLPIC
#define IGC_HGPTC
#define IGC_RXDMTC
#define IGC_HGORCL
#define IGC_HGORCH
#define IGC_HGOTCL
#define IGC_HGOTCH
#define IGC_LENERRS

/* Time sync registers */
#define IGC_TSICR
#define IGC_TSIM
#define IGC_TSAUXC
#define IGC_TSYNCRXCTL
#define IGC_TSYNCTXCTL
#define IGC_TSYNCRXCFG
#define IGC_TSSDP
#define IGC_TRGTTIML0
#define IGC_TRGTTIMH0
#define IGC_TRGTTIML1
#define IGC_TRGTTIMH1
#define IGC_FREQOUT0
#define IGC_FREQOUT1
#define IGC_AUXSTMPL0
#define IGC_AUXSTMPH0
#define IGC_AUXSTMPL1
#define IGC_AUXSTMPH1

#define IGC_IMIR(_i)
#define IGC_IMIREXT(_i)

#define IGC_FTQF(_n)

/* Transmit Scheduling Registers */
#define IGC_TQAVCTRL
#define IGC_TXQCTL(_n)
#define IGC_GTXOFFSET
#define IGC_BASET_L
#define IGC_BASET_H
#define IGC_QBVCYCLET
#define IGC_QBVCYCLET_S

#define IGC_STQT(_n)
#define IGC_ENDQT(_n)
#define IGC_DTXMXPKTSZ

#define IGC_TQAVCC(_n)
#define IGC_TQAVHC(_n)

#define IGC_TXARB

/* System Time Registers */
#define IGC_SYSTIML
#define IGC_SYSTIMH
#define IGC_SYSTIMR
#define IGC_TIMINCA

#define IGC_SYSTIML_1
#define IGC_SYSTIMH_1
#define IGC_SYSTIMR_1
#define IGC_TIMINCA_1

/* TX Timestamp Low */
#define IGC_TXSTMPL_0
#define IGC_TXSTMPL_1
#define IGC_TXSTMPL_2
#define IGC_TXSTMPL_3

/* TX Timestamp High */
#define IGC_TXSTMPH_0
#define IGC_TXSTMPH_1
#define IGC_TXSTMPH_2
#define IGC_TXSTMPH_3

#define IGC_TXSTMPL
#define IGC_TXSTMPH

#define IGC_TIMADJ

/* PCIe Registers */
#define IGC_PTM_CTRL
#define IGC_PTM_STAT
#define IGC_PTM_CYCLE_CTRL

/* PTM Time registers */
#define IGC_PTM_T1_TIM0_L
#define IGC_PTM_T1_TIM0_H

#define IGC_PTM_CURR_T2_L
#define IGC_PTM_CURR_T2_H
#define IGC_PTM_PREV_T2_L
#define IGC_PTM_PREV_T2_H
#define IGC_PTM_PREV_T4M1
#define IGC_PTM_CURR_T4M1
#define IGC_PTM_PREV_T3M2
#define IGC_PTM_TDELAY

#define IGC_PCIE_DIG_DELAY
#define IGC_PCIE_PHY_DELAY

/* Management registers */
#define IGC_MANC

/* Shadow Ram Write Register - RW */
#define IGC_SRWR

/* Wake Up registers */
#define IGC_WUC
#define IGC_WUFC
#define IGC_WUS
#define IGC_WUPL
#define IGC_WUFC_EXT

/* Wake Up packet memory */
#define IGC_WUPM_REG(_i)

/* Energy Efficient Ethernet "EEE" registers */
#define IGC_EEER
#define IGC_IPCNFG
#define IGC_EEE_SU

/* MULTI GBT AN Control Register - reg. 7.32 */
#define IGC_ANEG_MULTIGBT_AN_CTRL

/* EEE ANeg Advertisement Register - reg 7.60 and reg 7.62 */
#define IGC_ANEG_EEE_AB1
#define IGC_ANEG_EEE_AB2
/* EEE ANeg Link-Partner Advertisement Register - reg 7.61 and reg 7.63 */
#define IGC_ANEG_EEE_LP_AB1
#define IGC_ANEG_EEE_LP_AB2

/* LTR registers */
#define IGC_LTRC
#define IGC_LTRMINV
#define IGC_LTRMAXV

/* forward declaration */
struct igc_hw;
u32 igc_rd32(struct igc_hw *hw, u32 reg);

/* write operations, indexed using DWORDS */
#define wr32(reg, val)

#define rd32(reg)

#define wrfl()

#define array_wr32(reg, offset, value)

#define array_rd32(reg, offset)

#define IGC_REMOVED(h)

#endif