]> rtime.felk.cvut.cz Git - fpga/lx-cpu1/lx-dad.git/commitdiff
Compute USB engine event mask by function.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Tue, 28 Jul 2015 17:28:56 +0000 (19:28 +0200)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Thu, 30 Jul 2015 20:52:43 +0000 (22:52 +0200)
Signed-off-by: Pavel Pisa <ppisa@pikron.com>
sw/app/lx_dad/appl_usb.c

index fe970993000c1275b38ad1559fbcc8634abb7aa4..2f3d72474b19314d27427130235f06f865bc6930 100644 (file)
@@ -362,6 +362,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));
@@ -372,9 +388,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;