Skip to content

Commit

Permalink
nrfx 3.5.0 release
Browse files Browse the repository at this point in the history
Signed-off-by: Nikodem Kastelik <[email protected]>
  • Loading branch information
nika-nordic committed May 10, 2024
1 parent 7c47cc0 commit 4620e7c
Show file tree
Hide file tree
Showing 173 changed files with 803,703 additions and 18,854 deletions.
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
# Changelog
All notable changes to this project are documented in this file.

## [3.5.0] - 2024-05-10
### Added
- Added function for freeing all allocated channels in the WDT driver.
- Added HAL for AUXPLL peripheral.
- Added support for nRF54H20 and nRF54L15 in the AAR HAL.

### Changed
- Updated MDK to version 8.64.0.
- Changed default implementation of the core-dependent delay loop for the VPR cores. Now, the VTIM peripheral is utilized instead of CPU spinning.

### Fixed
- Fixed 1 MHz clock frequency configuration setting in the TWIM driver. Now, the supported pins are checked only if GPIO or PSEL configuration is specified.
- Fixed overridden write mode in the RRAMC HALY. Now, the configured write mode is preserved before the write operation and restored afterwards.

## [3.4.0] - 2024-03-08
### Added
- Added support for nRF54H20 and nRF54L15.
Expand Down
155 changes: 90 additions & 65 deletions doc/drv_supp_matrix.dox

Large diffs are not rendered by default.

100 changes: 100 additions & 0 deletions doc/nrf54h20.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/**
@page nrf54h20_drivers nRF54H20 drivers

This page lists nrfx driver components supported by the nRF54H20 SoC.
For a complete overview, see @ref nrfx_drv_supp_matrix.

@{

@ref nrf_aar

@ref nrf_auxpll

@ref nrf_bellboard

@ref nrf_cache

@ref nrf_ccm

@ref nrf_comp

@ref nrf_systick

@ref nrf_ctrlap

@ref nrf_dppi

@ref nrf_egu

@ref nrf_exmif

@ref nrf_icr

@ref nrf_gpio

@ref nrf_gpiote

@ref nrf_grtc

@ref nrf_ipct

@ref nrf_lpcomp

@ref nrf_lrc

@ref nrf_memconf

@ref nrf_mpc

@ref nrf_mutex

@ref nrf_mvdma

@ref nrf_nfct

@ref nrf_pdm

@ref nrf_ppib

@ref nrf_pwm

@ref nrf_qdec

@ref nrf_radio

@ref nrf_ramc

@ref nrf_resetinfo

@ref nrf_saadc

@ref nrf_spim

@ref nrf_spis

@ref nrf_spu

@ref nrf_stm

@ref nrf_tampc

@ref nrf_tbm

@ref nrf_tdm

@ref nrf_timer

@ref nrf_twim

@ref nrf_twis

@ref nrf_uarte

@ref nrf_usbhs

@ref nrf_vpr

@ref nrf_wdt

@}
*/
86 changes: 86 additions & 0 deletions doc/nrf54l15_enga.dox
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
/**
@page nrf54l15_enga_drivers nRF54L15 EngA drivers

This page lists nrfx driver components supported by the nRF54L15 EngA SoC.
For a complete overview, see @ref nrfx_drv_supp_matrix.

@{

@ref nrf_aar

@ref nrf_cache

@ref nrf_ccm

@ref nrf_clock

@ref nrf_comp

@ref nrf_cracen

@ref nrf_systick

@ref nrf_dppi

@ref nrf_egu

@ref nrf_glitchdet

@ref nrf_gpio

@ref nrf_gpiote

@ref nrf_grtc

@ref nrf_i2s

@ref nrf_icr

@ref nrf_kmu

@ref nrf_lpcomp

@ref nrf_memconf

@ref nrf_mpc

@ref nrf_nfct

@ref nrf_power

@ref nrf_ppib

@ref nrf_pwm

@ref nrf_qdec

@ref nrf_radio

@ref nrf_rramc

@ref nrf_saadc

@ref nrf_spim

@ref nrf_spis

@ref nrf_spu

@ref nrf_tampc

@ref nrf_temp

@ref nrf_timer

@ref nrf_twim

@ref nrf_twis

@ref nrf_uarte

@ref nrf_vpr

@ref nrf_wdt

@}
*/
2 changes: 1 addition & 1 deletion doc/nrfx.doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ PROJECT_NAME = "nrfx"

