From fd49cff8e86608cd79e44d8d257e184b95c7dbdd Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 6 May 2013 20:09:06 +0700 Subject: add stub for msc host & hub driver --- tinyusb/host/hub.c | 62 ++++++++++++++++++++++++++++++++++++++++++++ tinyusb/host/hub.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++ tinyusb/host/usbh.c | 23 ++++++++++++----- 3 files changed, 152 insertions(+), 7 deletions(-) create mode 100644 tinyusb/host/hub.c create mode 100644 tinyusb/host/hub.h (limited to 'tinyusb/host') diff --git a/tinyusb/host/hub.c b/tinyusb/host/hub.c new file mode 100644 index 000000000..fc06db0a3 --- /dev/null +++ b/tinyusb/host/hub.c @@ -0,0 +1,62 @@ +/**************************************************************************/ +/*! + @file hub.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_HUB) + +#define _TINY_USB_SOURCE_FILE_ + +//--------------------------------------------------------------------+ +// INCLUDE +//--------------------------------------------------------------------+ +#include "hub.h" + +//--------------------------------------------------------------------+ +// MACRO CONSTANT TYPEDEF +//--------------------------------------------------------------------+ + +//--------------------------------------------------------------------+ +// INTERNAL OBJECT & FUNCTION DECLARATION +//--------------------------------------------------------------------+ + +//--------------------------------------------------------------------+ +// IMPLEMENTATION +//--------------------------------------------------------------------+ + +#endif diff --git a/tinyusb/host/hub.h b/tinyusb/host/hub.h new file mode 100644 index 000000000..5163693b3 --- /dev/null +++ b/tinyusb/host/hub.h @@ -0,0 +1,74 @@ +/**************************************************************************/ +/*! + @file hub.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_HUB_H_ +#define _TUSB_HUB_H_ + +#include "common/common.h" +#include "usbh.h" + +#ifdef __cplusplus + extern "C" { +#endif + +//#ifdef _TINY_USB_SOURCE_FILE_ + +//--------------------------------------------------------------------+ +// USBH-CLASS DRIVER API +//--------------------------------------------------------------------+ +void hub_init(void); +tusb_error_t hub_open_subtask(uint8_t dev_addr, tusb_descriptor_interface_t const *p_interface_desc, uint16_t *p_length) ATTR_WARN_UNUSED_RESULT; +void hub_isr(pipe_handle_t pipe_hdl, tusb_event_t event); +void hub_close(uint8_t dev_addr); + +//#endif + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_HUB_H_ */ + +/** @} */ diff --git a/tinyusb/host/usbh.c b/tinyusb/host/usbh.c index 2dd56110a..cda5418ff 100644 --- a/tinyusb/host/usbh.c +++ b/tinyusb/host/usbh.c @@ -66,19 +66,28 @@ static host_class_driver_t const usbh_class_drivers[TUSB_CLASS_MAX_CONSEC_NUMBER { #if HOST_CLASS_HID [TUSB_CLASS_HID] = { - .init = hidh_init, + .init = hidh_init, .open_subtask = hidh_open_subtask, - .isr = hidh_isr, - .close = hidh_close + .isr = hidh_isr, + .close = hidh_close }, #endif -#if TUSB_CFG_HOST_CLASS_MSC +#if TUSB_CFG_HOST_MSC [TUSB_CLASS_MSC] = { - .init = msch_init, + .init = msch_init, .open_subtask = msch_open_subtask, - .isr = msch_isr, - .close = msch_close + .isr = msch_isr, + .close = msch_close + } +#endif + +#if TUSB_CFG_HOST_HUB + [TUSB_CLASS_HUB] = { + .init = hub_init, + .open_subtask = hub_open_subtask, + .isr = hub_isr, + .close = hub_close } #endif -- cgit v1.3.1