summaryrefslogtreecommitdiff
path: root/src/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2022-12-14 23:19:47 +0700
committerhathach <[email protected]>2022-12-16 17:08:37 +0700
commitf62f97395626f316f1670f1777a0a75877e8e773 (patch)
tree7b031a941f14fcdbff84010fd0ae743cd624f6a2 /src/class
parentf0c51eae44e4cd8f38fdba6469e49b1d98100d7c (diff)
minor rename
Diffstat (limited to 'src/class')
-rw-r--r--src/class/cdc/cdc_host.c51
-rw-r--r--src/class/cdc/cdc_host.h26
-rw-r--r--src/class/hid/hid_host.c1
3 files changed, 63 insertions, 15 deletions
diff --git a/src/class/cdc/cdc_host.c b/src/class/cdc/cdc_host.c
index 83fa1bf5e..9678b756c 100644
--- a/src/class/cdc/cdc_host.c
+++ b/src/class/cdc/cdc_host.c
@@ -37,6 +37,7 @@
// MACRO CONSTANT TYPEDEF
//--------------------------------------------------------------------+
typedef struct {
+ // uint8_t daddr;
uint8_t itf_num;
uint8_t itf_protocol;
@@ -46,21 +47,42 @@ typedef struct {
cdc_acm_capability_t acm_capability;
-} cdch_data_t;
+ // Bit 0: DTR (Data Terminal Ready), Bit 1: RTS (Request to Send)
+ // uint8_t line_state;
+#if 0
+
+ // FIFO
+ tu_fifo_t rx_ff;
+ tu_fifo_t tx_ff;
+
+ uint8_t rx_ff_buf[CFG_TUH_CDC_RX_BUFSIZE];
+ uint8_t tx_ff_buf[CFG_TUH_CDC_TX_BUFSIZE];
+
+#if CFG_FIFO_MUTEX
+ osal_mutex_def_t rx_ff_mutex;
+ osal_mutex_def_t tx_ff_mutex;
+#endif
+
+ // Endpoint Transfer buffer
+ CFG_TUSB_MEM_ALIGN uint8_t epout_buf[CFG_TUH_CDC_EP_BUFSIZE];
+ CFG_TUSB_MEM_ALIGN uint8_t epin_buf[CFG_TUH_CDC_EP_BUFSIZE];
+#endif
+
+} cdch_interface_t;
//--------------------------------------------------------------------+
// INTERNAL OBJECT & FUNCTION DECLARATION
//--------------------------------------------------------------------+
-static cdch_data_t cdch_data[CFG_TUH_DEVICE_MAX];
+static cdch_interface_t cdch_data[CFG_TUH_DEVICE_MAX];
-static inline cdch_data_t* get_itf(uint8_t dev_addr)
+static inline cdch_interface_t* get_itf(uint8_t dev_addr)
{
return &cdch_data[dev_addr-1];
}
bool tuh_cdc_mounted(uint8_t dev_addr)
{
- cdch_data_t* cdc = get_itf(dev_addr);
+ cdch_interface_t* cdc = get_itf(dev_addr);
return cdc->ep_in && cdc->ep_out;
}
@@ -68,7 +90,7 @@ bool tuh_cdc_is_busy(uint8_t dev_addr, cdc_pipeid_t pipeid)
{
if ( !tuh_cdc_mounted(dev_addr) ) return false;
- cdch_data_t const * p_cdc = get_itf(dev_addr);
+ cdch_interface_t const * p_cdc = get_itf(dev_addr);
switch (pipeid)
{
@@ -89,6 +111,17 @@ bool tuh_cdc_is_busy(uint8_t dev_addr, cdc_pipeid_t pipeid)
//--------------------------------------------------------------------+
// APPLICATION API (parameter validation needed)
//--------------------------------------------------------------------+
+
+uint32_t tuh_cdc_write(uint8_t dev_addr, void const* buffer, uint32_t bufsize)
+{
+ (void) dev_addr;
+ (void) buffer;
+ (void) bufsize;
+
+ return 0;
+}
+
+
bool tuh_cdc_serial_is_mounted(uint8_t dev_addr)
{
// TODO consider all AT Command as serial candidate
@@ -122,7 +155,7 @@ bool tuh_cdc_receive(uint8_t dev_addr, void * p_buffer, uint32_t length, bool is
bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_xfer_cb_t complete_cb)
{
- cdch_data_t const * p_cdc = get_itf(dev_addr);
+ cdch_interface_t const * p_cdc = get_itf(dev_addr);
tusb_control_request_t const request =
{
@@ -164,7 +197,7 @@ void cdch_close(uint8_t dev_addr)
{
TU_VERIFY(dev_addr <= CFG_TUH_DEVICE_MAX, );
- cdch_data_t * p_cdc = get_itf(dev_addr);
+ cdch_interface_t * p_cdc = get_itf(dev_addr);
// Invoke application callback
if (tuh_cdc_umount_cb)
@@ -175,7 +208,7 @@ void cdch_close(uint8_t dev_addr)
}
}
- tu_memclr(p_cdc, sizeof(cdch_data_t));
+ tu_memclr(p_cdc, sizeof(cdch_interface_t));
}
bool cdch_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
@@ -200,7 +233,7 @@ bool cdch_open(uint8_t rhport, uint8_t dev_addr, tusb_desc_interface_t const *it
CDC_COMM_SUBCLASS_ABSTRACT_CONTROL_MODEL == itf_desc->bInterfaceSubClass &&
0xFF != itf_desc->bInterfaceProtocol);
- cdch_data_t * p_cdc = get_itf(dev_addr);
+ cdch_interface_t * p_cdc = get_itf(dev_addr);
p_cdc->itf_num = itf_desc->bInterfaceNumber;
p_cdc->itf_protocol = itf_desc->bInterfaceProtocol;
diff --git a/src/class/cdc/cdc_host.h b/src/class/cdc/cdc_host.h
index c3b601b34..ce1f0f309 100644
--- a/src/class/cdc/cdc_host.h
+++ b/src/class/cdc/cdc_host.h
@@ -34,19 +34,24 @@
#endif
//--------------------------------------------------------------------+
-// Application API
+// Class Driver Configuration
//--------------------------------------------------------------------+
-//------------- Application Callback -------------//
+//--------------------------------------------------------------------+
+// Application API
+//--------------------------------------------------------------------+
-// Invoked when a device with CDC interface is mounted
-TU_ATTR_WEAK void tuh_cdc_mount_cb(uint8_t dev_addr);
+bool tuh_cdc_mounted(uint8_t dev_addr);
-// Invoked when a device with CDC interface is unmounted
-TU_ATTR_WEAK void tuh_cdc_umount_cb(uint8_t dev_addr);
+uint32_t tuh_cdc_write(uint8_t dev_addr, void const* buffer, uint32_t bufsize);
+//uint32_t tuh_cdc_read(uint8_t dev_addr, void* buffer, uint32_t bufsize);
+//--------------------------------------------------------------------+
+// Control Endpoint (Request) API
+//--------------------------------------------------------------------+
+// Set Control Line State (DTR, RTS)
bool tuh_cdc_set_control_line_state(uint8_t dev_addr, bool dtr, bool rts, tuh_xfer_cb_t complete_cb);
static inline bool tuh_cdc_connect(uint8_t dev_addr, tuh_xfer_cb_t complete_cb)
@@ -59,6 +64,15 @@ static inline bool tuh_cdc_disconnect(uint8_t dev_addr, tuh_xfer_cb_t complete_c
return tuh_cdc_set_control_line_state(dev_addr, false, false, complete_cb);
}
+//------------- Application Callback -------------//
+
+// Invoked when a device with CDC interface is mounted
+TU_ATTR_WEAK void tuh_cdc_mount_cb(uint8_t dev_addr);
+
+// Invoked when a device with CDC interface is unmounted
+TU_ATTR_WEAK void tuh_cdc_umount_cb(uint8_t dev_addr);
+
+
/** \brief Check if device support CDC Serial interface or not
* \param[in] dev_addr device address
* \retval true if device supports
diff --git a/src/class/hid/hid_host.c b/src/class/hid/hid_host.c
index ca745464c..504ddca1e 100644
--- a/src/class/hid/hid_host.c
+++ b/src/class/hid/hid_host.c
@@ -62,6 +62,7 @@ typedef struct
hidh_interface_t instances[CFG_TUH_HID];
} hidh_device_t;
+CFG_TUSB_MEM_SECTION
static hidh_device_t _hidh_dev[CFG_TUH_DEVICE_MAX];
//------------- Internal prototypes -------------//