### EDIT THIS ###

PROJECT_NUMBER = "3.4"
PROJECT_NUMBER = "3.5"

# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
Expand Down
2 changes: 2 additions & 0 deletions doc/nrfx_api.dox
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@

@defgroup nrf_adc ADC

@defgroup nrf_auxpll AUXPLL

@defgroup nrf_bellboard BELLBOARD

@defgroup nrf_bprot BPROT
Expand Down
6 changes: 6 additions & 0 deletions doc/sphinx/drivers/auxpll/hal.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
AUXPLL HAL
==========

.. doxygengroup:: nrf_auxpll_hal
:project: nrfx
:members:
1 change: 1 addition & 0 deletions doc/sphinx/drivers/clock/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@ CLOCK
:glob:

*
../auxpll/hal.rst
../hsfll/hal.rst
../oscillators/hal.rst
2 changes: 2 additions & 0 deletions doc/sphinx/drv_supp_matrix.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ Driver support overview
nrf52833
nrf52840
nrf5340
nrf54h20
nrf54l15_enga
nrf91_series

.. role:: red
Expand Down
5 changes: 5 additions & 0 deletions doc/sphinx/nrf54h20.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
nRF54H20 drivers
================

.. doxygenpage:: nrf54h20_drivers
:content-only:
5 changes: 5 additions & 0 deletions doc/sphinx/nrf54l15_enga.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
nRF54L15 EngA drivers
=====================

