mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 17:41:50 +00:00
usb: musb: pass configuration specifics via pdata
Use platform_data to pass musb configuration-specific details to musb driver. This patch will prevent that other platforms selecting HAVE_CLK and enabling musb won't break tree building. The other parts of it will come when linux-omap merge up more omap2/3 board-files. Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
f362a47560
commit
ca6d1b1333
5 changed files with 51 additions and 208 deletions
|
@ -19,6 +19,36 @@ enum musb_mode {
|
|||
|
||||
struct clk;
|
||||
|
||||
struct musb_hdrc_eps_bits {
|
||||
const char name[16];
|
||||
u8 bits;
|
||||
};
|
||||
|
||||
struct musb_hdrc_config {
|
||||
/* 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 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 */
|
||||
|
||||
u8 num_eps; /* number of endpoints _with_ ep0 */
|
||||
u8 dma_channels; /* 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 ram_bits; /* ram address size */
|
||||
|
||||
struct musb_hdrc_eps_bits *eps_bits;
|
||||
};
|
||||
|
||||
struct musb_hdrc_platform_data {
|
||||
/* MUSB_HOST, MUSB_PERIPHERAL, or MUSB_OTG */
|
||||
u8 mode;
|
||||
|
@ -38,16 +68,14 @@ struct musb_hdrc_platform_data {
|
|||
/* (HOST or OTG) msec/2 after VBUS on till power good */
|
||||
u8 potpgt;
|
||||
|
||||
/* TBD: chip defaults should probably go someplace else,
|
||||
* e.g. number of tx/rx endpoints, etc
|
||||
*/
|
||||
unsigned multipoint:1;
|
||||
|
||||
/* Power the device on or off */
|
||||
int (*set_power)(int state);
|
||||
|
||||
/* Turn device clock on or off */
|
||||
int (*set_clock)(struct clk *clock, int is_on);
|
||||
|
||||
/* MUSB configuration-specific details */
|
||||
struct musb_hdrc_config *config;
|
||||
};
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue