summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-06-29 16:06:45 +0700
committerhathach <[email protected]>2013-06-29 16:06:45 +0700
commit7e6e5cc35630d1d173df06701cbb310bd5f20a2a (patch)
tree385e3110ad922d76b45aea311a29a43e1d99cfbb
parentd4f31e149accff338592f2172a0cccc8372c837a (diff)
[CDC]
- add configure option - add include path - add driver function table
-rw-r--r--demos/host/src/tusb_config.h1
-rw-r--r--tinyusb/class/cdc_host.c82
-rw-r--r--tinyusb/class/cdc_host.h79
-rw-r--r--tinyusb/host/usbh.c9
-rw-r--r--tinyusb/tusb.h7
5 files changed, 176 insertions, 2 deletions
diff --git a/demos/host/src/tusb_config.h b/demos/host/src/tusb_config.h
index 48275bdb5..050bf3f59 100644
--- a/demos/host/src/tusb_config.h
+++ b/demos/host/src/tusb_config.h
@@ -77,6 +77,7 @@
#define TUSB_CFG_HOST_HID_MOUSE 1
#define TUSB_CFG_HOST_HID_GENERIC 0
#define TUSB_CFG_HOST_MSC 0
+#define TUSB_CFG_HOST_CDC 1
//--------------------------------------------------------------------+
// DEVICE CONFIGURATION
diff --git a/tinyusb/class/cdc_host.c b/tinyusb/class/cdc_host.c
new file mode 100644
index 000000000..ac99df184
--- /dev/null
+++ b/tinyusb/class/cdc_host.c
@@ -0,0 +1,82 @@
+/**************************************************************************/
+/*!
+ @file cdc_host.c
+ @author hathach (tinyusb.org)
+
+ @section LICENSE
+
+ Software License Agreement (BSD License)
+
+ Copyright (c) 2013, hathach (tinyusb.org)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holders nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This file is part of the tinyusb stack.
+*/
+/**************************************************************************/
+
+#include "tusb_option.h"
+
+#if (MODE_HOST_SUPPORTED && TUSB_CFG_HOST_CDC)
+
+#define _TINY_USB_SOURCE_FILE_
+
+//--------------------------------------------------------------------+
+// INCLUDE
+//--------------------------------------------------------------------+
+#include "common/common.h"
+#include "cdc_host.h"
+
+//--------------------------------------------------------------------+
+// MACRO CONSTANT TYPEDEF
+//--------------------------------------------------------------------+
+
+//--------------------------------------------------------------------+
+// INTERNAL OBJECT & FUNCTION DECLARATION
+//--------------------------------------------------------------------+
+
+//--------------------------------------------------------------------+
+// IMPLEMENTATION
+//--------------------------------------------------------------------+
+void cdch_init(void)
+{
+
+}
+
+tusb_error_t cdch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length)
+{
+ return TUSB_ERROR_NONE;
+}
+
+void cdch_isr(pipe_handle_t pipe_hdl, tusb_event_t event)
+{
+
+}
+
+void cdch_close(uint8_t dev_addr)
+{
+
+}
+
+#endif
diff --git a/tinyusb/class/cdc_host.h b/tinyusb/class/cdc_host.h
new file mode 100644
index 000000000..c9ad067ae
--- /dev/null
+++ b/tinyusb/class/cdc_host.h
@@ -0,0 +1,79 @@
+/**************************************************************************/
+/*!
+ @file cdc_host.h
+ @author hathach (tinyusb.org)
+
+ @section LICENSE
+
+ Software License Agreement (BSD License)
+
+ Copyright (c) 2013, hathach (tinyusb.org)
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ 3. Neither the name of the copyright holders nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ This file is part of the tinyusb stack.
+*/
+/**************************************************************************/
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_CDC_HOST_H_
+#define _TUSB_CDC_HOST_H_
+
+#include "common/common.h"
+#include "host/usbh.h"
+#include "cdc.h"
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+//--------------------------------------------------------------------+
+// APPLICATION PUBLIC API
+//--------------------------------------------------------------------+
+
+//--------------------------------------------------------------------+
+// USBH-CLASS API
+//--------------------------------------------------------------------+
+#ifdef _TINY_USB_SOURCE_FILE_
+
+void cdch_init(void);
+tusb_error_t cdch_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length) ATTR_WARN_UNUSED_RESULT;
+void cdch_isr(pipe_handle_t pipe_hdl, tusb_event_t event);
+void cdch_close(uint8_t dev_addr);
+
+#endif
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_CDC_HOST_H_ */
+
+/** @} */
diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c
index 90ee096cd..fa366cb66 100644
--- a/tinyusb/host/usbh.c
+++ b/tinyusb/host/usbh.c
@@ -65,6 +65,15 @@ static host_class_driver_t const usbh_class_drivers[TUSB_CLASS_MAPPED_INDEX_END]
},
#endif
+#if TUSB_CFG_HOST_CDC
+ [TUSB_CLASS_CDC] = {
+ .init = cdch_init,
+ .open_subtask = cdch_open_subtask,
+ .isr = cdch_isr,
+ .close = cdch_close
+ },
+#endif
+
#if TUSB_CFG_HOST_MSC
[TUSB_CLASS_MSC] = {
.init = msch_init,
diff --git a/tinyusb/tusb.h b/tinyusb/tusb.h
index 0e5ddc8ca..b06b0122e 100644
--- a/tinyusb/tusb.h
+++ b/tinyusb/tusb.h
@@ -63,11 +63,14 @@
#include "class/hid_host.h"
#endif
-// #define HOST_CLASS_MSC // FIXME hack to test massstorage class
- #ifdef HOST_CLASS_MSC
+ #if TUSB_CFG_HOST_MSC
#include "class/msc_host.h"
#endif
+ #if TUSB_CFG_HOST_CDC
+ #include "class/cdc_host.h"
+ #endif
+
#if TUSB_CFG_HOST_CUSTOM_CLASS
#include "class/custom_class.h"
#endif