#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/usb.h>
#include <linux/usb/hcd.h>
#include <linux/usb/ch11.h>
#include <linux/platform_device.h>
#include <linux/usb/usb_phy_generic.h>
#include "core.h"
static const char dwc2_driver_name[] = …;
struct dwc2_pci_glue { … };
static void dwc2_pci_remove(struct pci_dev *pci)
{ … }
static int dwc2_pci_probe(struct pci_dev *pci,
const struct pci_device_id *id)
{ … }
static struct pci_driver dwc2_pci_driver = …;
module_pci_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;