#include <linux/clk.h>
#include <linux/gpio/consumer.h>
#include <linux/io.h>
#include <linux/interrupt.h>
#include <linux/jiffies.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/phy/phy.h>
#include <linux/platform_data/usb-davinci.h>
#include <linux/regulator/consumer.h>
#include <linux/usb.h>
#include <linux/usb/hcd.h>
#include <asm/unaligned.h>
#include "ohci.h"
#define DRIVER_DESC …
#define DRV_NAME …
static struct hc_driver __read_mostly ohci_da8xx_hc_driver;
static int (*orig_ohci_hub_control)(struct usb_hcd *hcd, u16 typeReq,
u16 wValue, u16 wIndex, char *buf, u16 wLength);
static int (*orig_ohci_hub_status_data)(struct usb_hcd *hcd, char *buf);
struct da8xx_ohci_hcd { … };
#define to_da8xx_ohci(hcd) …
static volatile u16 ocic_mask;
static int ohci_da8xx_enable(struct usb_hcd *hcd)
{ … }
static void ohci_da8xx_disable(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_set_power(struct usb_hcd *hcd, int on)
{ … }
static int ohci_da8xx_get_power(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_get_oci(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_has_set_power(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_has_oci(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_has_potpgt(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_regulator_event(struct notifier_block *nb,
unsigned long event, void *data)
{ … }
static irqreturn_t ohci_da8xx_oc_thread(int irq, void *data)
{ … }
static int ohci_da8xx_register_notify(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_reset(struct usb_hcd *hcd)
{ … }
static int ohci_da8xx_hub_status_data(struct usb_hcd *hcd, char *buf)
{ … }
static int ohci_da8xx_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
u16 wIndex, char *buf, u16 wLength)
{ … }
#ifdef CONFIG_OF
static const struct of_device_id da8xx_ohci_ids[] = …;
MODULE_DEVICE_TABLE(of, da8xx_ohci_ids);
#endif
static int ohci_da8xx_probe(struct platform_device *pdev)
{ … }
static void ohci_da8xx_remove(struct platform_device *pdev)
{ … }
#ifdef CONFIG_PM
static int ohci_da8xx_suspend(struct platform_device *pdev,
pm_message_t message)
{ … }
static int ohci_da8xx_resume(struct platform_device *dev)
{ … }
#endif
static const struct ohci_driver_overrides da8xx_overrides __initconst = …;
static struct platform_driver ohci_hcd_da8xx_driver = …;
static int __init ohci_da8xx_init(void)
{ … }
module_init(…) …;
static void __exit ohci_da8xx_exit(void)
{ … }
module_exit(ohci_da8xx_exit);
MODULE_DESCRIPTION(…);
MODULE_LICENSE(…) …;
MODULE_ALIAS(…) …;