#include <linux/delay.h>
#include <linux/dma-mapping.h>
#include <linux/hdlc.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/irq.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/netdevice.h>
#include <linux/of_address.h>
#include <linux/of_irq.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/sched.h>
#include <linux/skbuff.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/stddef.h>
#include <soc/fsl/qe/qe_tdm.h>
#include <uapi/linux/if_arp.h>
#include "fsl_ucc_hdlc.h"
#define DRV_DESC …
#define DRV_NAME …
#define TDM_PPPOHT_SLIC_MAXIN
#define RX_BD_ERRORS …
static int uhdlc_close(struct net_device *dev);
static struct ucc_tdm_info utdm_primary_info = …;
static struct ucc_tdm_info utdm_info[UCC_MAX_NUM];
static int uhdlc_init(struct ucc_hdlc_private *priv)
{ … }
static netdev_tx_t ucc_hdlc_tx(struct sk_buff *skb, struct net_device *dev)
{ … }
static int hdlc_tx_restart(struct ucc_hdlc_private *priv)
{ … }
static int hdlc_tx_done(struct ucc_hdlc_private *priv)
{ … }
static int hdlc_rx_done(struct ucc_hdlc_private *priv, int rx_work_limit)
{ … }
static int ucc_hdlc_poll(struct napi_struct *napi, int budget)
{ … }
static irqreturn_t ucc_hdlc_irq_handler(int irq, void *dev_id)
{ … }
static int uhdlc_ioctl(struct net_device *dev, struct if_settings *ifs)
{ … }
static int uhdlc_open(struct net_device *dev)
{ … }
static void uhdlc_memclean(struct ucc_hdlc_private *priv)
{ … }
static int uhdlc_close(struct net_device *dev)
{ … }
static int ucc_hdlc_attach(struct net_device *dev, unsigned short encoding,
unsigned short parity)
{ … }
#ifdef CONFIG_PM
static void store_clk_config(struct ucc_hdlc_private *priv)
{ … }
static void resume_clk_config(struct ucc_hdlc_private *priv)
{ … }
static int uhdlc_suspend(struct device *dev)
{ … }
static int uhdlc_resume(struct device *dev)
{ … }
static const struct dev_pm_ops uhdlc_pm_ops = …;
#define HDLC_PM_OPS …
#else
#define HDLC_PM_OPS …
#endif
static void uhdlc_tx_timeout(struct net_device *ndev, unsigned int txqueue)
{ … }
static const struct net_device_ops uhdlc_ops = …;
static int hdlc_map_iomem(char *name, int init_flag, void __iomem **ptr)
{ … }
static int ucc_hdlc_probe(struct platform_device *pdev)
{ … }
static void ucc_hdlc_remove(struct platform_device *pdev)
{ … }
static const struct of_device_id fsl_ucc_hdlc_of_match[] = …;
MODULE_DEVICE_TABLE(of, fsl_ucc_hdlc_of_match);
static struct platform_driver ucc_hdlc_driver = …;
module_platform_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…);