#include <linux/gpio/consumer.h>
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/err.h>
#include <linux/prefetch.h>
#include <linux/usb.h>
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/dma-mapping.h>
#include <linux/usb/usb_phy_generic.h>
#include "musb_core.h"
struct tusb6010_glue { … };
static void tusb_musb_set_vbus(struct musb *musb, int is_on);
#define TUSB_REV_MAJOR(reg_val) …
#define TUSB_REV_MINOR(reg_val) …
static u8 tusb_get_revision(struct musb *musb)
{ … }
static void tusb_print_revision(struct musb *musb)
{ … }
#define WBUS_QUIRK_MASK …
static void tusb_wbus_quirk(struct musb *musb, int enabled)
{ … }
static u32 tusb_fifo_offset(u8 epnum)
{ … }
static u32 tusb_ep_offset(u8 epnum, u16 offset)
{ … }
static void tusb_ep_select(void __iomem *mbase, u8 epnum)
{ … }
static u8 tusb_readb(void __iomem *addr, u32 offset)
{ … }
static void tusb_writeb(void __iomem *addr, u32 offset, u8 data)
{ … }
static inline void
tusb_fifo_write_unaligned(void __iomem *fifo, const u8 *buf, u16 len)
{ … }
static inline void tusb_fifo_read_unaligned(void __iomem *fifo,
void *buf, u16 len)
{ … }
static void tusb_write_fifo(struct musb_hw_ep *hw_ep, u16 len, const u8 *buf)
{ … }
static void tusb_read_fifo(struct musb_hw_ep *hw_ep, u16 len, u8 *buf)
{ … }
static struct musb *the_musb;
static int tusb_draw_power(struct usb_phy *x, unsigned mA)
{ … }
static void tusb_set_clock_source(struct musb *musb, unsigned mode)
{ … }
static void tusb_allow_idle(struct musb *musb, u32 wakeup_enables)
{ … }
static int tusb_musb_vbus_status(struct musb *musb)
{ … }
static void musb_do_idle(struct timer_list *t)
{ … }
static void tusb_musb_try_idle(struct musb *musb, unsigned long timeout)
{ … }
#define DEVCLOCK …
#define OTG_TIMER_MS(msecs) …
static void tusb_musb_set_vbus(struct musb *musb, int is_on)
{ … }
static int tusb_musb_set_mode(struct musb *musb, u8 musb_mode)
{ … }
static inline unsigned long
tusb_otg_ints(struct musb *musb, u32 int_src, void __iomem *tbase)
{ … }
static irqreturn_t tusb_musb_interrupt(int irq, void *__hci)
{ … }
static int dma_off;
static void tusb_musb_enable(struct musb *musb)
{ … }
static void tusb_musb_disable(struct musb *musb)
{ … }
static void tusb_setup_cpu_interface(struct musb *musb)
{ … }
static int tusb_musb_start(struct musb *musb)
{ … }
static int tusb_musb_init(struct musb *musb)
{ … }
static int tusb_musb_exit(struct musb *musb)
{ … }
static const struct musb_platform_ops tusb_ops = …;
static const struct platform_device_info tusb_dev_info = …;
static int tusb_probe(struct platform_device *pdev)
{ … }
static void tusb_remove(struct platform_device *pdev)
{ … }
static struct platform_driver tusb_driver = …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
module_platform_driver(…) …;