#include <linux/device.h>
#include <linux/errno.h>
#include <linux/etherdevice.h>
#include <linux/if_arp.h>
#include <linux/if_ether.h>
#include <linux/jiffies.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/of.h>
#include <linux/of_net.h>
#include <linux/sched.h>
#include <linux/serdev.h>
#include <linux/skbuff.h>
#include <linux/types.h>
#include "qca_7k_common.h"
#define QCAUART_DRV_VERSION …
#define QCAUART_DRV_NAME …
#define QCAUART_TX_TIMEOUT …
struct qcauart { … };
static size_t
qca_tty_receive(struct serdev_device *serdev, const u8 *data, size_t count)
{ … }
static void qcauart_transmit(struct work_struct *work)
{ … }
static void qca_tty_wakeup(struct serdev_device *serdev)
{ … }
static const struct serdev_device_ops qca_serdev_ops = …;
static int qcauart_netdev_open(struct net_device *dev)
{ … }
static int qcauart_netdev_close(struct net_device *dev)
{ … }
static netdev_tx_t
qcauart_netdev_xmit(struct sk_buff *skb, struct net_device *dev)
{ … }
static void qcauart_netdev_tx_timeout(struct net_device *dev, unsigned int txqueue)
{ … }
static int qcauart_netdev_init(struct net_device *dev)
{ … }
static void qcauart_netdev_uninit(struct net_device *dev)
{ … }
static const struct net_device_ops qcauart_netdev_ops = …;
static void qcauart_netdev_setup(struct net_device *dev)
{ … }
static const struct of_device_id qca_uart_of_match[] = …;
MODULE_DEVICE_TABLE(of, qca_uart_of_match);
static int qca_uart_probe(struct serdev_device *serdev)
{ … }
static void qca_uart_remove(struct serdev_device *serdev)
{ … }
static struct serdev_device_driver qca_uart_driver = …;
module_serdev_device_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_VERSION(…);