#include <linux/etherdevice.h>
#include <linux/interrupt.h>
#include <linux/litex.h>
#include <linux/module.h>
#include <linux/of_net.h>
#include <linux/platform_device.h>
#define LITEETH_WRITER_SLOT …
#define LITEETH_WRITER_LENGTH …
#define LITEETH_WRITER_ERRORS …
#define LITEETH_WRITER_EV_STATUS …
#define LITEETH_WRITER_EV_PENDING …
#define LITEETH_WRITER_EV_ENABLE …
#define LITEETH_READER_START …
#define LITEETH_READER_READY …
#define LITEETH_READER_LEVEL …
#define LITEETH_READER_SLOT …
#define LITEETH_READER_LENGTH …
#define LITEETH_READER_EV_STATUS …
#define LITEETH_READER_EV_PENDING …
#define LITEETH_READER_EV_ENABLE …
#define LITEETH_PREAMBLE_CRC …
#define LITEETH_PREAMBLE_ERRORS …
#define LITEETH_CRC_ERRORS …
#define LITEETH_PHY_CRG_RESET …
#define LITEETH_MDIO_W …
#define LITEETH_MDIO_R …
#define DRV_NAME …
struct liteeth { … };
static int liteeth_rx(struct net_device *netdev)
{ … }
static irqreturn_t liteeth_interrupt(int irq, void *dev_id)
{ … }
static int liteeth_open(struct net_device *netdev)
{ … }
static int liteeth_stop(struct net_device *netdev)
{ … }
static netdev_tx_t liteeth_start_xmit(struct sk_buff *skb,
struct net_device *netdev)
{ … }
static void
liteeth_get_stats64(struct net_device *netdev, struct rtnl_link_stats64 *stats)
{ … }
static const struct net_device_ops liteeth_netdev_ops = …;
static void liteeth_setup_slots(struct liteeth *priv)
{ … }
static int liteeth_probe(struct platform_device *pdev)
{ … }
static void liteeth_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id liteeth_of_match[] = …;
MODULE_DEVICE_TABLE(of, liteeth_of_match);
static struct platform_driver liteeth_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;