diff options
Diffstat (limited to 'include/linux/usb/musb.h')
| -rw-r--r-- | include/linux/usb/musb.h | 40 | 
1 files changed, 38 insertions, 2 deletions
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h index 7acef0234c0..ee2dd1d506e 100644 --- a/include/linux/usb/musb.h +++ b/include/linux/usb/musb.h @@ -22,12 +22,47 @@ enum musb_mode {  struct clk; +enum musb_fifo_style { +	FIFO_RXTX, +	FIFO_TX, +	FIFO_RX +} __attribute__ ((packed)); + +enum musb_buf_mode { +	BUF_SINGLE, +	BUF_DOUBLE +} __attribute__ ((packed)); + +struct musb_fifo_cfg { +	u8			hw_ep_num; +	enum musb_fifo_style	style; +	enum musb_buf_mode	mode; +	u16			maxpacket; +}; + +#define MUSB_EP_FIFO(ep, st, m, pkt)		\ +{						\ +	.hw_ep_num	= ep,			\ +	.style		= st,			\ +	.mode		= m,			\ +	.maxpacket	= pkt,			\ +} + +#define MUSB_EP_FIFO_SINGLE(ep, st, pkt)	\ +	MUSB_EP_FIFO(ep, st, BUF_SINGLE, pkt) + +#define MUSB_EP_FIFO_DOUBLE(ep, st, pkt)	\ +	MUSB_EP_FIFO(ep, st, BUF_DOUBLE, pkt) +  struct musb_hdrc_eps_bits {  	const char	name[16];  	u8		bits;  };  struct musb_hdrc_config { +	struct musb_fifo_cfg	*fifo_cfg;	/* board fifo configuration */ +	unsigned		fifo_cfg_size;	/* size of the fifo configuration */ +  	/* MUSB configuration-specific details */  	unsigned	multipoint:1;	/* multipoint device */  	unsigned	dyn_fifo:1 __deprecated; /* supports dynamic fifo sizing */ @@ -51,8 +86,9 @@ struct musb_hdrc_config {  	struct musb_hdrc_eps_bits *eps_bits __deprecated;  #ifdef CONFIG_BLACKFIN -        /* A GPIO controlling VRSEL in Blackfin */ -        unsigned int    gpio_vrsel; +	/* A GPIO controlling VRSEL in Blackfin */ +	unsigned int	gpio_vrsel; +	unsigned int	gpio_vrsel_active;  #endif  };  |