From c70e52d5ffe0a2d637223cba4a43f1cc8a6ff366 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Tue, 28 Jul 2015 19:28:56 +0200 Subject: [PATCH] Compute USB engine event mask by function. Signed-off-by: Pavel Pisa --- sw/app/lx_dad/appl_usb.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/sw/app/lx_dad/appl_usb.c b/sw/app/lx_dad/appl_usb.c index fe97099..2f3d724 100644 --- a/sw/app/lx_dad/appl_usb.c +++ b/sw/app/lx_dad/appl_usb.c @@ -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; -- 2.39.2