|
@@ -59,15 +59,34 @@
|
|
|
#define DRIVER_VERSION "3 May 2006"
|
|
#define DRIVER_VERSION "3 May 2006"
|
|
|
|
|
|
|
|
static const char driver_name [] = "at91_udc";
|
|
static const char driver_name [] = "at91_udc";
|
|
|
-static const char * const ep_names[] = {
|
|
|
|
|
- "ep0",
|
|
|
|
|
- "ep1",
|
|
|
|
|
- "ep2",
|
|
|
|
|
- "ep3-int",
|
|
|
|
|
- "ep4",
|
|
|
|
|
- "ep5",
|
|
|
|
|
|
|
+
|
|
|
|
|
+static const struct {
|
|
|
|
|
+ const char *name;
|
|
|
|
|
+ const struct usb_ep_caps caps;
|
|
|
|
|
+} ep_info[] = {
|
|
|
|
|
+#define EP_INFO(_name, _caps) \
|
|
|
|
|
+ { \
|
|
|
|
|
+ .name = _name, \
|
|
|
|
|
+ .caps = _caps, \
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ EP_INFO("ep0",
|
|
|
|
|
+ USB_EP_CAPS(USB_EP_CAPS_TYPE_CONTROL, USB_EP_CAPS_DIR_ALL)),
|
|
|
|
|
+ EP_INFO("ep1",
|
|
|
|
|
+ USB_EP_CAPS(USB_EP_CAPS_TYPE_ALL, USB_EP_CAPS_DIR_ALL)),
|
|
|
|
|
+ EP_INFO("ep2",
|
|
|
|
|
+ USB_EP_CAPS(USB_EP_CAPS_TYPE_ALL, USB_EP_CAPS_DIR_ALL)),
|
|
|
|
|
+ EP_INFO("ep3-int",
|
|
|
|
|
+ USB_EP_CAPS(USB_EP_CAPS_TYPE_INT, USB_EP_CAPS_DIR_ALL)),
|
|
|
|
|
+ EP_INFO("ep4",
|
|
|
|
|
+ USB_EP_CAPS(USB_EP_CAPS_TYPE_ALL, USB_EP_CAPS_DIR_ALL)),
|
|
|
|
|
+ EP_INFO("ep5",
|
|
|
|
|
+ USB_EP_CAPS(USB_EP_CAPS_TYPE_ALL, USB_EP_CAPS_DIR_ALL)),
|
|
|
|
|
+
|
|
|
|
|
+#undef EP_INFO
|
|
|
};
|
|
};
|
|
|
-#define ep0name ep_names[0]
|
|
|
|
|
|
|
+
|
|
|
|
|
+#define ep0name ep_info[0].name
|
|
|
|
|
|
|
|
#define VBUS_POLL_TIMEOUT msecs_to_jiffies(1000)
|
|
#define VBUS_POLL_TIMEOUT msecs_to_jiffies(1000)
|
|
|
|
|
|
|
@@ -1831,7 +1850,8 @@ static int at91udc_probe(struct platform_device *pdev)
|
|
|
|
|
|
|
|
for (i = 0; i < NUM_ENDPOINTS; i++) {
|
|
for (i = 0; i < NUM_ENDPOINTS; i++) {
|
|
|
ep = &udc->ep[i];
|
|
ep = &udc->ep[i];
|
|
|
- ep->ep.name = ep_names[i];
|
|
|
|
|
|
|
+ ep->ep.name = ep_info[i].name;
|
|
|
|
|
+ ep->ep.caps = ep_info[i].caps;
|
|
|
ep->ep.ops = &at91_ep_ops;
|
|
ep->ep.ops = &at91_ep_ops;
|
|
|
ep->udc = udc;
|
|
ep->udc = udc;
|
|
|
ep->int_mask = BIT(i);
|
|
ep->int_mask = BIT(i);
|