diff options
Diffstat (limited to 'drivers/usb/gadget/ci13xxx_udc.h')
-rw-r--r-- | drivers/usb/gadget/ci13xxx_udc.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/usb/gadget/ci13xxx_udc.h b/drivers/usb/gadget/ci13xxx_udc.h index f61fed07f76b..23707775cb43 100644 --- a/drivers/usb/gadget/ci13xxx_udc.h +++ b/drivers/usb/gadget/ci13xxx_udc.h | |||
@@ -20,7 +20,7 @@ | |||
20 | * DEFINE | 20 | * DEFINE |
21 | *****************************************************************************/ | 21 | *****************************************************************************/ |
22 | #define CI13XXX_PAGE_SIZE 4096ul /* page size for TD's */ | 22 | #define CI13XXX_PAGE_SIZE 4096ul /* page size for TD's */ |
23 | #define ENDPT_MAX (16) | 23 | #define ENDPT_MAX (32) |
24 | #define CTRL_PAYLOAD_MAX (64) | 24 | #define CTRL_PAYLOAD_MAX (64) |
25 | #define RX (0) /* similar to USB_DIR_OUT but can be used as an index */ | 25 | #define RX (0) /* similar to USB_DIR_OUT but can be used as an index */ |
26 | #define TX (1) /* similar to USB_DIR_IN but can be used as an index */ | 26 | #define TX (1) /* similar to USB_DIR_IN but can be used as an index */ |
@@ -33,6 +33,7 @@ struct ci13xxx_td { | |||
33 | /* 0 */ | 33 | /* 0 */ |
34 | u32 next; | 34 | u32 next; |
35 | #define TD_TERMINATE BIT(0) | 35 | #define TD_TERMINATE BIT(0) |
36 | #define TD_ADDR_MASK (0xFFFFFFEUL << 5) | ||
36 | /* 1 */ | 37 | /* 1 */ |
37 | u32 token; | 38 | u32 token; |
38 | #define TD_STATUS (0x00FFUL << 0) | 39 | #define TD_STATUS (0x00FFUL << 0) |
@@ -74,6 +75,8 @@ struct ci13xxx_req { | |||
74 | struct list_head queue; | 75 | struct list_head queue; |
75 | struct ci13xxx_td *ptr; | 76 | struct ci13xxx_td *ptr; |
76 | dma_addr_t dma; | 77 | dma_addr_t dma; |
78 | struct ci13xxx_td *zptr; | ||
79 | dma_addr_t zdma; | ||
77 | }; | 80 | }; |
78 | 81 | ||
79 | /* Extension of usb_ep */ | 82 | /* Extension of usb_ep */ |
@@ -88,8 +91,7 @@ struct ci13xxx_ep { | |||
88 | struct list_head queue; | 91 | struct list_head queue; |
89 | struct ci13xxx_qh *ptr; | 92 | struct ci13xxx_qh *ptr; |
90 | dma_addr_t dma; | 93 | dma_addr_t dma; |
91 | } qh[2]; | 94 | } qh; |
92 | struct usb_request *status; | ||
93 | int wedge; | 95 | int wedge; |
94 | 96 | ||
95 | /* global resources */ | 97 | /* global resources */ |
@@ -119,9 +121,17 @@ struct ci13xxx { | |||
119 | 121 | ||
120 | struct dma_pool *qh_pool; /* DMA pool for queue heads */ | 122 | struct dma_pool *qh_pool; /* DMA pool for queue heads */ |
121 | struct dma_pool *td_pool; /* DMA pool for transfer descs */ | 123 | struct dma_pool *td_pool; /* DMA pool for transfer descs */ |
124 | struct usb_request *status; /* ep0 status request */ | ||
122 | 125 | ||
123 | struct usb_gadget gadget; /* USB slave device */ | 126 | struct usb_gadget gadget; /* USB slave device */ |
124 | struct ci13xxx_ep ci13xxx_ep[ENDPT_MAX]; /* extended endpts */ | 127 | struct ci13xxx_ep ci13xxx_ep[ENDPT_MAX]; /* extended endpts */ |
128 | u32 ep0_dir; /* ep0 direction */ | ||
129 | #define ep0out ci13xxx_ep[0] | ||
130 | #define ep0in ci13xxx_ep[16] | ||
131 | u8 remote_wakeup; /* Is remote wakeup feature | ||
132 | enabled by the host? */ | ||
133 | u8 suspended; /* suspended by the host */ | ||
134 | u8 test_mode; /* the selected test mode */ | ||
125 | 135 | ||
126 | struct usb_gadget_driver *driver; /* 3rd party gadget driver */ | 136 | struct usb_gadget_driver *driver; /* 3rd party gadget driver */ |
127 | struct ci13xxx_udc_driver *udc_driver; /* device controller driver */ | 137 | struct ci13xxx_udc_driver *udc_driver; /* device controller driver */ |
@@ -149,6 +159,7 @@ struct ci13xxx { | |||
149 | #define USBCMD_RS BIT(0) | 159 | #define USBCMD_RS BIT(0) |
150 | #define USBCMD_RST BIT(1) | 160 | #define USBCMD_RST BIT(1) |
151 | #define USBCMD_SUTW BIT(13) | 161 | #define USBCMD_SUTW BIT(13) |
162 | #define USBCMD_ATDTW BIT(14) | ||
152 | 163 | ||
153 | /* USBSTS & USBINTR */ | 164 | /* USBSTS & USBINTR */ |
154 | #define USBi_UI BIT(0) | 165 | #define USBi_UI BIT(0) |
@@ -162,6 +173,7 @@ struct ci13xxx { | |||
162 | #define DEVICEADDR_USBADR (0x7FUL << 25) | 173 | #define DEVICEADDR_USBADR (0x7FUL << 25) |
163 | 174 | ||
164 | /* PORTSC */ | 175 | /* PORTSC */ |
176 | #define PORTSC_FPR BIT(6) | ||
165 | #define PORTSC_SUSP BIT(7) | 177 | #define PORTSC_SUSP BIT(7) |
166 | #define PORTSC_HSP BIT(9) | 178 | #define PORTSC_HSP BIT(9) |
167 | #define PORTSC_PTC (0x0FUL << 16) | 179 | #define PORTSC_PTC (0x0FUL << 16) |