.. doxygenpage:: nrf54l15_enga_drivers
:content-only:
1 change: 1 addition & 0 deletions drivers/include/nrfx_twim.h
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,7 @@ nrfx_err_t nrfx_twim_init(nrfx_twim_t const * p_instance,
* @retval NRFX_SUCCESS Reconfiguration was successful.
* @retval NRFX_ERROR_BUSY The driver is during transaction.
* @retval NRFX_ERROR_INVALID_STATE The driver is uninitialized.
* @retval NRFX_ERROR_INVALID_PARAM Requested frequency is not available on the specified pins.
*/
nrfx_err_t nrfx_twim_reconfigure(nrfx_twim_t const * p_instance,
nrfx_twim_config_t const * p_config);
Expand Down
2 changes: 1 addition & 1 deletion drivers/include/nrfx_vevif.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ typedef void (*nrfx_vevif_event_handler_t)(uint8_t event_idx, void * p_context);
* @retval NRFX_ERROR_INVALID_STATE The driver is already initialized.
* Deprecated - use @ref NRFX_ERROR_ALREADY instead.
*/
nrfx_err_t nrfx_vevif_init(nrf_vpr_clic_priority_t interrupt_priority,
nrfx_err_t nrfx_vevif_init(uint8_t interrupt_priority,
nrfx_vevif_event_handler_t event_handler,
void * p_context);

Expand Down
10 changes: 10 additions & 0 deletions drivers/include/nrfx_wdt.h
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,16 @@ nrfx_err_t nrfx_wdt_reconfigure(nrfx_wdt_t const * p_instance,
nrfx_err_t nrfx_wdt_channel_alloc(nrfx_wdt_t const * p_instance,
nrfx_wdt_channel_id * p_channel_id);

/**
* @brief Function for deallocating all previously allocated watchdog channels.
*
* @note This function can be called when watchdog is stopped,
* that is before @ref nrfx_wdt_enable() or after @ref nrfx_wdt_stop().
*
* @param[in] p_instance Pointer to the driver instance structure.
*/
void nrfx_wdt_channels_free(nrfx_wdt_t const * p_instance);

/**
* @brief Function for starting the watchdog.
*
Expand Down
17 changes: 11 additions & 6 deletions drivers/src/nrfx_grtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -755,11 +755,14 @@ nrfx_err_t nrfx_grtc_syscounter_cc_absolute_set(nrfx_grtc_channel_t * p_chan_dat

cc_channel_prepare(p_chan_data);
NRFX_CRITICAL_SECTION_ENTER();
nrfy_grtc_sys_counter_compare_event_clear(NRF_GRTC, p_chan_data->channel);
nrfy_grtc_sys_counter_cc_set(NRF_GRTC, p_chan_data->channel, val);
NRFX_CRITICAL_SECTION_EXIT();
nrfy_grtc_sys_counter_compare_event_int_clear_enable(NRF_GRTC,
p_chan_data->channel,
enable_irq);

if (enable_irq)
{
nrfy_grtc_int_enable(NRF_GRTC, GRTC_CHANNEL_TO_BITMASK(p_chan_data->channel));
}

NRFX_LOG_INFO("GRTC SYSCOUNTER absolute compare for channel %u set to %u.",
(uint32_t)p_chan_data->channel,
Expand All @@ -785,6 +788,7 @@ nrfx_err_t nrfx_grtc_syscounter_cc_relative_set(nrfx_grtc_channel_t *

cc_channel_prepare(p_chan_data);
NRFX_CRITICAL_SECTION_ENTER();
nrfy_grtc_sys_counter_compare_event_clear(NRF_GRTC, p_chan_data->channel);
if (NRFX_IS_ENABLED(NRFX_GRTC_CONFIG_SLEEP_ALLOWED) && !is_active())
{
grtc_wakeup();
Expand All @@ -803,9 +807,10 @@ nrfx_err_t nrfx_grtc_syscounter_cc_relative_set(nrfx_grtc_channel_t *
}
NRFX_CRITICAL_SECTION_EXIT();

nrfy_grtc_sys_counter_compare_event_int_clear_enable(NRF_GRTC,
p_chan_data->channel,
enable_irq);
if (enable_irq)
{
nrfy_grtc_int_enable(NRF_GRTC, GRTC_CHANNEL_TO_BITMASK(p_chan_data->channel));
}

NRFX_LOG_INFO("GRTC SYSCOUNTER compare for channel %u set to %u.",
(uint32_t)p_chan_data->channel,
Expand Down
18 changes: 16 additions & 2 deletions drivers/src/nrfx_twim.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,11 @@ static bool pins_configure(nrfx_twim_config_t const * p_config)
{
nrf_gpio_pin_drive_t pin_drive;

if (p_config->skip_psel_cfg && p_config->skip_gpio_cfg)
{
return true;
}

#if NRF_TWIM_HAS_1000_KHZ_FREQ && defined(NRF5340_XXAA)
if (p_config->frequency >= NRF_TWIM_FREQ_1000K)
{
Expand Down Expand Up @@ -340,10 +345,19 @@ nrfx_err_t nrfx_twim_reconfigure(nrfx_twim_t const * p_instance,
{
return NRFX_ERROR_BUSY;
}

nrfx_err_t err_code = NRFX_SUCCESS;
nrfy_twim_disable(p_instance->p_twim);
twim_configure(p_instance, p_config);
if (pins_configure(p_config))
{
twim_configure(p_instance, p_config);
}
else
{
err_code = NRFX_ERROR_INVALID_PARAM;
}
nrfy_twim_enable(p_instance->p_twim);
return NRFX_SUCCESS;
return err_code;
}

void nrfx_twim_uninit(nrfx_twim_t const * p_instance)
Expand Down
Loading

0 comments on commit 4620e7c

Please sign in to comment.