Skip to content

Commit 11f57e5

Browse files
committed
nrfx 3.14.0 release
Signed-off-by: Nikodem Kastelik <nikodem.kastelik@nordicsemi.no>
1 parent b44c552 commit 11f57e5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+21398
-20669
lines changed

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,20 @@
11
# Changelog
22
All notable changes to this project are documented in this file.
33

4+
## [3.14.0] - 2025-08-22
5+
### Added
6+
- Added support for nRF54LS05B Eng A.
7+
- Added support for using the CRACEN driver without CRYPTOMASTER module.
8+
9+
### Changed
10+
- Updated MDK to version 8.72.2.
11+
12+
### Fixed
13+
- Fixed missing event clearing when setting limits in the SAADC driver.
14+
- Fixed missing disabling of the internal timer in case of switching modes in the SAADC driver.
15+
- Fixed missing brackets in NRFX_BITMASK_TO_BITPOS() macro.
16+
- Fixed incorrect offset in the PUBLISH and SUBSCRIBE register getters in the RADIO HAL.
17+
418
## [3.13.0] - 2025-07-18
519
### Added
620
- Added support for calibrating the LFRC peripheral on the nRF7120 Eng A SoC in the CLOCK driver.

doc/drv_supp_matrix.dox

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ The following matrix provides a comparative overview of which drivers are suppor
6767
| @ref nrf_ipc |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagGreenTick |@tagGreenTick |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |
6868
| @ref nrf_ipct |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagGreenTick |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |
6969
| @ref nrf_kmu |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagGreenTick |@tagGreenTick |@tagRedCross |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |
70-
| @ref nrf_lfrc |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |
7170
| @ref nrf_lpcomp |@tagGreenTick |@tagRedCross |@tagRedCross |@tagRedCross |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagRedCross |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |
7271
| @ref nrf_lrc |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagGreenTick |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |
7372
| @ref nrf_memconf |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagRedCross |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |@tagGreenTick |

doc/nrf7120_enga.dox

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ For a complete overview, see @ref nrfx_drv_supp_matrix.
4040

4141
@ref nrf_kmu
4242

43-
@ref nrf_lfrc
44-
4543
@ref nrf_lpcomp
4644

4745
@ref nrf_memconf

doc/nrfx.doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ PROJECT_NAME = "nrfx"
5050

5151
### EDIT THIS ###
5252

53-
PROJECT_NUMBER = "3.13.0"
53+
PROJECT_NUMBER = "3.14.0"
5454

5555
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5656
# for a project that appears at the top of each page and should give viewer a

doc/nrfx_api.dox

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@
6161

6262
@defgroup nrf_kmu KMU
6363

64-
@defgroup nrf_lfrc LFRC
65-
6664
@defgroup nrf_lpcomp LPCOMP
6765

6866
@defgroup nrf_lrc LRC

drivers/include/nrfx_clock.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ typedef enum
6969
#if NRF_CLOCK_HAS_CALIBRATION
7070
NRFX_CLOCK_EVT_CAL_DONE = NRFX_BITMASK_TO_BITPOS(NRF_CLOCK_INT_DONE_MASK), ///< Calibration has been done.
7171
#elif NRFX_CHECK(NRF_LFRC_HAS_CALIBRATION)
72-
NRFX_CLOCK_EVT_CAL_DONE = (NRFX_BITMASK_TO_BITPOS(NRF_LFRC_INT_CALDONE_MASK) + \
73-
NRFX_CLOCK_LFRC_EVT_OFFSET), ///< Calibration has been done.
72+
NRFX_CLOCK_EVT_CAL_DONE = NRFX_BITMASK_TO_BITPOS(NRF_LFRC_INT_CALDONE_MASK) + \
73+
NRFX_CLOCK_LFRC_EVT_OFFSET, ///< Calibration has been done.
7474
#endif
7575
#if NRF_CLOCK_HAS_HFCLKAUDIO
7676
NRFX_CLOCK_EVT_HFCLKAUDIO_STARTED = NRFX_BITMASK_TO_BITPOS(NRF_CLOCK_INT_HFAUDIO_STARTED_MASK), ///< HFCLKAUDIO has been started.

