Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
bcm63xx_udc.c File Reference
#include <linux/bitops.h>
#include <linux/bug.h>
#include <linux/clk.h>
#include <linux/compiler.h>
#include <linux/debugfs.h>
#include <linux/delay.h>
#include <linux/device.h>
#include <linux/dma-mapping.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/kconfig.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
#include <linux/platform_device.h>
#include <linux/sched.h>
#include <linux/seq_file.h>
#include <linux/slab.h>
#include <linux/timer.h>
#include <linux/usb/ch9.h>
#include <linux/usb/gadget.h>
#include <linux/workqueue.h>
#include <bcm63xx_cpu.h>
#include <bcm63xx_iudma.h>
#include <bcm63xx_dev_usb_usbd.h>
#include <bcm63xx_io.h>
#include <bcm63xx_regs.h>

Go to the source code of this file.

Data Structures

struct  iudma_ch_cfg
 
struct  iudma_ch
 
struct  bcm63xx_ep
 
struct  bcm63xx_req
 
struct  bcm63xx_udc
 

Macros

#define DRV_MODULE_NAME   "bcm63xx_udc"
 
#define BCM63XX_NUM_EP   5
 
#define BCM63XX_NUM_IUDMA   6
 
#define BCM63XX_NUM_FIFO_PAIRS   3
 
#define IUDMA_RESET_TIMEOUT_US   10000
 
#define IUDMA_EP0_RXCHAN   0
 
#define IUDMA_EP0_TXCHAN   1
 
#define IUDMA_MAX_FRAGMENT   2048
 
#define BCM63XX_MAX_CTRL_PKT   64
 
#define BCMEP_CTRL   0x00
 
#define BCMEP_ISOC   0x01
 
#define BCMEP_BULK   0x02
 
#define BCMEP_INTR   0x03
 
#define BCMEP_OUT   0x00
 
#define BCMEP_IN   0x01
 
#define BCM63XX_SPD_FULL   1
 
#define BCM63XX_SPD_HIGH   0
 
#define IUDMA_DMAC_OFFSET   0x200
 
#define IUDMA_DMAS_OFFSET   0x400
 

Enumerations

enum  bcm63xx_ep0_state {
  EP0_REQUEUE, EP0_IDLE, EP0_IN_DATA_PHASE_SETUP, EP0_IN_DATA_PHASE_COMPLETE,
  EP0_OUT_DATA_PHASE_SETUP, EP0_OUT_DATA_PHASE_COMPLETE, EP0_OUT_STATUS_PHASE, EP0_IN_FAKE_STATUS_PHASE,
  EP0_SHUTDOWN
}
 

Functions

 module_param (use_fullspeed, bool, S_IRUGO)
 
 MODULE_PARM_DESC (use_fullspeed,"true for fullspeed only")
 
 module_param (irq_coalesce, bool, S_IRUGO)
 
 MODULE_PARM_DESC (irq_coalesce,"take one IRQ per RX transfer")
 
 module_platform_driver (bcm63xx_udc_driver)
 
 MODULE_DESCRIPTION ("BCM63xx USB Peripheral Controller")
 
 MODULE_AUTHOR ("Kevin Cernekee <[email protected]>")
 
 MODULE_LICENSE ("GPL")
 
 MODULE_ALIAS ("platform:"DRV_MODULE_NAME)
 

Macro Definition Documentation

#define BCM63XX_MAX_CTRL_PKT   64

Definition at line 90 of file bcm63xx_udc.c.

#define BCM63XX_NUM_EP   5

Definition at line 80 of file bcm63xx_udc.c.

#define BCM63XX_NUM_FIFO_PAIRS   3

Definition at line 82 of file bcm63xx_udc.c.

#define BCM63XX_NUM_IUDMA   6

Definition at line 81 of file bcm63xx_udc.c.

#define BCM63XX_SPD_FULL   1

Definition at line 100 of file bcm63xx_udc.c.

#define BCM63XX_SPD_HIGH   0

Definition at line 101 of file bcm63xx_udc.c.

#define BCMEP_BULK   0x02

Definition at line 94 of file bcm63xx_udc.c.

#define BCMEP_CTRL   0x00

Definition at line 92 of file bcm63xx_udc.c.

#define BCMEP_IN   0x01

Definition at line 98 of file bcm63xx_udc.c.

#define BCMEP_INTR   0x03

Definition at line 95 of file bcm63xx_udc.c.

#define BCMEP_ISOC   0x01

Definition at line 93 of file bcm63xx_udc.c.

#define BCMEP_OUT   0x00

Definition at line 97 of file bcm63xx_udc.c.

#define DRV_MODULE_NAME   "bcm63xx_udc"

Definition at line 45 of file bcm63xx_udc.c.

#define IUDMA_DMAC_OFFSET   0x200

Definition at line 103 of file bcm63xx_udc.c.

#define IUDMA_DMAS_OFFSET   0x400

Definition at line 104 of file bcm63xx_udc.c.

#define IUDMA_EP0_RXCHAN   0

Definition at line 86 of file bcm63xx_udc.c.

#define IUDMA_EP0_TXCHAN   1

Definition at line 87 of file bcm63xx_udc.c.

#define IUDMA_MAX_FRAGMENT   2048

Definition at line 89 of file bcm63xx_udc.c.

#define IUDMA_RESET_TIMEOUT_US   10000

Definition at line 84 of file bcm63xx_udc.c.

Enumeration Type Documentation

Enumerator:
EP0_REQUEUE 
EP0_IDLE 
EP0_IN_DATA_PHASE_SETUP 
EP0_IN_DATA_PHASE_COMPLETE 
EP0_OUT_DATA_PHASE_SETUP 
EP0_OUT_DATA_PHASE_COMPLETE 
EP0_OUT_STATUS_PHASE 
EP0_IN_FAKE_STATUS_PHASE 
EP0_SHUTDOWN 

Definition at line 106 of file bcm63xx_udc.c.

Function Documentation

MODULE_ALIAS ( "platform:"  DRV_MODULE_NAME)
MODULE_AUTHOR ( "Kevin Cernekee <[email protected]>"  )
MODULE_DESCRIPTION ( "BCM63xx USB Peripheral Controller )
MODULE_LICENSE ( "GPL"  )
module_param ( use_fullspeed  ,
bool  ,
S_IRUGO   
)
module_param ( irq_coalesce  ,
bool  ,
S_IRUGO   
)
MODULE_PARM_DESC ( use_fullspeed  ,
"true for fullspeed only"   
)
MODULE_PARM_DESC ( irq_coalesce  ,
"take one IRQ per RX transfer"   
)
module_platform_driver ( bcm63xx_udc_driver  )