|
|
@@ -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
|