drivers/nrfx_common.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ extern "C" {
9191
#define NRFX_RELEASE_VER_MAJOR 3
9292

9393
/** @brief Symbol specifying minor number of the current nrfx version. */
94-
#define NRFX_RELEASE_VER_MINOR 13
94+
#define NRFX_RELEASE_VER_MINOR 14
9595

9696
/** @brief Symbol specifying micro number of the current nrfx version. */
9797
#define NRFX_RELEASE_VER_MICRO 0
@@ -577,6 +577,8 @@ do { \
577577
* equal to its ID number. See the chapter "Peripheral interface" (sections
578578
* "Peripheral ID" and "Interrupts") in the Product Specification.
579579
*
580+
* @warning This macro is valid only for peripherals with a single interrupt line.
581+
*
580582
* @param[in] base_addr Peripheral base address or pointer.
581583
*
582584
* @return Interrupt number associated with the specified peripheral.
@@ -643,6 +645,8 @@ NRF_STATIC_INLINE bool nrfx_is_word_aligned(void const * p_object);
643645
/**
644646
* @brief Function for getting the interrupt number for the specified peripheral.
645647
*
648+
* @warning This function is valid only for peripherals with a single interrupt line.
649+
*
646650
* @param[in] p_reg Peripheral base pointer.
647651
*
648652
* @return Interrupt number associated with the pointed peripheral.

drivers/nrfx_utils.h

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -353,37 +353,37 @@
353353
* @return Index of a bit.
354354
*/
355355
#define NRFX_BITMASK_TO_BITPOS(_bitmask) \
356-
_bitmask == NRFX_BIT(0) ? 0 : \
357-
_bitmask == NRFX_BIT(1) ? 1 : \
358-
_bitmask == NRFX_BIT(2) ? 2 : \
359-
_bitmask == NRFX_BIT(3) ? 3 : \
360-
_bitmask == NRFX_BIT(4) ? 4 : \
361-
_bitmask == NRFX_BIT(5) ? 5 : \
362-
_bitmask == NRFX_BIT(6) ? 6 : \
363-
_bitmask == NRFX_BIT(7) ? 7 : \
364-
_bitmask == NRFX_BIT(8) ? 8 : \
365-
_bitmask == NRFX_BIT(9) ? 9 : \
366-
_bitmask == NRFX_BIT(10) ? 10 : \
367-
_bitmask == NRFX_BIT(11) ? 11 : \
368-
_bitmask == NRFX_BIT(12) ? 12 : \
369-
_bitmask == NRFX_BIT(13) ? 13 : \
370-
_bitmask == NRFX_BIT(14) ? 14 : \
371-
_bitmask == NRFX_BIT(15) ? 15 : \
372-
_bitmask == NRFX_BIT(16) ? 16 : \
373-
_bitmask == NRFX_BIT(17) ? 17 : \
374-
_bitmask == NRFX_BIT(18) ? 18 : \
375-
_bitmask == NRFX_BIT(19) ? 19 : \
376-
_bitmask == NRFX_BIT(20) ? 20 : \
377-
_bitmask == NRFX_BIT(21) ? 21 : \
378-
_bitmask == NRFX_BIT(22) ? 22 : \
379-
_bitmask == NRFX_BIT(23) ? 23 : \
380-
_bitmask == NRFX_BIT(24) ? 24 : \
381-
_bitmask == NRFX_BIT(25) ? 25 : \
382-
_bitmask == NRFX_BIT(26) ? 26 : \
383-
_bitmask == NRFX_BIT(27) ? 27 : \
384-
_bitmask == NRFX_BIT(28) ? 28 : \
385-
_bitmask == NRFX_BIT(29) ? 29 : \
386-
_bitmask == NRFX_BIT(30) ? 30 : 31
356+
(_bitmask == NRFX_BIT(0) ? 0 : \
357+
_bitmask == NRFX_BIT(1) ? 1 : \
358+
_bitmask == NRFX_BIT(2) ? 2 : \
359+
_bitmask == NRFX_BIT(3) ? 3 : \
360+
_bitmask == NRFX_BIT(4) ? 4 : \
361+
_bitmask == NRFX_BIT(5) ? 5 : \
362+
_bitmask == NRFX_BIT(6) ? 6 : \
363+
_bitmask == NRFX_BIT(7) ? 7 : \
364+
_bitmask == NRFX_BIT(8) ? 8 : \
365+
_bitmask == NRFX_BIT(9) ? 9 : \
366+
_bitmask == NRFX_BIT(10) ? 10 : \
367+
_bitmask == NRFX_BIT(11) ? 11 : \
368+
_bitmask == NRFX_BIT(12) ? 12 : \
369+
_bitmask == NRFX_BIT(13) ? 13 : \
370+
_bitmask == NRFX_BIT(14) ? 14 : \
371+
_bitmask == NRFX_BIT(15) ? 15 : \
372+
_bitmask == NRFX_BIT(16) ? 16 : \
373+
_bitmask == NRFX_BIT(17) ? 17 : \
374+
_bitmask == NRFX_BIT(18) ? 18 : \
375+
_bitmask == NRFX_BIT(19) ? 19 : \
376+
_bitmask == NRFX_BIT(20) ? 20 : \
377+
_bitmask == NRFX_BIT(21) ? 21 : \
378+
_bitmask == NRFX_BIT(22) ? 22 : \
379+
_bitmask == NRFX_BIT(23) ? 23 : \
380+
_bitmask == NRFX_BIT(24) ? 24 : \
381+
_bitmask == NRFX_BIT(25) ? 25 : \
382+
_bitmask == NRFX_BIT(26) ? 26 : \
383+
_bitmask == NRFX_BIT(27) ? 27 : \
384+
_bitmask == NRFX_BIT(28) ? 28 : \
385+
_bitmask == NRFX_BIT(29) ? 29 : \
386+
_bitmask == NRFX_BIT(30) ? 30 : 31)
387387

388388
/** @} */
389389

drivers/src/nrfx_cracen.c

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,10 @@
3737

3838
#include <hal/nrf_cracen.h>
3939
#include <hal/nrf_cracen_rng.h>
40+
#if NRF_CRACEN_HAS_CRYPTOMASTER
4041
#include <hal/nrf_cracen_cm.h>
4142
#include <helpers/nrf_cracen_cm_dma.h>
43+
#endif
4244
#include <soc/nrfx_coredep.h>
4345

4446
/* TRNG HW chosen configuration options */
@@ -56,9 +58,11 @@
5658
#define AES_ECB_BLK_SZ 16U /* 128 bits */
5759

5860
#define CTR_DRBG_MAX_BYTES_PER_REQUEST (1 << 16) /* NIST.SP.800-90Ar1:Table 3 */
59-
#define CTR_DRBG_RESEED_INTERVAL ((uint64_t)1 << 48) /* 2^48 as per NIST spec */
61+
#if NRF_CRACEN_HAS_CRYPTOMASTER
6062
#define CTR_DRBG_KEY_SIZE 32U /* 256 bits AES Key */
63+
#define CTR_DRBG_RESEED_INTERVAL ((uint64_t)1 << 48) /* 2^48 as per NIST spec */
6164
#define CTR_DRBG_ENTROPY_SIZE (CTR_DRBG_KEY_SIZE + AES_ECB_BLK_SZ) /* Seed equals key-len + 16 */
65+
#endif
6266

6367
/* Return values common between these driver internal functions: */
6468
typedef enum {
@@ -71,9 +75,11 @@ typedef enum {
7175

7276
/* Internal status of the CTR_DRBG RNG driver */
7377
typedef struct {
78+
#if NRF_CRACEN_HAS_CRYPTOMASTER
7479
uint8_t key[CTR_DRBG_KEY_SIZE];
7580
uint8_t value[AES_ECB_BLK_SZ];
7681
uint64_t reseed_counter;
82+
#endif
7783
nrfx_drv_state_t initialized;
7884
bool trng_conditioning_key_set;
7985
} nrfx_cracen_cb_t;
@@ -252,6 +258,7 @@ static cracen_ret_t trng_entropy_get(uint8_t * p_buf, size_t size)
252258
return OK;
253259
}
254260

261+
#if NRF_CRACEN_HAS_CRYPTOMASTER
255262
/*
256263
* Check if the CryptoMaster is done.
257264
*
@@ -469,23 +476,26 @@ static cracen_ret_t ctr_drbg_reseed(void)
469476

470477
return OK;
471478
}
479+
#endif
472480

473481
nrfx_err_t nrfx_cracen_ctr_drbg_init(void)
474482
{
475-
int r;
476-
477483
if (m_cb.initialized == NRFX_DRV_STATE_INITIALIZED)
478484
{
479485
return NRFX_ERROR_ALREADY;
480486
}
481487

482488
memset(&m_cb, 0, sizeof(m_cb));
483489

490+
#if NRF_CRACEN_HAS_CRYPTOMASTER
491+
int r;
492+
484493
r = ctr_drbg_reseed();
485494
if (r != OK)
486495
{
487496
return NRFX_ERROR_INTERNAL;
488497
}
498+
#endif
489499

490500
m_cb.initialized = NRFX_DRV_STATE_INITIALIZED;
491501
return NRFX_SUCCESS;
@@ -514,6 +524,7 @@ nrfx_err_t nrfx_cracen_ctr_drbg_random_get(uint8_t * p_buf, size_t size)
514524
return NRFX_ERROR_INVALID_PARAM;
515525
}
516526

527+
#if NRF_CRACEN_HAS_CRYPTOMASTER
517528
if (m_cb.reseed_counter >= CTR_DRBG_RESEED_INTERVAL)
518529
{
519530
r = ctr_drbg_reseed();
@@ -549,7 +560,14 @@ nrfx_err_t nrfx_cracen_ctr_drbg_random_get(uint8_t * p_buf, size_t size)
549560
}
550561

551562
m_cb.reseed_counter += 1;
563+
#else
564+
r = trng_entropy_get(p_buf, size);
552565

566+
if (r != OK)
567+
{
568+
return NRFX_ERROR_INTERNAL;
569+
}
570+
#endif
553571
return NRFX_SUCCESS;
554572
}
555573

drivers/src/nrfx_saadc.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,12 @@ nrfx_err_t nrfx_saadc_simple_mode_set(uint32_t channel_mask,
419419
burst = NRF_SAADC_BURST_ENABLED;
420420
}
421421

422+
/**
423+
* Continuous mode has to be disabled for simple mode, this have caused issues when
424+
* running first advanced continuous mode and then switching to simple
425+
*/
426+
nrfy_saadc_continuous_mode_disable(NRF_SAADC);
427+
422428
saadc_generic_mode_set(channel_mask,
423429
resolution,
424430
oversampling,
@@ -687,6 +693,12 @@ nrfx_err_t nrfx_saadc_limits_set(uint8_t channel, int16_t limit_low, int16_t lim
687693
return NRFX_ERROR_INVALID_PARAM;
688694
}
689695

696+
nrf_saadc_event_t limit_low_evt = nrfy_saadc_limit_event_get(channel, NRF_SAADC_LIMIT_LOW);
697+
nrfy_saadc_event_clear(NRF_SAADC, limit_low_evt);
698+
699+
nrf_saadc_event_t limit_high_evt = nrfy_saadc_limit_event_get(channel, NRF_SAADC_LIMIT_HIGH);
700+
nrfy_saadc_event_clear(NRF_SAADC, limit_high_evt);
701+
690702
nrfy_saadc_channel_limits_set(NRF_SAADC, channel, limit_low, limit_high);
691703

692704
uint32_t int_mask = nrfy_saadc_limit_int_get(channel, NRF_SAADC_LIMIT_LOW);

0 commit comments

Comments
 (0)