]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/usb/musb.h
usb: musb: pass configuration specifics via pdata
[linux-2.6-omap-h63xx.git] / include / linux / usb / musb.h
index d325a0d5bf4f1e95a036b98272418437edf78833..630962c04ca45363fbf64a7115529f79c0e8bc1d 100644 (file)
@@ -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;
 };