Browse Source

fix #53 use nrfx_usbd_errata.h

hathach 7 years ago
parent
commit
64bed848d0

+ 1 - 1
examples/device/cdc_msc_hid/ses/nrf5x/nrf5x.emProject

@@ -20,7 +20,7 @@
       arm_target_interface_type="SWD"
       build_treat_warnings_as_errors="Yes"
       c_preprocessor_definitions="NRF52840_XXAA;__nRF_FAMILY;ARM_MATH_CM4;FLASH_PLACEMENT=1;CFG_TUSB_MCU=OPT_MCU_NRF5X"
-      c_user_include_directories="../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(nrfxDir)/..;$(nrfxDir);$(nrfxDir)/mdk;$(nrfxDir)/hal;$(nrfxDir)/drivers/include"
+      c_user_include_directories="../../src;$(rootDir)/hw/cmsis/Include;$(rootDir)/hw;$(rootDir)/src;$(nrfxDir)/..;$(nrfxDir);$(nrfxDir)/mdk;$(nrfxDir)/hal;$(nrfxDir)/drivers/include;$(nrfxDir)/drivers/src"
       debug_register_definition_file="nrf52840_Registers.xml"
       debug_target_connection="J-Link"
       gcc_enable_all_warnings="Yes"

+ 1 - 0
hw/bsp/pca10056/board.mk

@@ -29,6 +29,7 @@ INC += \
 	-I$(TOP)/hw/mcu/nordic/nrfx/mdk \
 	-I$(TOP)/hw/mcu/nordic/nrfx/hal \
 	-I$(TOP)/hw/mcu/nordic/nrfx/drivers/include \
+	-I$(TOP)/hw/mcu/nordic/nrfx/drivers/src \
 
 SRC_S += hw/mcu/nordic/nrfx/mdk/gcc_startup_nrf52840.S
 

+ 6 - 6
src/portable/nordic/nrf5x/hal_nrf5x.c

@@ -32,7 +32,7 @@
 #include "nrf_gpio.h"
 #include "nrf_clock.h"
 #include "nrf_usbd.h"
-#include "nrf_drv_usbd_errata.h"
+#include "nrfx_usbd_errata.h"
 
 #ifdef SOFTDEVICE_PRESENT
 #include "nrf_sdm.h"
@@ -122,7 +122,7 @@ void tusb_hal_nrf_power_event (uint32_t event)
         /* Enable the peripheral */
         // ERRATA 171, 187, 166
 
-        if ( nrf_drv_usbd_errata_187() )
+        if ( nrfx_usbd_errata_187() )
         {
           // CRITICAL_REGION_ENTER();
           if ( *((volatile uint32_t *) (0x4006EC00)) == 0x00000000 )
@@ -138,7 +138,7 @@ void tusb_hal_nrf_power_event (uint32_t event)
           // CRITICAL_REGION_EXIT();
         }
 
