]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/lx-rocon.git/commitdiff
RoCoN: compute USB engine event mask by function.
authorPavel Pisa <ppisa@pikron.com>
Tue, 7 Jul 2015 15:11:59 +0000 (17:11 +0200)
committerPavel Pisa <ppisa@pikron.com>
Tue, 7 Jul 2015 15:11:59 +0000 (17:11 +0200)
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
sw/app/rocon/appl_usb.c

index 35a3edec308c3e3f50721372ed1724f62cfb301b..f96b1f0e3cf4a3dd27675f65f09fb27819e809f5 100644 (file)
@@ -538,6 +538,22 @@ int usb_app_fill_serial_number(uint32_t ul_sn)
   return 0;
 }
 
+static inline
+int usb_app_epnum2event_mask(int epnum)
+{
+  int evmask;
+  int evbit;
+  /* LPC17xx EP1RX 0x04, EP1TX 0x08, EP2RX 0x10, EP2TX 0x20 */
+
+  evbit = (epnum & ~USB_ENDPOINT_DIRECTION_MASK) * 2;
+  if (epnum & USB_ENDPOINT_DIRECTION_MASK)
+    evbit++;
+
+  evmask = 1 << evbit;
+
+  return evmask;
+}
+
 int usb_app_init(void)
 {
   memset(&usb_device, 0, sizeof(usb_device));
@@ -548,9 +564,9 @@ int usb_app_init(void)
   eps[CDC0_EPIDX_NOTIFY].epnum = CDC0_EP_NOTIFY;
   eps[CDC0_EPIDX_RXD].epnum = CDC0_EP_RXD;
   eps[CDC0_EPIDX_TXD].epnum = CDC0_EP_TXD;
-  eps[CDC0_EPIDX_NOTIFY].event_mask = 0x08;
-  eps[CDC0_EPIDX_RXD].event_mask = 0x10;
-  eps[CDC0_EPIDX_TXD].event_mask = 0x20;
+  eps[CDC0_EPIDX_NOTIFY].event_mask = usb_app_epnum2event_mask(CDC0_EP_NOTIFY); /* 0x08; */
+  eps[CDC0_EPIDX_RXD].event_mask = usb_app_epnum2event_mask(CDC0_EP_RXD); /* 0x10; */
+  eps[CDC0_EPIDX_TXD].event_mask = usb_app_epnum2event_mask(CDC0_EP_TXD); /* 0x20; */
   eps[CDC0_EPIDX_NOTIFY].udev = &usb_device;
   eps[CDC0_EPIDX_RXD].udev = &usb_device;
   eps[CDC0_EPIDX_TXD].udev = &usb_device;