#include <linux/clk.h>
#include <linux/io.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_runtime.h>
#include <linux/reset.h>
#include <linux/usb.h>
#include <linux/usb/chipidea.h>
#include <linux/usb/hcd.h>
#include <linux/usb/of.h>
#include <linux/usb/phy.h>
#include <soc/tegra/common.h>
#include "../host/ehci.h"
#include "ci.h"
struct tegra_usb { … };
struct tegra_usb_soc_info { … };
static const struct tegra_usb_soc_info tegra20_ehci_soc_info = …;
static const struct tegra_usb_soc_info tegra30_ehci_soc_info = …;
static const struct tegra_usb_soc_info tegra20_udc_soc_info = …;
static const struct tegra_usb_soc_info tegra30_udc_soc_info = …;
static const struct of_device_id tegra_usb_of_match[] = …;
MODULE_DEVICE_TABLE(of, tegra_usb_of_match);
static int tegra_usb_reset_controller(struct device *dev)
{ … }
static int tegra_usb_notify_event(struct ci_hdrc *ci, unsigned int event)
{ … }
static int tegra_usb_internal_port_reset(struct ehci_hcd *ehci,
u32 __iomem *portsc_reg,
unsigned long *flags)
{ … }
static int tegra_ehci_hub_control(struct ci_hdrc *ci, u16 typeReq, u16 wValue,
u16 wIndex, char *buf, u16 wLength,
bool *done, unsigned long *flags)
{ … }
static void tegra_usb_enter_lpm(struct ci_hdrc *ci, bool enable)
{ … }
static int tegra_usb_probe(struct platform_device *pdev)
{ … }
static void tegra_usb_remove(struct platform_device *pdev)
{ … }
static int tegra_usb_runtime_resume(struct device *dev)
{ … }
static int tegra_usb_runtime_suspend(struct device *dev)
{ … }
static const struct dev_pm_ops tegra_usb_pm = …;
static struct platform_driver tegra_usb_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;