linux/drivers/net/ethernet/dnet.h

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Dave DNET Ethernet Controller driver
 *
 * Copyright (C) 2008 Dave S.r.l. <www.dave.eu>
 */
#ifndef _DNET_H
#define _DNET_H

#define DRV_NAME
#define PFX

/* Register access macros */
#define dnet_writel(port, value, reg)
#define dnet_readl(port, reg)

/* ALL DNET FIFO REGISTERS */
#define DNET_RX_LEN_FIFO
#define DNET_RX_DATA_FIFO
#define DNET_TX_LEN_FIFO
#define DNET_TX_DATA_FIFO

/* ALL DNET CONTROL/STATUS REGISTERS OFFSETS */
#define DNET_VERCAPS
#define DNET_INTR_SRC
#define DNET_INTR_ENB
#define DNET_RX_STATUS
#define DNET_TX_STATUS
#define DNET_RX_FRAMES_CNT
#define DNET_TX_FRAMES_CNT
#define DNET_RX_FIFO_TH
#define DNET_TX_FIFO_TH
#define DNET_SYS_CTL
#define DNET_PAUSE_TMR
#define DNET_RX_FIFO_WCNT
#define DNET_TX_FIFO_WCNT

/* ALL DNET MAC REGISTERS */
#define DNET_MACREG_DATA
#define DNET_MACREG_ADDR

/* ALL DNET RX STATISTICS COUNTERS  */
#define DNET_RX_PKT_IGNR_CNT
#define DNET_RX_LEN_CHK_ERR_CNT
#define DNET_RX_LNG_FRM_CNT
#define DNET_RX_SHRT_FRM_CNT
#define DNET_RX_IPG_VIOL_CNT
#define DNET_RX_CRC_ERR_CNT
#define DNET_RX_OK_PKT_CNT
#define DNET_RX_CTL_FRM_CNT
#define DNET_RX_PAUSE_FRM_CNT
#define DNET_RX_MULTICAST_CNT
#define DNET_RX_BROADCAST_CNT
#define DNET_RX_VLAN_TAG_CNT
#define DNET_RX_PRE_SHRINK_CNT
#define DNET_RX_DRIB_NIB_CNT
#define DNET_RX_UNSUP_OPCD_CNT
#define DNET_RX_BYTE_CNT

/* DNET TX STATISTICS COUNTERS */
#define DNET_TX_UNICAST_CNT
#define DNET_TX_PAUSE_FRM_CNT
#define DNET_TX_MULTICAST_CNT
#define DNET_TX_BRDCAST_CNT
#define DNET_TX_VLAN_TAG_CNT
#define DNET_TX_BAD_FCS_CNT
#define DNET_TX_JUMBO_CNT
#define DNET_TX_BYTE_CNT

/* SOME INTERNAL MAC-CORE REGISTER */
#define DNET_INTERNAL_MODE_REG
#define DNET_INTERNAL_RXTX_CONTROL_REG
#define DNET_INTERNAL_MAX_PKT_SIZE_REG
#define DNET_INTERNAL_IGP_REG
#define DNET_INTERNAL_MAC_ADDR_0_REG
#define DNET_INTERNAL_MAC_ADDR_1_REG
#define DNET_INTERNAL_MAC_ADDR_2_REG
#define DNET_INTERNAL_TX_RX_STS_REG
#define DNET_INTERNAL_GMII_MNG_CTL_REG
#define DNET_INTERNAL_GMII_MNG_DAT_REG

#define DNET_INTERNAL_GMII_MNG_CMD_FIN

#define DNET_INTERNAL_WRITE

/* MAC-CORE REGISTER FIELDS */

/* MAC-CORE MODE REGISTER FIELDS */
#define DNET_INTERNAL_MODE_GBITEN
#define DNET_INTERNAL_MODE_FCEN
#define DNET_INTERNAL_MODE_RXEN
#define DNET_INTERNAL_MODE_TXEN

