#ifndef __RAVB_H__
#define __RAVB_H__
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/mdio-bitbang.h>
#include <linux/netdevice.h>
#include <linux/phy.h>
#include <linux/platform_device.h>
#include <linux/ptp_clock_kernel.h>
#include <net/page_pool/types.h>
#define BE_TX_RING_SIZE …
#define BE_RX_RING_SIZE …
#define NC_TX_RING_SIZE …
#define NC_RX_RING_SIZE …
#define BE_TX_RING_MIN …
#define BE_RX_RING_MIN …
#define BE_TX_RING_MAX …
#define BE_RX_RING_MAX …
#define PKT_BUF_SZ …
#define RAVB_ALIGN …
#define RAVB_TXTSTAMP_VALID …
#define RAVB_TXTSTAMP_ENABLED …
#define RAVB_RXTSTAMP_VALID …
#define RAVB_RXTSTAMP_TYPE …
#define RAVB_RXTSTAMP_TYPE_V2_L2_EVENT …
#define RAVB_RXTSTAMP_TYPE_ALL …
#define RAVB_RXTSTAMP_ENABLED …
enum ravb_reg { … };
enum CCC_BIT { … };
enum CSR_BIT { … };
enum ESR_BIT { … };
enum APSR_BIT { … };
enum RCR_BIT { … };
enum RQC_BIT { … };
enum RPC_BIT { … };
enum UFCW_BIT { … };
enum UFCS_BIT { … };
enum UFCV_BIT { … };
enum UFCD_BIT { … };
enum SFO_BIT { … };
enum RTC_BIT { … };
enum TGC_BIT { … };
enum TCCR_BIT { … };
enum TSR_BIT { … };
enum TFA2_BIT { … };
enum DIC_BIT { … };
enum DIS_BIT { … };
enum EIC_BIT { … };
enum EIS_BIT { … };
enum RIC0_BIT { … };
enum RIS0_BIT { … };
enum RIC1_BIT { … };
enum RIS1_BIT { … };
enum RIC2_BIT { … };
enum RIS2_BIT { … };
enum TIC_BIT { … };
enum TIS_BIT { … };
enum ISS_BIT { … };
enum CIE_BIT { … };
enum GCCR_BIT { … };
enum GTI_BIT { … };
#define GTI_TIV_MAX …
#define GTI_TIV_MIN …
enum GIC_BIT { … };
enum GIS_BIT { … };
enum GIE_BIT { … };
enum GID_BIT { … };
enum RIE0_BIT { … };
enum RID0_BIT { … };
enum RIE2_BIT { … };
enum RID2_BIT { … };
enum TIE_BIT { … };
enum TID_BIT { … };
enum ECMR_BIT { … };
enum ECSR_BIT { … };
enum ECSIPR_BIT { … };
enum PIR_BIT { … };
enum PSR_BIT { … };
enum PIPR_BIT { … };
enum MPR_BIT { … };
enum GECMR_BIT { … };
struct ravb_desc { … };
#define DPTR_ALIGN …
enum DIE_DT { … };
struct ravb_rx_desc { … };
struct ravb_ex_rx_desc { … };
enum RX_DS_CC_BIT { … };
enum MSC_BIT { … };
struct ravb_tx_desc { … };
enum TX_DS_TAGL_BIT { … };
enum TX_TAGH_TSR_BIT { … };
enum RAVB_QUEUE { … };
enum CXR31_BIT { … };
enum CXR35_BIT { … };
enum CSR0_BIT { … };
enum CSR1_BIT { … };
enum CSR2_BIT { … };
#define DBAT_ENTRY_NUM …
#define RX_QUEUE_OFFSET …
#define NUM_RX_QUEUE …
#define NUM_TX_QUEUE …
struct ravb_tstamp_skb { … };
struct ravb_ptp_perout { … };
#define N_EXT_TS …
#define N_PER_OUT …
struct ravb_ptp { … };
struct ravb_hw_info { … };
struct ravb_rx_buffer { … };
struct ravb_private { … };
static inline u32 ravb_read(struct net_device *ndev, enum ravb_reg reg)
{ … }
static inline void ravb_write(struct net_device *ndev, u32 data,
enum ravb_reg reg)
{ … }
void ravb_modify(struct net_device *ndev, enum ravb_reg reg, u32 clear,
u32 set);
int ravb_wait(struct net_device *ndev, enum ravb_reg reg, u32 mask, u32 value);
void ravb_ptp_interrupt(struct net_device *ndev);
void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev);
void ravb_ptp_stop(struct net_device *ndev);
#endif