aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/NRF5
diff options
context:
space:
mode:
authorStephane D'Alu <sdalu@sdalu.com>2016-07-10 12:04:39 +0200
committerStephane D'Alu <sdalu@sdalu.com>2016-07-10 12:04:39 +0200
commit6423c3dabeba4e4ed9217d71873653bc8af9ae4e (patch)
treeb7b22ab995afbeda36cb7471f5e347c9097f5b17 /os/hal/ports/NRF5
parent3db81f7f03844057a6d4150e2c66a81a772df16d (diff)
downloadChibiOS-Contrib-6423c3dabeba4e4ed9217d71873653bc8af9ae4e.tar.gz
ChibiOS-Contrib-6423c3dabeba4e4ed9217d71873653bc8af9ae4e.tar.bz2
ChibiOS-Contrib-6423c3dabeba4e4ed9217d71873653bc8af9ae4e.zip
moved rng to LLD directory.
removed rng power control (doesn't exist in nrf52, wasn't documented in nrf51) renamed peripheral to start at 0
Diffstat (limited to 'os/hal/ports/NRF5')
-rw-r--r--os/hal/ports/NRF5/LLD/hal_rng_lld.c (renamed from os/hal/ports/NRF5/NRF51822/hal_rng_lld.c)14
-rw-r--r--os/hal/ports/NRF5/LLD/hal_rng_lld.h (renamed from os/hal/ports/NRF5/NRF51822/hal_rng_lld.h)47
-rw-r--r--os/hal/ports/NRF5/LLD/hal_st_lld.c4
-rw-r--r--os/hal/ports/NRF5/LLD/hal_st_lld.h4
-rw-r--r--os/hal/ports/NRF5/NRF51822/hal_qei_lld.h10
-rw-r--r--os/hal/ports/NRF5/NRF51822/platform.mk4
-rw-r--r--os/hal/ports/NRF5/NRF52832/platform.mk6
7 files changed, 42 insertions, 47 deletions
diff --git a/os/hal/ports/NRF5/NRF51822/hal_rng_lld.c b/os/hal/ports/NRF5/LLD/hal_rng_lld.c
index d041cfa..5e85981 100644
--- a/os/hal/ports/NRF5/NRF51822/hal_rng_lld.c
+++ b/os/hal/ports/NRF5/LLD/hal_rng_lld.c
@@ -15,8 +15,8 @@
*/
/**
- * @file NRF51/NRF518221/rng_lld.c
- * @brief NRF51 RNG subsystem low level driver source.
+ * @file NRF5/LLD/hal_rng_lld.c
+ * @brief NRF5 RNG subsystem low level driver source.
*
* @addtogroup RNG
* @{
@@ -41,8 +41,8 @@ static const RNGConfig default_config = {
/* Driver exported variables. */
/*===========================================================================*/
-/** @brief RNG1 driver identifier.*/
-#if NRF5_RNG_USE_RNG1 || defined(__DOXYGEN__)
+/** @brief RNGD1 driver identifier.*/
+#if NRF5_RNG_USE_RNG0 || defined(__DOXYGEN__)
RNGDriver RNGD1;
#endif
@@ -87,9 +87,6 @@ void rng_lld_start(RNGDriver *rngp) {
if (rngp->config == NULL)
rngp->config = &default_config;
- /* Power on peripheric */
- rng->POWER = 1;
-
/* Configure digital error correction */
if (rngp->config->digital_error_correction)
rng->CONFIG |= RNG_CONFIG_DERCEN_Msk;
@@ -117,9 +114,8 @@ void rng_lld_start(RNGDriver *rngp) {
void rng_lld_stop(RNGDriver *rngp) {
NRF_RNG_Type *rng = rngp->rng;
- /* Stop and power off peripheric */
+ /* Stop peripheric */
rng->TASKS_STOP = 1;
- rng->POWER = 0;
}
diff --git a/os/hal/ports/NRF5/NRF51822/hal_rng_lld.h b/os/hal/ports/NRF5/LLD/hal_rng_lld.h
index feeaae4..9a9f471 100644
--- a/os/hal/ports/NRF5/NRF51822/hal_rng_lld.h
+++ b/os/hal/ports/NRF5/LLD/hal_rng_lld.h
@@ -15,8 +15,8 @@
*/
/**
- * @file NRF51/NRF51822/rng_lld.h
- * @brief NRF51 RNG subsystem low level driver header.
+ * @file NRF5/LLD/hal_rng_lld.h
+ * @brief NRF5 RNG subsystem low level driver header.
*
* @addtogroup RNG
* @{
@@ -40,28 +40,19 @@
* @{
*/
/**
- * @brief RNG1 driver enable switch.
- * @details If set to @p TRUE the support for RNG1 is included.
+ * @brief RNGD1 driver enable switch.
+ * @details If set to @p TRUE the support for RNGD1 is included.
* @note The default is @p FALSE.
*/
-#if !defined(NRF5_RNG_USE_RNG1) || defined(__DOXYGEN__)
-#define NRF5_RNG_USE_RNG1 FALSE
+#if !defined(NRF5_RNG_USE_RNG0) || defined(__DOXYGEN__)
+#define NRF5_RNG_USE_RNG0 FALSE
#endif
/**
- * @brief RNG1 driver enable switch.
- * @details If set to @p TRUE the support for RNG1 is included.
- * @note The default is @p FALSE.
+ * @brief RNG interrupt priority level setting for RNG0.
*/
-#if !defined(NRF5_RNG_USE_RNG1) || defined(__DOXYGEN__)
-#define NRF5_RNG_USE_POWER_ON_WRITE FALSE
-#endif
-
-/**
- * @brief RNG1 interrupt priority level setting.
- */
-#if !defined(NRF5_RNG_RNG1_IRQ_PRIORITY) || defined(__DOXYGEN__)
-#define NRF5_RNG_RNG1_IRQ_PRIORITY 3
+#if !defined(NRF5_RNG_RNG0_IRQ_PRIORITY) || defined(__DOXYGEN__)
+#define NRF5_RNG_RNG0_IRQ_PRIORITY 3
#endif
@@ -69,9 +60,13 @@
/* Derived constants and error checks. */
/*===========================================================================*/
-#if NRF5_RNG_USE_RNG1 && \
- !OSAL_IRQ_IS_VALID_PRIORITY(NRF5_RNG_RNG1_IRQ_PRIORITY)
-#error "Invalid IRQ priority assigned to RNG1"
+#if NRF5_RNG_USE_RNG0 == FALSE
+#error "Requesting RNG driver, but no RNG peripheric attached"
+#endif
+
+#if NRF5_RNG_USE_RNG0 && \
+ !OSAL_IRQ_IS_VALID_PRIORITY(NRF5_RNG_RNG0_IRQ_PRIORITY)
+#error "Invalid IRQ priority assigned to RNG0"
#endif
/*===========================================================================*/
@@ -96,9 +91,9 @@ typedef struct {
* speed advantage, but may result in a statistical distribution
* that is not perfectly uniform.
*
- * @note On average, it take 167µs to get a byte without digitial
- * error correction and 677µs with, but no garantee is made
- * on the necessary time to generate one byte.
+ * @note For nRF51, on average, it take 167µs to get a byte without
+ * digitial error correction and 677µs with, but no garantee
+ * is made on the necessary time to generate one byte.
*/
uint8_t digital_error_correction:1;
/**
@@ -148,9 +143,9 @@ struct RNGDriver {
/* External declarations. */
/*===========================================================================*/
-#if NRF5_RNG_USE_RNG1 && !defined(__DOXYGEN__)
+#if NRF5_RNG_USE_RNG0 && !defined(__DOXYGEN__)
extern RNGDriver RNGD1;
-#endif /* NRF5_RNG_USE_RNG1 */
+#endif /* NRF5_RNG_USE_RNG0 */
#ifdef __cplusplus
extern "C" {
diff --git a/os/hal/ports/NRF5/LLD/hal_st_lld.c b/os/hal/ports/NRF5/LLD/hal_st_lld.c
index 931f1a7..c78b4bb 100644
--- a/os/hal/ports/NRF5/LLD/hal_st_lld.c
+++ b/os/hal/ports/NRF5/LLD/hal_st_lld.c
@@ -275,8 +275,8 @@ void st_lld_init(void) {
NRF_TIMER0->TASKS_CLEAR = 1;
/*
- * Using 32-bit mode with prescaler 16 configures this
- * timer with a 1MHz clock.
+ * Using 32-bit mode with prescaler 1/16 configures this
+ * timer with a 1MHz clock, reducing power consumption.
*/
NRF_TIMER0->BITMODE = TIMER_BITMODE_BITMODE_32Bit;
NRF_TIMER0->PRESCALER = 4;
diff --git a/os/hal/ports/NRF5/LLD/hal_st_lld.h b/os/hal/ports/NRF5/LLD/hal_st_lld.h
index 3b4bf8e..9d67ce9 100644
--- a/os/hal/ports/NRF5/LLD/hal_st_lld.h
+++ b/os/hal/ports/NRF5/LLD/hal_st_lld.h
@@ -15,8 +15,8 @@
*/
/**
- * @file st_lld.h
- * @brief NRF51822 ST subsystem low level driver header.
+ * @file NRF5/LLD/st_lld.h
+ * @brief NRF5 ST subsystem low level driver header.
* @details This header is designed to be include-able without having to
* include other files from the HAL.
*
diff --git a/os/hal/ports/NRF5/NRF51822/hal_qei_lld.h b/os/hal/ports/NRF5/NRF51822/hal_qei_lld.h
index f9a87b0..6328bab 100644
--- a/os/hal/ports/NRF5/NRF51822/hal_qei_lld.h
+++ b/os/hal/ports/NRF5/NRF51822/hal_qei_lld.h
@@ -106,15 +106,15 @@
/* Derived constants and error checks. */
/*===========================================================================*/
-#if NRF5_QEI_USE_QDEC0 && \
- !OSAL_IRQ_IS_VALID_PRIORITY(NRF5_QEI_QDEC0_IRQ_PRIORITY)
-#error "Invalid IRQ priority assigned to QDEC0"
-#endif
-
#if NRF5_QEI_USE_QDEC0 == FALSE
#error "Requesting QEI driver, but no QDEC peripheric attached"
#endif
+#if NRF5_QEI_USE_QDEC0 && \
+ !OSAL_IRQ_IS_VALID_PRIORITY(NRF5_QEI_QDEC0_IRQ_PRIORITY)
+#error "Invalid IRQ priority assigned to QDEC0"
+#endif
+
/*===========================================================================*/
/* Driver data structures and types. */
diff --git a/os/hal/ports/NRF5/NRF51822/platform.mk b/os/hal/ports/NRF5/NRF51822/platform.mk
index ce42437..eff2f20 100644
--- a/os/hal/ports/NRF5/NRF51822/platform.mk
+++ b/os/hal/ports/NRF5/NRF51822/platform.mk
@@ -32,7 +32,7 @@ ifneq ($(findstring HAL_USE_WDG TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_wdg_lld.c
endif
ifneq ($(findstring HAL_USE_RNG TRUE,$(HALCONF)),)
-PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_rng_lld.c
+PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c
endif
ifneq ($(findstring HAL_USE_PWM TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_pwm_lld.c
@@ -53,7 +53,7 @@ PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_adc_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_gpt_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_wdg_lld.c \
- ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_rng_lld.c \
+ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_pwm_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF51822/hal_qei_lld.c
endif
diff --git a/os/hal/ports/NRF5/NRF52832/platform.mk b/os/hal/ports/NRF5/NRF52832/platform.mk
index 453abc9..855752c 100644
--- a/os/hal/ports/NRF5/NRF52832/platform.mk
+++ b/os/hal/ports/NRF5/NRF52832/platform.mk
@@ -12,12 +12,16 @@ endif
ifneq ($(findstring HAL_USE_SERIAL TRUE,$(HALCONF)),)
PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_serial_lld.c
endif
+ifneq ($(findstring HAL_USE_RNG TRUE,$(HALCONF)),)
+PLATFORMSRC += ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c
+endif
else
PLATFORMSRC = ${CHIBIOS}/os/hal/ports/common/ARMCMx/nvic.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/NRF52832/hal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_pal_lld.c \
${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_serial_lld.c \
- ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_st_lld.c
+ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_st_lld.c \
+ ${CHIBIOS_CONTRIB}/os/hal/ports/NRF5/LLD/hal_rng_lld.c
endif
# Required include directories