diff options
author | Stephane D'Alu <sdalu@sdalu.com> | 2016-07-10 12:04:39 +0200 |
---|---|---|
committer | Stephane D'Alu <sdalu@sdalu.com> | 2016-07-10 12:04:39 +0200 |
commit | 6423c3dabeba4e4ed9217d71873653bc8af9ae4e (patch) | |
tree | b7b22ab995afbeda36cb7471f5e347c9097f5b17 /os | |
parent | 3db81f7f03844057a6d4150e2c66a81a772df16d (diff) | |
download | ChibiOS-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')
-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.c | 4 | ||||
-rw-r--r-- | os/hal/ports/NRF5/LLD/hal_st_lld.h | 4 | ||||
-rw-r--r-- | os/hal/ports/NRF5/NRF51822/hal_qei_lld.h | 10 | ||||
-rw-r--r-- | os/hal/ports/NRF5/NRF51822/platform.mk | 4 | ||||
-rw-r--r-- | os/hal/ports/NRF5/NRF52832/platform.mk | 6 |
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 |