Explorar el Código

hal clean up

- replace tusb_hal_int_enable/disable to dcd_int_enable/disable,
hcd_int_enable/disable
- remove tusb_hal_init(), this will be part of dcd_init/hcd_init,
anything beyond dcd/hcd should be inited by bsp
hathach hace 7 años
padre
commit
a73017fdc2

+ 4 - 13
doxygen/porting.md

@@ -59,19 +59,6 @@ The OPT_OS_NONE option is the only option which requires an MCU specific functio
 
 `tusb_hal_millis` is also provided in `hw/bsp/<board name>/board_<board name>.c` because it may vary with MCU use.
 
-### Hardware Abstraction Layer (HAL)
-The hardware abstraction layer is a minimal set of abstractions used in both Device and Host USB modes.
-
-The HAL implementations are located in `src/portable/<vendor>/<chip family>/hal_<chip family>.c`.
-
-#### tusb_hal_init
-
-The HAL init is responsible for configuring common settings of USB peripheral such as pad calibration.
-
-#### tusb_hal_int_enable / tusb_hal_int_disable
-
-Enables or disables the USB interrupt(s). May be used to prevent concurrency issues when mutating data structures shared between main code and the interrupt handler.
-
 ### Device API
 
 After the USB device is setup, the USB device code works by processing events on the main thread (by calling `tusb_task`). These events are queued by the USB interrupt handler. So, there are three parts to the device low-level API: device setup, endpoint setup and interrupt processing.
