summaryrefslogtreecommitdiff
path: root/tinyusb/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2018-03-22 15:55:35 +0700
committerhathach <[email protected]>2018-03-22 15:55:35 +0700
commit57a09b2fcefcf6aaa010665c775da9c426c6b299 (patch)
treeeb7146c96f25d2884928bc1d34cfeec542f72212 /tinyusb/class
parent7767a7f14c87e16bdffd6719e56538d240db379e (diff)
clean up cdc device
Diffstat (limited to 'tinyusb/class')
-rw-r--r--tinyusb/class/cdc/cdc_device.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/tinyusb/class/cdc/cdc_device.c b/tinyusb/class/cdc/cdc_device.c
index 914e8d036..75c1f2df3 100644
--- a/tinyusb/class/cdc/cdc_device.c
+++ b/tinyusb/class/cdc/cdc_device.c
@@ -57,7 +57,10 @@ typedef struct {
uint8_t interface_number;
cdc_acm_capability_t acm_capability;
bool connected;
- uint8_t ep_addr[3]; // notification, data in, data out
+
+ uint8_t ep_notif;
+ uint8_t ep_in;
+ uint8_t ep_out;
}cdcd_data_t;
// TODO multiple port
@@ -158,7 +161,7 @@ tusb_error_t cdcd_open(uint8_t port, tusb_descriptor_interface_t const * p_inter
{ // notification endpoint if any
TU_ASSERT( tusb_dcd_edpt_open(port, (tusb_descriptor_endpoint_t const *) p_desc), TUSB_ERROR_DCD_OPEN_PIPE_FAILED);
- p_cdc->ep_addr[CDC_PIPE_NOTIFICATION] = ((tusb_descriptor_endpoint_t const *) p_desc)->bEndpointAddress;
+ p_cdc->ep_notif = ((tusb_descriptor_endpoint_t const *) p_desc)->bEndpointAddress;
(*p_length) += p_desc[DESCRIPTOR_OFFSET_LENGTH];
p_desc = descriptor_next(p_desc);
@@ -182,10 +185,10 @@ tusb_error_t cdcd_open(uint8_t port, tusb_descriptor_interface_t const * p_inter
if ( p_endpoint->bEndpointAddress & TUSB_DIR_IN_MASK )
{
- p_cdc->ep_addr[CDC_PIPE_DATA_IN] = p_endpoint->bEndpointAddress;
+ p_cdc->ep_in = p_endpoint->bEndpointAddress;
}else
{
- p_cdc->ep_addr[CDC_PIPE_DATA_OUT] = p_endpoint->bEndpointAddress;
+ p_cdc->ep_out = p_endpoint->bEndpointAddress;
}
(*p_length) += p_desc[DESCRIPTOR_OFFSET_LENGTH];
@@ -196,7 +199,7 @@ tusb_error_t cdcd_open(uint8_t port, tusb_descriptor_interface_t const * p_inter
p_cdc->interface_number = p_interface_desc->bInterfaceNumber;
// Prepare for incoming data
- TU_ASSERT( tusb_dcd_edpt_xfer(port, p_cdc->ep_addr[CDC_PIPE_DATA_OUT], _tmp_rx_buf, sizeof(_tmp_rx_buf), true), TUSB_ERROR_DCD_EDPT_XFER);
+ TU_ASSERT( tusb_dcd_edpt_xfer(port, p_cdc->ep_out, _tmp_rx_buf, sizeof(_tmp_rx_buf), true), TUSB_ERROR_DCD_EDPT_XFER);
return TUSB_ERROR_NONE;
@@ -269,12 +272,12 @@ tusb_error_t cdcd_xfer_cb(uint8_t port, uint8_t ep_addr, tusb_event_t event, uin
{
cdcd_data_t const * p_cdc = &cdcd_data[port];
- if ( ep_addr == p_cdc->ep_addr[CDC_PIPE_DATA_OUT] )
+ if ( ep_addr == p_cdc->ep_out )
{
fifo_write_n(&_rx_ff, _tmp_rx_buf, xferred_bytes);
// preparing for next
- TU_ASSERT(tusb_dcd_edpt_xfer(port, p_cdc->ep_addr[CDC_PIPE_DATA_OUT], _tmp_rx_buf, sizeof(_tmp_rx_buf), true), TUSB_ERROR_DCD_EDPT_XFER);
+ TU_ASSERT(tusb_dcd_edpt_xfer(port, p_cdc->ep_out, _tmp_rx_buf, sizeof(_tmp_rx_buf), true), TUSB_ERROR_DCD_EDPT_XFER);
// fire callback
tud_cdc_rx_cb(port);
@@ -287,7 +290,7 @@ bool tud_n_cdc_flush (uint8_t port)
{
VERIFY( tud_n_cdc_connected(port) );
- uint8_t edpt = cdcd_data[port].ep_addr[CDC_PIPE_DATA_IN];
+ uint8_t edpt = cdcd_data[port].ep_in;
VERIFY( !tusb_dcd_edpt_busy(port, edpt) );