summaryrefslogtreecommitdiff
path: root/tinyusb/host
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-01-22 17:41:06 +0700
committerhathach <[email protected]>2013-01-22 17:41:06 +0700
commit38ce3f7534ec9e3e0b10b8923d7d17e437463e86 (patch)
tree4eb3c2e065610c6b1dadc14a9c98e421041c5546 /tinyusb/host
parentcfe7a3d23b4639c3578b166fc865450bc439d82c (diff)
start to support
- usbd host - osal some global define #define TUSB_CFG_HOST_CONTROLLER_NUM #define TUSB_CFG_HOST_DEVICE_MAX #define TUSB_CFG_CONFIGURATION_MAX rename & refractor HID type structure & enum use CException to test asssertion library add test for hid_host_keyboard with usbd configure get & osal queue get stubs update test for assertion library refractor ASSERT_STATUS in assertion library update tusb_error_t values rename usb basic type & enum in tusb_types.h and std_descriptors.h
Diffstat (limited to 'tinyusb/host')
-rw-r--r--tinyusb/host/hcd.h4
-rw-r--r--tinyusb/host/usbd_host.c55
-rw-r--r--tinyusb/host/usbd_host.h136
3 files changed, 195 insertions, 0 deletions
diff --git a/tinyusb/host/hcd.h b/tinyusb/host/hcd.h
index 1e5b338ae..63749d75b 100644
--- a/tinyusb/host/hcd.h
+++ b/tinyusb/host/hcd.h
@@ -58,6 +58,9 @@
#include "common/common.h"
#include "core/tusb_types.h"
+typedef uint32_t pipe_handle_t;
+
+#if 0
/** \brief Initialize HCD
*
* \param[in] para1
@@ -75,6 +78,7 @@ tusb_error_t hcd_init(uint8_t hostid) ATTR_WARN_UNUSED_RESULT;
tusb_error_t hcd_pipe_close()ATTR_WARN_UNUSED_RESULT;
tusb_error_t hcd_pipe_transfer()ATTR_WARN_UNUSED_RESULT;
tusb_error_t hcd_pipe_cancel()ATTR_WARN_UNUSED_RESULT;
+#endif
#ifdef __cplusplus
}
diff --git a/tinyusb/host/usbd_host.c b/tinyusb/host/usbd_host.c
new file mode 100644
index 000000000..1f05fbcfb
--- /dev/null
+++ b/tinyusb/host/usbd_host.c
@@ -0,0 +1,55 @@
+/*
+ * usbd_host.c
+ *
+ * Created on: Jan 19, 2013
+ * Author: hathach
+ */
+
+/*
+ * Software License Agreement (BSD License)
+ * Copyright (c) 2012, hathach (tinyusb.net)
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 tiny usb stack.
+ */
+
+#include "usbd_host.h"
+
+#ifdef TUSB_CFG_HOST
+
+#if 0
+tusb_error_t tusbh_keyboard_open(tusb_handle_device_t device_hdl, uint8_t configure_num, tusb_handle_keyboard_t *keyboard_hdl)
+{
+ ASSERT(device_hdl < TUSB_CFG_HOST_DEVICE_MAX, TUSB_ERROR_INVALID_PARA);
+ ASSERT_INT_WITHIN(1, TUSB_CFG_CONFIGURATION_MAX, configure_num, TUSB_ERROR_INVALID_PARA);
+ ASSERT_PTR(keyboard_hdl, TUSB_ERROR_INVALID_PARA);
+
+ return TUSB_ERROR_NONE;
+}
+#endif
+
+tusb_device_info_t usbh_device_pool[TUSB_CFG_HOST_DEVICE_MAX];
+
+#endif
diff --git a/tinyusb/host/usbd_host.h b/tinyusb/host/usbd_host.h
new file mode 100644
index 000000000..e6ac3c2da
--- /dev/null
+++ b/tinyusb/host/usbd_host.h
@@ -0,0 +1,136 @@
+/*
+ * usbd_host.h
+ *
+ * Created on: Jan 19, 2013
+ * Author: hathach
+ */
+
+/*
+ * Software License Agreement (BSD License)
+ * Copyright (c) 2012, hathach (tinyusb.net)
+ * 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. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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 tiny usb stack.
+ */
+
+/** \file
+ * \brief TBD
+ *
+ * \note TBD
+ */
+
+/** \ingroup TBD
+ * \defgroup TBD
+ * \brief TBD
+ *
+ * @{
+ */
+
+#ifndef _TUSB_USBD_HOST_H_
+#define _TUSB_USBD_HOST_H_
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#include "hcd.h"
+
+typedef struct {
+ pipe_handle_t pipe_in;
+ osal_queue_id_t qid;
+}hid_info_t;
+
+typedef struct {
+ uint8_t interface_num;
+ uint8_t attributes;
+
+ struct {
+ hid_info_t hid_keyboard;
+ // hid_info_t hid_mouse;
+ // hid_info_t hid_generic;
+ } classes;
+} tusb_configure_info_t;
+
+typedef struct {
+ uint8_t core_id;
+ uint8_t configure_num;
+ uint8_t configure_active; // TODO CONFIG multiple only
+
+#if 0 // TODO allow configure for vendor/product
+ uint16_t vendor_id;
+ uint16_t product_id;
+#endif
+
+ tusb_configure_info_t configuration[TUSB_CFG_CONFIGURATION_MAX];
+} tusb_device_info_t;
+
+//--------------------------------------------------------------------+
+// Structures & Types
+//--------------------------------------------------------------------+
+typedef uint32_t tusb_handle_device_t;
+typedef uint32_t tusb_handle_configure_t;
+
+typedef struct {
+ uint8_t device_id;
+ uint8_t configure_num;
+} _tusb_handle_configure_t;
+
+//--------------------------------------------------------------------+
+// APPLICATION API
+//--------------------------------------------------------------------+
+void tusbh_device_mounted_cb (tusb_error_t error, tusb_handle_device_t device_hdl, uint32_t *configure_flags, uint8_t number_of_configure);
+
+tusb_error_t tusbh_configuration_set (tusb_handle_device_t const device_hdl, uint8_t const configure_number, tusb_handle_configure_t *configure_hdl);
+
+//tusb_error_t tusbh_configure_get (tusb_handle_device_t device_hdl, uint8_t configure_number, tusb_handle_configure_t *configure_handle);
+//tusb_error_t tusbh_class_open (tusb_handle_device_t device_hdl, uint8_t class, tusb_handle_class_t *interface_handle);
+//tusb_error_t tusbh_interface_get_info(tusb_handle_interface_t interface_handle, tusb_descriptor_interface_t *interface_desc);
+
+// TODO hiding from application include
+//--------------------------------------------------------------------+
+// CLASS API
+//--------------------------------------------------------------------+
+tusb_error_t usbh_configure_info_get (tusb_handle_configure_t configure_hdl, tusb_configure_info_t **pp_configure_info);
+
+#if 0
+void tusbh_usbd_mounted(tusb_error_t error, tusb_handle_device_t device_hdl);
+
+tusb_error_t tusbh_usbd_get_configiure (tusb_handle_device_t device_hdl , tusb_handle_configure_t *configure_hdl);
+tusb_error_t tusbh_usbd_get_configiure_next (tusb_handle_configure_t prev_hdl , tusb_handle_configure_t *next_hdl);
+
+tusb_error_t tusbh_usbd_get_interface (tusb_handle_configure_t configure_hdl , tusb_handle_interface_t *interface_hdl);
+tusb_error_t tusbh_usbd_get_interface_next (tusb_handle_interface_t prev_hdl , tusb_handle_interface_t *next_hdl);
+tusb_error_t tusbh_usbd_get_interface_alternate (tusb_handle_interface_t current_hdl , tusb_handle_interface_t *alternate_hdl);
+#endif
+
+
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_USBD_HOST_H_ */
+
+/** @} */