#include <linux/delay.h>
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/ioport.h>
#include <linux/kernel.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_platform.h>
#include <linux/platform_device.h>
#include <linux/slab.h>
#include <linux/regmap.h>
#include <linux/reset.h>
#include <linux/pinctrl/consumer.h>
#include <linux/usb/of.h>
#include "core.h"
#include "io.h"
#define CLKRST_CTRL …
#define AUX_CLK_EN …
#define SW_PIPEW_RESET_N …
#define EXT_CFG_RESET_N …
#define XHCI_REVISION …
#define USB2_VBUS_MNGMNT_SEL1 …
#define USB2_VBUS_REG30 …
#define USB2_VBUS_UTMIOTG …
#define USB2_VBUS_PIPEW …
#define USB2_VBUS_ZERO …
#define SEL_OVERRIDE_VBUSVALID(n) …
#define SEL_OVERRIDE_POWERPRESENT(n) …
#define SEL_OVERRIDE_BVALID(n) …
#define USB3_CONTROL_MASK …
#define USB3_DEVICE_NOT_HOST …
#define USB3_FORCE_VBUSVALID …
#define USB3_DELAY_VBUSVALID …
#define USB3_SEL_FORCE_OPMODE …
#define USB3_FORCE_OPMODE(n) …
#define USB3_SEL_FORCE_DPPULLDOWN2 …
#define USB3_FORCE_DPPULLDOWN2 …
#define USB3_SEL_FORCE_DMPULLDOWN2 …
#define USB3_FORCE_DMPULLDOWN2 …
struct st_dwc3 { … };
static inline u32 st_dwc3_readl(void __iomem *base, u32 offset)
{ … }
static inline void st_dwc3_writel(void __iomem *base, u32 offset, u32 value)
{ … }
static int st_dwc3_drd_init(struct st_dwc3 *dwc3_data)
{ … }
static void st_dwc3_init(struct st_dwc3 *dwc3_data)
{ … }
static int st_dwc3_probe(struct platform_device *pdev)
{ … }
static void st_dwc3_remove(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM_SLEEP
static int st_dwc3_suspend(struct device *dev)
{ … }
static int st_dwc3_resume(struct device *dev)
{ … }
#endif
static SIMPLE_DEV_PM_OPS(st_dwc3_dev_pm_ops, st_dwc3_suspend, st_dwc3_resume);
static const struct of_device_id st_dwc3_match[] = …;
MODULE_DEVICE_TABLE(of, st_dwc3_match);
static struct platform_driver st_dwc3_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;