#include <linux/dmi.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/pci.h>
#include <linux/workqueue.h>
#include <linux/pm_runtime.h>
#include <linux/platform_device.h>
#include <linux/gpio/consumer.h>
#include <linux/gpio/machine.h>
#include <linux/acpi.h>
#include <linux/delay.h>
#define PCI_DEVICE_ID_INTEL_BYT …
#define PCI_DEVICE_ID_INTEL_MRFLD …
#define PCI_DEVICE_ID_INTEL_BSW …
#define PCI_DEVICE_ID_INTEL_SPTLP …
#define PCI_DEVICE_ID_INTEL_SPTH …
#define PCI_DEVICE_ID_INTEL_BXT …
#define PCI_DEVICE_ID_INTEL_BXT_M …
#define PCI_DEVICE_ID_INTEL_APL …
#define PCI_DEVICE_ID_INTEL_KBP …
#define PCI_DEVICE_ID_INTEL_CMLLP …
#define PCI_DEVICE_ID_INTEL_CMLH …
#define PCI_DEVICE_ID_INTEL_GLK …
#define PCI_DEVICE_ID_INTEL_CNPLP …
#define PCI_DEVICE_ID_INTEL_CNPH …
#define PCI_DEVICE_ID_INTEL_CNPV …
#define PCI_DEVICE_ID_INTEL_ICLLP …
#define PCI_DEVICE_ID_INTEL_EHL …
#define PCI_DEVICE_ID_INTEL_TGPLP …
#define PCI_DEVICE_ID_INTEL_TGPH …
#define PCI_DEVICE_ID_INTEL_JSP …
#define PCI_DEVICE_ID_INTEL_ADL …
#define PCI_DEVICE_ID_INTEL_ADL_PCH …
#define PCI_DEVICE_ID_INTEL_ADLN …
#define PCI_DEVICE_ID_INTEL_ADLN_PCH …
#define PCI_DEVICE_ID_INTEL_ADLS …
#define PCI_DEVICE_ID_INTEL_RPL …
#define PCI_DEVICE_ID_INTEL_RPLS …
#define PCI_DEVICE_ID_INTEL_MTLM …
#define PCI_DEVICE_ID_INTEL_MTLP …
#define PCI_DEVICE_ID_INTEL_MTLS …
#define PCI_DEVICE_ID_INTEL_MTL …
#define PCI_DEVICE_ID_INTEL_ARLH_PCH …
#define PCI_DEVICE_ID_INTEL_TGL …
#define PCI_DEVICE_ID_INTEL_PTLH …
#define PCI_DEVICE_ID_INTEL_PTLH_PCH …
#define PCI_DEVICE_ID_INTEL_PTLU …
#define PCI_DEVICE_ID_INTEL_PTLU_PCH …
#define PCI_DEVICE_ID_AMD_MR …
#define PCI_INTEL_BXT_DSM_GUID …
#define PCI_INTEL_BXT_FUNC_PMU_PWR …
#define PCI_INTEL_BXT_STATE_D0 …
#define PCI_INTEL_BXT_STATE_D3 …
#define GP_RWBAR …
#define GP_RWREG1 …
#define GP_RWREG1_ULPI_REFCLK_DISABLE …
struct dwc3_pci { … };
static const struct acpi_gpio_params reset_gpios = …;
static const struct acpi_gpio_params cs_gpios = …;
static const struct acpi_gpio_mapping acpi_dwc3_byt_gpios[] = …;
static struct gpiod_lookup_table platform_bytcr_gpios = …;
static int dwc3_byt_enable_ulpi_refclock(struct pci_dev *pci)
{ … }
static const struct property_entry dwc3_pci_intel_properties[] = …;
static const struct property_entry dwc3_pci_intel_phy_charger_detect_properties[] = …;
static const struct property_entry dwc3_pci_intel_byt_properties[] = …;
static const struct property_entry dwc3_pci_mrfld_properties[] = …;
static const struct property_entry dwc3_pci_amd_properties[] = …;
static const struct property_entry dwc3_pci_mr_properties[] = …;
static const struct software_node dwc3_pci_intel_swnode = …;
static const struct software_node dwc3_pci_intel_phy_charger_detect_swnode = …;
static const struct software_node dwc3_pci_intel_byt_swnode = …;
static const struct software_node dwc3_pci_intel_mrfld_swnode = …;
static const struct software_node dwc3_pci_amd_swnode = …;
static const struct software_node dwc3_pci_amd_mr_swnode = …;
static int dwc3_pci_quirks(struct dwc3_pci *dwc,
const struct software_node *swnode)
{ … }
#ifdef CONFIG_PM
static void dwc3_pci_resume_work(struct work_struct *work)
{ … }
#endif
static int dwc3_pci_probe(struct pci_dev *pci, const struct pci_device_id *id)
{ … }
static void dwc3_pci_remove(struct pci_dev *pci)
{ … }
static const struct pci_device_id dwc3_pci_id_table[] = …;
MODULE_DEVICE_TABLE(pci, dwc3_pci_id_table);
#if defined(CONFIG_PM) || defined(CONFIG_PM_SLEEP)
static int dwc3_pci_dsm(struct dwc3_pci *dwc, int param)
{ … }
#endif
#ifdef CONFIG_PM
static int dwc3_pci_runtime_suspend(struct device *dev)
{ … }
static int dwc3_pci_runtime_resume(struct device *dev)
{ … }
#endif
#ifdef CONFIG_PM_SLEEP
static int dwc3_pci_suspend(struct device *dev)
{ … }
static int dwc3_pci_resume(struct device *dev)
{ … }
#endif
static const struct dev_pm_ops dwc3_pci_dev_pm_ops = …;
static struct pci_driver dwc3_pci_driver = …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
module_pci_driver(…) …;