-        if ( nrf_drv_usbd_errata_171() )
+        if ( nrfx_usbd_errata_171() )
         {
           // CRITICAL_REGION_ENTER();
           if ( *((volatile uint32_t *) (0x4006EC00)) == 0x00000000 )
@@ -168,7 +168,7 @@ void tusb_hal_nrf_power_event (uint32_t event)
       nrf_usbd_eventcause_clear(USBD_EVENTCAUSE_READY_Msk);
       nrf_usbd_event_clear(USBD_EVENTCAUSE_READY_Msk);
 
-      if ( nrf_drv_usbd_errata_171() )
+      if ( nrfx_usbd_errata_171() )
       {
         // CRITICAL_REGION_ENTER();
         if ( *((volatile uint32_t *) (0x4006EC00)) == 0x00000000 )
@@ -185,7 +185,7 @@ void tusb_hal_nrf_power_event (uint32_t event)
         // CRITICAL_REGION_EXIT();
       }
 
-      if ( nrf_drv_usbd_errata_187() )
+      if ( nrfx_usbd_errata_187() )
       {
         // CRITICAL_REGION_ENTER();
         if ( *((volatile uint32_t *) (0x4006EC00)) == 0x00000000 )
@@ -201,7 +201,7 @@ void tusb_hal_nrf_power_event (uint32_t event)
         // CRITICAL_REGION_EXIT();
       }
 
-      if ( nrf_drv_usbd_errata_166() )
+      if ( nrfx_usbd_errata_166() )
       {
         *((volatile uint32_t *) (NRF_USBD_BASE + 0x800)) = 0x7E3;
         *((volatile uint32_t *) (NRF_USBD_BASE + 0x804)) = 0x40;

+ 0 - 210
src/portable/nordic/nrf5x/nrf_drv_usbd_errata.h

@@ -1,210 +0,0 @@
-/**
- * Copyright (c) 2017 - 2018, Nordic Semiconductor ASA
- *
- * 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, except as embedded into a Nordic
- *    Semiconductor ASA integrated circuit in a product or a software update for
- *    such product, 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 Nordic Semiconductor ASA nor the names of its
- *    contributors may be used to endorse or promote products derived from this
- *    software without specific prior written permission.
- *
- * 4. This software, with or without modification, must only be used with a
- *    Nordic Semiconductor ASA integrated circuit.
- *
- * 5. Any software provided in binary form under this license must not be reverse
- *    engineered, decompiled, modified and/or disassembled.
- *
- * THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS 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.
- *
- */
-
-#ifndef NRF_DRV_USBD_ERRATA_H__
-#define NRF_DRV_USBD_ERRATA_H__
-
-#include <stdbool.h>
-/**
- * @defgroup nrf_drv_usbd_errata Functions to check if selected PAN is present in current chip
- * @{
- * @ingroup nrf_drv_usbd
- *
- * Functions here are checking the presence of an error in current chip.
- * The checking is done at runtime based on the microcontroller version.
- * This file is subject to removal when nRF51840 prototype support is removed.
- */
-
-#ifndef NRF_DRV_USBD_ERRATA_ENABLE
-/**
- * @brief The constant that informs if errata should be enabled at all
- *
- * If this constant is set to 0, all the Errata bug fixes will be automatically disabled.
- */
-#define NRF_DRV_USBD_ERRATA_ENABLE 1
-#endif
-
-/**
- * @brief Internal auxiliary function to check if the program is running on NRF52840 chip
- * @retval true  It is NRF52480 chip
- * @retval false It is other chip
- */
-static inline bool nrf_drv_usbd_errata_type_52840(void)
-{
-    return (*(uint32_t *)0x10000130UL == 0x8UL);
-}
-
-/**
- * @brief Internal auxiliary function to check if the program is running on Engineering A revision
- * @retval true  It is NRF52480 chip and it is Engineering A revision
- * @retval false It is other chip
- */
-static inline bool nrf_drv_usbd_errata_type_52840_eng_a(void)
-{
-    return (nrf_drv_usbd_errata_type_52840() && (*(uint32_t *)0x10000134UL == 0x0UL));
-}
-
-/**
- * @brief Internal auxiliary function to check if the program is running on Engineering B revision
- * @retval true  It is NRF52480 chip and it is Engineering B revision
- * @retval false It is other chip
- */
-static inline bool nrf_drv_usbd_errata_type_52840_eng_b(void)
-{
-    return (nrf_drv_usbd_errata_type_52840() && (*(uint32_t *)0x10000134UL == 0x1UL));
-}
-
-/**
- * @brief Internal auxiliary function to check if the program is running on Engineering C revision
- * @retval true  It is NRF52480 chip and it is Engineering C revision
- * @retval false It is other chip
- */
-static inline bool nrf_drv_usbd_errata_type_52840_eng_c(void)
-{
-    return (nrf_drv_usbd_errata_type_52840() && (*(uint32_t *)0x10000134UL == 0x2UL));
-}
-
-/**
- * @brief Internal auxiliary function to check if the program is running on Engineering D revision
- * @retval true  It is NRF52480 chip and it is Engineering D revision
- * @retval false It is other chip
- */
-static inline bool nrf_drv_usbd_errata_type_52840_eng_d(void)
-{
-    return (nrf_drv_usbd_errata_type_52840() && (*(uint32_t *)0x10000134UL == 0x3UL));
-}
-
-/**
- * @brief Function to check if chip requires errata 104
- *
- * Errata: USBD: EPDATA event is not always generated.
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usbd_errata_104(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_eng_a());
-}
-
-/**
- * @brief Function to check if chip requires errata 154
- *
- * Errata: During setup read/write transfer USBD acknowledges setup stage without SETUP task.
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usbd_errata_154(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_eng_a());
-}
-
-/**
- * @brief Function to check if chip requires errata 166
- *
- * Errata: ISO double buffering not functional
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usbd_errata_166(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && true);
-}
-
-/**
- * @brief Function to check if chip requires errata 171
- *
- * Errata: USBD might not reach its active state.
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usbd_errata_171(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && true);
-}
-
-/**
- * @brief Function to check if chip requires errata 187
- *
- * Errata: USB cannot be enabled
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usbd_errata_187(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && 
-            (nrf_drv_usbd_errata_type_52840_eng_b() ||
-             nrf_drv_usbd_errata_type_52840_eng_c() ||
-             nrf_drv_usbd_errata_type_52840_eng_d())
-           );
-}
-
-/**
- * @brief Function to check if chip requires errata 199
- *
- * Errata: USBD cannot receive tasks during DMA
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usb_errata_199(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && true);
-}
-
-/**
- * @brief Function to check if chip requires errata 200
- *
- * Errata: SIZE.EPOUT not writable
- *
- * @retval true  Errata should be implemented
- * @retval false Errata should not be implemented
- */
-static inline bool nrf_drv_usbd_errata_200(void)
-{
-    return (NRF_DRV_USBD_ERRATA_ENABLE && nrf_drv_usbd_errata_type_52840_eng_a());
-}
-
-/** @} */
-#endif /* NRF_DRV_USBD_ERRATA_H__ */