#include <linux/bcma/bcma.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/of_platform.h>
#include <linux/usb/ehci_pdriver.h>
#include <linux/usb/ohci_pdriver.h>
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define USB_BCMA_CLKCTLST_USB_CLK_REQ …
struct bcma_hcd_device { … };
static int bcma_wait_bits(struct bcma_device *dev, u16 reg, u32 bitmask,
int timeout)
{ … }
static void bcma_hcd_4716wa(struct bcma_device *dev)
{ … }
static void bcma_hcd_init_chip_mips(struct bcma_device *dev)
{ … }
static int bcma_hcd_usb20_old_arm_init(struct bcma_hcd_device *usb_dev)
{ … }
static void bcma_hcd_usb20_ns_init_hc(struct bcma_device *dev)
{ … }
static int bcma_hcd_usb20_ns_init(struct bcma_hcd_device *bcma_hcd)
{ … }
static void bcma_hci_platform_power_gpio(struct bcma_device *dev, bool val)
{ … }
static const struct usb_ehci_pdata ehci_pdata = …;
static const struct usb_ohci_pdata ohci_pdata = …;
static struct platform_device *bcma_hcd_create_pdev(struct bcma_device *dev,
const char *name, u32 addr,
const void *data,
size_t size)
{ … }
static int bcma_hcd_usb20_init(struct bcma_hcd_device *usb_dev)
{ … }
static int bcma_hcd_usb30_init(struct bcma_hcd_device *bcma_hcd)
{ … }
static int bcma_hcd_probe(struct bcma_device *core)
{ … }
static void bcma_hcd_remove(struct bcma_device *dev)
{ … }
static void bcma_hcd_shutdown(struct bcma_device *dev)
{ … }
#ifdef CONFIG_PM
static int bcma_hcd_suspend(struct bcma_device *dev)
{ … }
static int bcma_hcd_resume(struct bcma_device *dev)
{ … }
#else
#define bcma_hcd_suspend …
#define bcma_hcd_resume …
#endif
static const struct bcma_device_id bcma_hcd_table[] = …;
MODULE_DEVICE_TABLE(bcma, bcma_hcd_table);
static struct bcma_driver bcma_hcd_driver = …;
module_bcma_driver(…) …;