@@ -83,6 +70,10 @@ All of the code for the low-level device API is in `src/portable/<vendor>/<chip
 ##### dcd_init
 Initializes the USB peripheral for device mode and enables it.
 
+#### dcd_int_enable / dcd_int_disable
+
+Enables or disables the USB device interrupt(s). May be used to prevent concurrency issues when mutating data structures shared between main code and the interrupt handler.
+
 ##### dcd_set_address
 Called when the device is given a new bus address.
 

+ 2 - 0
hw/bsp/ea4357/board_ea4357.c

@@ -188,6 +188,7 @@ void board_init(void)
 
   // Reset controller
   LPC_USB0->USBCMD_D |= 0x02;
+  while( LPC_USB0->USBCMD_D & 0x02 ) {}
 
   // Set mode
   #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
@@ -204,6 +205,7 @@ void board_init(void)
 
   // Reset controller
   LPC_USB1->USBCMD_D |= 0x02;
+  while( LPC_USB1->USBCMD_D & 0x02 ) {}
 
   // Set mode
   #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST

+ 2 - 0
hw/bsp/mcb1800/board_mcb1800.c

@@ -159,6 +159,7 @@ void board_init(void)
 
   // Reset controller
   LPC_USB0->USBCMD_D |= 0x02;
+  while( LPC_USB0->USBCMD_D & 0x02 ) {}
 
   // Set mode
   #if CFG_TUSB_RHPORT0_MODE & OPT_MODE_HOST
@@ -175,6 +176,7 @@ void board_init(void)
 
   // Reset controller
   LPC_USB1->USBCMD_D |= 0x02;
+  while( LPC_USB1->USBCMD_D & 0x02 ) {}
 
   // Set mode
   #if CFG_TUSB_RHPORT1_MODE & OPT_MODE_HOST

+ 12 - 9
src/device/usbd.c

@@ -190,23 +190,26 @@ bool tud_mounted(void)
 //--------------------------------------------------------------------+
 tusb_error_t usbd_init (void)
 {
+  // Init device queue & task
+  _usbd_q = osal_queue_create(&_usbd_qdef);
+  TU_VERIFY(_usbd_q, TUSB_ERROR_OSAL_QUEUE_FAILED);
+
+  osal_task_create(&_usbd_task_def);
+
+  // Init class drivers
+  for (uint8_t i = 0; i < USBD_CLASS_DRIVER_COUNT; i++) usbd_class_drivers[i].init();
+
+  // Init device controller driver
   #if (CFG_TUSB_RHPORT0_MODE & OPT_MODE_DEVICE)
   dcd_init(0);
+  dcd_int_enable(0);
   #endif
 
   #if (CFG_TUSB_RHPORT1_MODE & OPT_MODE_DEVICE)
   dcd_init(1);
+  dcd_int_enable(1);
   #endif
 
-  //------------- Task init -------------//
-  _usbd_q = osal_queue_create(&_usbd_qdef);
-  TU_VERIFY(_usbd_q, TUSB_ERROR_OSAL_QUEUE_FAILED);
-
-  osal_task_create(&_usbd_task_def);
-
-  //------------- class init -------------//
-  for (uint8_t i = 0; i < USBD_CLASS_DRIVER_COUNT; i++) usbd_class_drivers[i].init();
-
   return TUSB_ERROR_NONE;
 }
 

+ 26 - 0
src/portable/microchip/samd21/dcd_samd21.c

@@ -72,6 +72,20 @@ static void bus_reset(void) {
 bool dcd_init (uint8_t rhport)
 {
   (void) rhport;
+
+  // Reset to get in a clean state.
+  USB->DEVICE.CTRLA.bit.SWRST = true;
+  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 0) {}
+  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 1) {}
+
+  USB->DEVICE.PADCAL.bit.TRANSP = (*((uint32_t*) USB_FUSES_TRANSP_ADDR) & USB_FUSES_TRANSP_Msk) >> USB_FUSES_TRANSP_Pos;
+  USB->DEVICE.PADCAL.bit.TRANSN = (*((uint32_t*) USB_FUSES_TRANSN_ADDR) & USB_FUSES_TRANSN_Msk) >> USB_FUSES_TRANSN_Pos;
+  USB->DEVICE.PADCAL.bit.TRIM = (*((uint32_t*) USB_FUSES_TRIM_ADDR) & USB_FUSES_TRIM_Msk) >> USB_FUSES_TRIM_Pos;
+
+  USB->DEVICE.QOSCTRL.bit.CQOS = USB_QOSCTRL_CQOS_HIGH_Val;
+  USB->DEVICE.QOSCTRL.bit.DQOS = USB_QOSCTRL_DQOS_HIGH_Val;
+
+  // Configure registers
   USB->DEVICE.DESCADD.reg = (uint32_t) &sram_registers;
   USB->DEVICE.CTRLB.reg = USB_DEVICE_CTRLB_SPDCONF_FS;
   USB->DEVICE.CTRLA.reg = USB_CTRLA_MODE_DEVICE | USB_CTRLA_ENABLE | USB_CTRLA_RUNSTDBY;
@@ -82,6 +96,18 @@ bool dcd_init (uint8_t rhport)
   return true;
 }
 
+void dcd_int_enable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_EnableIRQ(USB_IRQn);
+}
+
+void dcd_int_disable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_DisableIRQ(USB_IRQn);
+}
+
 void dcd_set_address (uint8_t rhport, uint8_t dev_addr)
 {
   (void) rhport;

+ 0 - 81
src/portable/microchip/samd21/hal_samd21.c

@@ -1,81 +0,0 @@
-/**************************************************************************/
-/*!
-    @file     hal_nrf5x.c
-    @author   hathach
-
-    @section LICENSE
-
-    Software License Agreement (BSD License)
-
-    Copyright (c) 2018, 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 TUSB_OPT_DEVICE_ENABLED && CFG_TUSB_MCU == OPT_MCU_SAMD21
-
-#include "sam.h"
-
-#include "tusb_hal.h"
-
-
-/*------------------------------------------------------------------*/
-/* TUSB HAL
- *------------------------------------------------------------------*/
-bool tusb_hal_init(void)
-{
-  // Reset to get in a clean state.
-  USB->DEVICE.CTRLA.bit.SWRST = true;
-  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 0) {}
-  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 1) {}
-
-  USB->DEVICE.PADCAL.bit.TRANSP = (*((uint32_t*) USB_FUSES_TRANSP_ADDR) & USB_FUSES_TRANSP_Msk) >> USB_FUSES_TRANSP_Pos;
-  USB->DEVICE.PADCAL.bit.TRANSN = (*((uint32_t*) USB_FUSES_TRANSN_ADDR) & USB_FUSES_TRANSN_Msk) >> USB_FUSES_TRANSN_Pos;
-  USB->DEVICE.PADCAL.bit.TRIM = (*((uint32_t*) USB_FUSES_TRIM_ADDR) & USB_FUSES_TRIM_Msk) >> USB_FUSES_TRIM_Pos;
-
-  USB->DEVICE.QOSCTRL.bit.CQOS = USB_QOSCTRL_CQOS_HIGH_Val;
-  USB->DEVICE.QOSCTRL.bit.DQOS = USB_QOSCTRL_DQOS_HIGH_Val;
-
-  tusb_hal_int_enable(0);
-  return true;
-}
-
-void tusb_hal_int_enable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_EnableIRQ(USB_IRQn);
-}
-
-void tusb_hal_int_disable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_DisableIRQ(USB_IRQn);
-}
-
-#endif

+ 31 - 0
src/portable/microchip/samd51/dcd_samd51.c

@@ -73,6 +73,19 @@ bool dcd_init (uint8_t rhport)
 {
   (void) rhport;
 
+  // Reset to get in a clean state.
+  USB->DEVICE.CTRLA.bit.SWRST = true;
+  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 0) {}
+  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 1) {}
+
+  USB->DEVICE.PADCAL.bit.TRANSP = (*((uint32_t*) USB_FUSES_TRANSP_ADDR) & USB_FUSES_TRANSP_Msk) >> USB_FUSES_TRANSP_Pos;
+  USB->DEVICE.PADCAL.bit.TRANSN = (*((uint32_t*) USB_FUSES_TRANSN_ADDR) & USB_FUSES_TRANSN_Msk) >> USB_FUSES_TRANSN_Pos;
+  USB->DEVICE.PADCAL.bit.TRIM = (*((uint32_t*) USB_FUSES_TRIM_ADDR) & USB_FUSES_TRIM_Msk) >> USB_FUSES_TRIM_Pos;
+
+  USB->DEVICE.QOSCTRL.bit.CQOS = 3;
+  USB->DEVICE.QOSCTRL.bit.DQOS = 3;
+
+  // Configure registers
   USB->DEVICE.DESCADD.reg = (uint32_t) &sram_registers;
   USB->DEVICE.CTRLB.reg = USB_DEVICE_CTRLB_SPDCONF_FS;
   USB->DEVICE.CTRLA.reg = USB_CTRLA_MODE_DEVICE | USB_CTRLA_ENABLE | USB_CTRLA_RUNSTDBY;
@@ -82,6 +95,24 @@ bool dcd_init (uint8_t rhport)
   return true;
 }
 
+void dcd_int_enable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_EnableIRQ(USB_0_IRQn);
+  NVIC_EnableIRQ(USB_1_IRQn);
+  NVIC_EnableIRQ(USB_2_IRQn);
+  NVIC_EnableIRQ(USB_3_IRQn);
+}
+
+void dcd_int_disable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_DisableIRQ(USB_3_IRQn);
+  NVIC_DisableIRQ(USB_2_IRQn);
+  NVIC_DisableIRQ(USB_1_IRQn);
+  NVIC_DisableIRQ(USB_0_IRQn);
+}
+
 void dcd_set_address (uint8_t rhport, uint8_t dev_addr)
 {
   (void) rhport;

+ 0 - 86
src/portable/microchip/samd51/hal_samd51.c

@@ -1,86 +0,0 @@
-/**************************************************************************/
-/*!
-    @file     hal_nrf5x.c
-    @author   hathach
-
-    @section LICENSE
-
-    Software License Agreement (BSD License)
-
-    Copyright (c) 2018, 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 TUSB_OPT_DEVICE_ENABLED && CFG_TUSB_MCU == OPT_MCU_SAMD51
-
-#include "sam.h"
-
-#include "tusb_hal.h"
-
-/*------------------------------------------------------------------*/
-/* TUSB HAL
- *------------------------------------------------------------------*/
-bool tusb_hal_init(void)
-{
-  // Reset to get in a clean state.
-  USB->DEVICE.CTRLA.bit.SWRST = true;
-  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 0) {}
-  while (USB->DEVICE.SYNCBUSY.bit.SWRST == 1) {}
-
-  USB->DEVICE.PADCAL.bit.TRANSP = (*((uint32_t*) USB_FUSES_TRANSP_ADDR) & USB_FUSES_TRANSP_Msk) >> USB_FUSES_TRANSP_Pos;
-  USB->DEVICE.PADCAL.bit.TRANSN = (*((uint32_t*) USB_FUSES_TRANSN_ADDR) & USB_FUSES_TRANSN_Msk) >> USB_FUSES_TRANSN_Pos;
-  USB->DEVICE.PADCAL.bit.TRIM = (*((uint32_t*) USB_FUSES_TRIM_ADDR) & USB_FUSES_TRIM_Msk) >> USB_FUSES_TRIM_Pos;
-
-  USB->DEVICE.QOSCTRL.bit.CQOS = 3;
-  USB->DEVICE.QOSCTRL.bit.DQOS = 3;
-
-  tusb_hal_int_enable(0);
-  return true;
-}
-
-void tusb_hal_int_enable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_EnableIRQ(USB_0_IRQn);
-  NVIC_EnableIRQ(USB_1_IRQn);
-  NVIC_EnableIRQ(USB_2_IRQn);
-  NVIC_EnableIRQ(USB_3_IRQn);
-}
-
-void tusb_hal_int_disable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_DisableIRQ(USB_3_IRQn);
-  NVIC_DisableIRQ(USB_2_IRQn);
-  NVIC_DisableIRQ(USB_1_IRQn);
-  NVIC_DisableIRQ(USB_0_IRQn);
-}
-
-#endif

+ 12 - 0
src/portable/nordic/nrf5x/dcd_nrf5x.c

@@ -195,6 +195,18 @@ bool dcd_init (uint8_t rhport)
   return true;
 }
 
+void dcd_int_enable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_EnableIRQ(USBD_IRQn);
+}
+
+void dcd_int_disable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_DisableIRQ(USBD_IRQn);
+}
+
 void dcd_set_address (uint8_t rhport, uint8_t dev_addr)
 {
   (void) rhport;

+ 0 - 21
src/portable/nordic/nrf5x/hal_nrf5x.c

@@ -128,27 +128,6 @@ static void hfclk_disable(void)
   nrf_clock_task_trigger(NRF_CLOCK_TASK_HFCLKSTOP);
 }
 
-
-/*------------------------------------------------------------------*/
-/* TUSB HAL
- *------------------------------------------------------------------*/
-bool tusb_hal_init(void)
-{
-  return true;
-}
-
-void tusb_hal_int_enable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_EnableIRQ(USBD_IRQn);
-}
-
-void tusb_hal_int_disable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_DisableIRQ(USBD_IRQn);
-}
-
 /*------------------------------------------------------------------*/
 /* Controller Start up Sequence (USBD 51.4 specs)
  *------------------------------------------------------------------*/

+ 4 - 10
src/portable/nxp/lpc11_13_15/dcd_lpc11_13_15.c

@@ -139,24 +139,18 @@ static inline uint8_t ep_addr2id(uint8_t endpoint_addr)
 //--------------------------------------------------------------------+
 // CONTROLLER API
 //--------------------------------------------------------------------+
-void tusb_hal_int_enable(uint8_t rhport)
+void dcd_int_enable(uint8_t rhport)
 {
-  (void) rhport; // discard compiler's warning
+  (void) rhport;
   NVIC_EnableIRQ(USB0_IRQn);
 }
 
-void tusb_hal_int_disable(uint8_t rhport)
+void dcd_int_disable(uint8_t rhport)
 {
-  (void) rhport; // discard compiler's warning
+  (void) rhport;
   NVIC_DisableIRQ(USB0_IRQn);
 }
 
-bool tusb_hal_init(void)
-{
-  // TODO remove
-  return true;
-}
-
 void dcd_set_config(uint8_t rhport, uint8_t config_num)
 {
 

+ 12 - 0
src/portable/nxp/lpc17_40/dcd_lpc17_40.c

@@ -202,6 +202,18 @@ bool dcd_init(uint8_t rhport)
   return TUSB_ERROR_NONE;
 }
 
+void dcd_int_enable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_EnableIRQ(USB_IRQn);
+}
+
+void dcd_int_disable(uint8_t rhport)
+{
+  (void) rhport;
+  NVIC_DisableIRQ(USB_IRQn);
+}
+
 void dcd_set_address(uint8_t rhport, uint8_t dev_addr)
 {
   (void) rhport;

+ 0 - 20
src/portable/nxp/lpc17_40/hal_lpc17_40.c

@@ -42,26 +42,6 @@
 
 #include "chip.h"
 
-void tusb_hal_int_enable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_EnableIRQ(USB_IRQn);
-}
-
-void tusb_hal_int_disable(uint8_t rhport)
-{
-  (void) rhport;
-  NVIC_DisableIRQ(USB_IRQn);
-}
-
-//--------------------------------------------------------------------+
-// IMPLEMENTATION
-//--------------------------------------------------------------------+
-bool tusb_hal_init(void)
-{
-  return true;
-}
-
 void USB_IRQHandler(void)
 {
   extern void hal_dcd_isr(uint8_t rhport);

+ 9 - 2
src/portable/nxp/lpc18_43/dcd_lpc18_43.c

@@ -158,10 +158,17 @@ bool dcd_init(uint8_t rhport)
   lpc_usb->USBCMD_D &= ~0x00FF0000; // Interrupt Threshold Interval = 0
   lpc_usb->USBCMD_D |= BIT_(0); // connect
 
-  // enable interrupt
+  return true;
+}
+
+void dcd_int_enable(uint8_t rhport)
+{
   NVIC_EnableIRQ(rhport ? USB1_IRQn : USB0_IRQn);
+}
 
-  return true;
+void dcd_int_disable(uint8_t rhport)
+{
+  NVIC_DisableIRQ(rhport ? USB1_IRQn : USB0_IRQn);
 }
 
 //--------------------------------------------------------------------+

+ 0 - 15
src/portable/nxp/lpc18_43/hal_lpc18_43.c

@@ -42,21 +42,6 @@
 
 #include "chip.h"
 
-void tusb_hal_int_enable(uint8_t rhport)
-{
-  NVIC_EnableIRQ(rhport ? USB1_IRQn : USB0_IRQn);
-}
-
-void tusb_hal_int_disable(uint8_t rhport)
-{
-  NVIC_DisableIRQ(rhport ? USB1_IRQn : USB0_IRQn);
-}
-
-bool tusb_hal_init(void)
-{
-  return true;
-}
-
 void hal_dcd_isr(uint8_t rhport);
 
 #if CFG_TUSB_RHPORT0_MODE

+ 0 - 3
src/tusb.c

@@ -47,14 +47,11 @@
 
 static bool _initialized = false;
 
-
 tusb_error_t tusb_init(void)
 {
   // skip if already initialized
   if (_initialized) return TUSB_ERROR_NONE;
 
-  TU_VERIFY( tusb_hal_init(), TUSB_ERROR_FAILED ) ; // hardware init
-
 #if MODE_HOST_SUPPORTED
   TU_ASSERT_ERR( usbh_init() ); // host stack init
 #endif

+ 9 - 28
src/tusb_hal.h

@@ -51,55 +51,37 @@ extern "C" {
 //--------------------------------------------------------------------+
 // HAL API
 //--------------------------------------------------------------------+
-/** \ingroup group_mcu
- * \defgroup group_hal Hardware Abtract Layer (HAL)
- * Hardware Abstraction Layer (HAL) is an abstraction layer, between the physical hardware and the tinyusb stack.
- * Its function is to hide differences in hardware from most of MCUs, so that most of the stack code does not need to be changed to
- * run on systems with a different MCU.
- * HAL are sets of routines that emulate some platform-specific details, giving programs direct access to the hardware resources.
- *  @{ */
-
-/** \brief    Initialize USB controller hardware
- * \returns   true if succeeded
- * \note      This function is invoked by \ref tusb_init as part of the initialization.
- */
-bool tusb_hal_init(void);
-
-/** \brief 			Enable USB Interrupt on a specific USB Controller
- * \param[in]		rhport	is a zero-based index to identify USB controller's ID
- */
-void tusb_hal_int_enable(uint8_t rhport);
-
-/** \brief 			Disable USB Interrupt on a specific USB Controller
- * \param[in]		rhport	is a zero-based index to identify USB controller's ID
- */
-void tusb_hal_int_disable(uint8_t rhport);
 
 // Only required to implement if using No RTOS (osal_none)
 uint32_t tusb_hal_millis(void);
 
+// TODO remove
+extern void dcd_int_enable (uint8_t rhport);
+extern void dcd_int_disable(uint8_t rhport);
 
 // Enable all ports' interrupt
+// TODO remove
 static inline void tusb_hal_int_enable_all(void)
 {
 #ifdef CFG_TUSB_RHPORT0_MODE
-  tusb_hal_int_enable(0);
+  dcd_int_enable(0);
 #endif
 
 #ifdef CFG_TUSB_RHPORT0_MODE
-  tusb_hal_int_enable(1);
+  dcd_int_enable(1);
 #endif
 }
 
 // Disable all ports' interrupt
+// TODO remove
 static inline void tusb_hal_int_disable_all(void)
 {
 #ifdef CFG_TUSB_RHPORT0_MODE
-  tusb_hal_int_disable(0);
+  dcd_int_disable(0);
 #endif
 
 #ifdef CFG_TUSB_RHPORT0_MODE
-  tusb_hal_int_disable(1);
+  dcd_int_disable(1);
 #endif
 }
 
@@ -111,4 +93,3 @@ static inline void tusb_hal_int_disable_all(void)
 
 #endif /* _TUSB_HAL_H_ */
 
-/** @} */