diff options
Diffstat (limited to 'include/linux/usb/musb.h')
| -rw-r--r-- | include/linux/usb/musb.h | 66 | 
1 files changed, 54 insertions, 12 deletions
diff --git a/include/linux/usb/musb.h b/include/linux/usb/musb.h index d4375566926..ee2dd1d506e 100644 --- a/include/linux/usb/musb.h +++ b/include/linux/usb/musb.h @@ -22,37 +22,73 @@ 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;	/* supports dynamic fifo sizing */ -	unsigned	soft_con:1;	/* soft connect required */ -	unsigned	utm_16:1;	/* utm data witdh is 16 bits */ +	unsigned	dyn_fifo:1 __deprecated; /* supports dynamic fifo sizing */ +	unsigned	soft_con:1 __deprecated; /* soft connect required */ +	unsigned	utm_16:1 __deprecated; /* utm data witdh is 16 bits */  	unsigned	big_endian:1;	/* true if CPU uses big-endian */  	unsigned	mult_bulk_tx:1;	/* Tx ep required for multbulk pkts */  	unsigned	mult_bulk_rx:1;	/* Rx ep required for multbulk pkts */  	unsigned	high_iso_tx:1;	/* Tx ep required for HB iso */  	unsigned	high_iso_rx:1;	/* Rx ep required for HD iso */ -	unsigned	dma:1;		/* supports DMA */ -	unsigned	vendor_req:1;	/* vendor registers required */ +	unsigned	dma:1 __deprecated; /* supports DMA */ +	unsigned	vendor_req:1 __deprecated; /* vendor registers required */  	u8		num_eps;	/* number of endpoints _with_ ep0 */ -	u8		dma_channels;	/* number of dma channels */ +	u8		dma_channels __deprecated; /* number of dma channels */  	u8		dyn_fifo_size;	/* dynamic size in bytes */ -	u8		vendor_ctrl;	/* vendor control reg width */ -	u8		vendor_stat;	/* vendor status reg witdh */ -	u8		dma_req_chan;	/* bitmask for required dma channels */ +	u8		vendor_ctrl __deprecated; /* vendor control reg width */ +	u8		vendor_stat __deprecated; /* vendor status reg witdh */ +	u8		dma_req_chan __deprecated; /* bitmask for required dma channels */  	u8		ram_bits;	/* ram address size */ -	struct musb_hdrc_eps_bits *eps_bits; +	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  }; @@ -76,6 +112,9 @@ struct musb_hdrc_platform_data {  	/* (HOST or OTG) msec/2 after VBUS on till power good */  	u8		potpgt; +	/* (HOST or OTG) program PHY for external Vbus */ +	unsigned	extvbus:1; +  	/* Power the device on or off */  	int		(*set_power)(int state); @@ -84,6 +123,9 @@ struct musb_hdrc_platform_data {  	/* MUSB configuration-specific details */  	struct musb_hdrc_config	*config; + +	/* Architecture specific board data	*/ +	void		*board_data;  };  |