]> Pileus Git - ~andy/linux/blobdiff - include/linux/usb/musb.h
usb: musb: allow board to pass down fifo mode
[~andy/linux] / include / linux / usb / musb.h
index 5dc2f227a0f1591bc5a8dd1165a3218da2901a62..f3d68f62dae89557edbbfac2670f98e154d77973 100644 (file)
@@ -22,34 +22,69 @@ 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;
@@ -76,6 +111,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);