add nrf errata check temporarily part of hal_nrf

This commit is contained in:
hathach 2018-07-10 22:08:03 +07:00
parent f5652a0146
commit a0849fee9f
2 changed files with 44 additions and 2 deletions

View File

@ -42,7 +42,6 @@
#include "nrf_power.h"
#include "nrf_usbd.h"
#include "nrf_clock.h"
#include "nrf_drv_usbd_errata.h"
#include "device/dcd.h"
#include "device/usbd_pvt.h" // to use defer function helper

View File

@ -42,7 +42,6 @@
#include "nrf_gpio.h"
#include "nrf_clock.h"
#include "nrf_usbd.h"
#include "nrf_drv_usbd_errata.h"
#ifdef SOFTDEVICE_PRESENT
#include "nrf_sdm.h"
@ -70,6 +69,50 @@ enum {
*------------------------------------------------------------------*/
void tusb_hal_nrf_power_event(uint32_t event);
/*------------------------------------------------------------------*/
/* Errata check from nrf_drv_usbd_errata.h
*------------------------------------------------------------------*/
/**
* @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 *)0xF0000FE0) & 0xFF) == 0x08) &&
(((*(uint32_t *)0xF0000FE4) & 0x0F) == 0x0));
}
/**
* @brief Internal auxiliary function to check if the program is running on first final product of
* NRF52840 chip
* @retval true It is NRF52480 chip and it is first final product
* @retval false It is other chip
*/
static inline bool nrf_drv_usbd_errata_type_52840_fp1(void)
{
return ( nrf_drv_usbd_errata_type_52840() &&
( ((*(uint32_t *)0xF0000FE8) & 0xF0) == 0x20 ) &&
( ((*(uint32_t *)0xF0000FEC) & 0xF0) == 0x00 ) );
}
static inline bool nrf_drv_usbd_errata_166(void)
{
return true;
}
static inline bool nrf_drv_usbd_errata_171(void)
{
return true;
}
static inline bool nrf_drv_usbd_errata_187(void)
{
return nrf_drv_usbd_errata_type_52840_fp1();
}
/*------------------------------------------------------------------*/
/* HFCLK helper
*------------------------------------------------------------------*/