/* MAC-CORE RXTX CONTROL REGISTER FIELDS */
#define DNET_INTERNAL_RXTX_CONTROL_RXSHORTFRAME
#define DNET_INTERNAL_RXTX_CONTROL_RXBROADCAST
#define DNET_INTERNAL_RXTX_CONTROL_RXMULTICAST
#define DNET_INTERNAL_RXTX_CONTROL_RXPAUSE
#define DNET_INTERNAL_RXTX_CONTROL_DISTXFCS
#define DNET_INTERNAL_RXTX_CONTROL_DISCFXFCS
#define DNET_INTERNAL_RXTX_CONTROL_ENPROMISC
#define DNET_INTERNAL_RXTX_CONTROL_DROPCONTROL
#define DNET_INTERNAL_RXTX_CONTROL_ENABLEHALFDUP

/* SYSTEM CONTROL REGISTER FIELDS */
#define DNET_SYS_CTL_IGNORENEXTPKT
#define DNET_SYS_CTL_SENDPAUSE
#define DNET_SYS_CTL_RXFIFOFLUSH
#define DNET_SYS_CTL_TXFIFOFLUSH

/* TX STATUS REGISTER FIELDS */
#define DNET_TX_STATUS_FIFO_ALMOST_EMPTY
#define DNET_TX_STATUS_FIFO_ALMOST_FULL

/* INTERRUPT SOURCE REGISTER FIELDS */
#define DNET_INTR_SRC_TX_PKTSENT
#define DNET_INTR_SRC_TX_FIFOAF
#define DNET_INTR_SRC_TX_FIFOAE
#define DNET_INTR_SRC_TX_DISCFRM
#define DNET_INTR_SRC_TX_FIFOFULL
#define DNET_INTR_SRC_RX_CMDFIFOAF
#define DNET_INTR_SRC_RX_CMDFIFOFF
#define DNET_INTR_SRC_RX_DATAFIFOFF
#define DNET_INTR_SRC_TX_SUMMARY
#define DNET_INTR_SRC_RX_SUMMARY
#define DNET_INTR_SRC_PHY

/* INTERRUPT ENABLE REGISTER FIELDS */
#define DNET_INTR_ENB_TX_PKTSENT
#define DNET_INTR_ENB_TX_FIFOAF
#define DNET_INTR_ENB_TX_FIFOAE
#define DNET_INTR_ENB_TX_DISCFRM
#define DNET_INTR_ENB_TX_FIFOFULL
#define DNET_INTR_ENB_RX_PKTRDY
#define DNET_INTR_ENB_RX_FIFOAF
#define DNET_INTR_ENB_RX_FIFOERR
#define DNET_INTR_ENB_RX_ERROR
#define DNET_INTR_ENB_RX_FIFOFULL
#define DNET_INTR_ENB_RX_FIFOAE
#define DNET_INTR_ENB_TX_SUMMARY
#define DNET_INTR_ENB_RX_SUMMARY
#define DNET_INTR_ENB_GLOBAL_ENABLE

/* default values:
 * almost empty = less than one full sized ethernet frame (no jumbo) inside
 * the fifo almost full = can write less than one full sized ethernet frame
 * (no jumbo) inside the fifo
 */
#define DNET_CFG_TX_FIFO_FULL_THRES
#define DNET_CFG_RX_FIFO_FULL_THRES

/*
 * Capabilities. Used by the driver to know the capabilities that the ethernet
 * controller inside the FPGA have.
 */

#define DNET_HAS_MDIO
#define DNET_HAS_IRQ
#define DNET_HAS_GIGABIT
#define DNET_HAS_DMA

#define DNET_HAS_MII
#define DNET_HAS_RMII

#define DNET_CAPS_MASK

#define DNET_FIFO_SIZE
#define DNET_FIFO_TX_DATA_AF_TH
#define DNET_FIFO_TX_DATA_AE_TH

#define DNET_FIFO_RX_CMD_AF_TH

/*
 * Hardware-collected statistics.
 */
struct dnet_stats {};

struct dnet {};

#endif /* _DNET_H */