From 5f168b24704ef47d129f3553202834be9155428a Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Tue, 14 Oct 2025 12:36:33 +0200 Subject: [PATCH 01/15] softdevice_controller: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- softdevice_controller/include/sdc_soc.h | 35 ++++++++++++++++++------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/softdevice_controller/include/sdc_soc.h b/softdevice_controller/include/sdc_soc.h index 0b1b372fce..734cd6ce6e 100644 --- a/softdevice_controller/include/sdc_soc.h +++ b/softdevice_controller/include/sdc_soc.h @@ -29,22 +29,37 @@ extern "C" { #include #include "mpsl_hwres.h" +#define SDC_NRF52_PPI_CHANNELS_USED_MASK (0xfffe0000) +#define SDC_NRF53_DPPI_CHANNELS_USED_MASK (0x00001ff8) +#define SDC_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000ffe) +#define SDC_NRF54L_DPPIC00_CHANNELS_USED_MASK (0x0000000a) +#define SDC_NRF54L_PPIB00_CHANNELS_USED_MASK (0x0000000f) +#define SDC_NRF54L_PPIB10_CHANNELS_USED_MASK (0x0000000f) +#define SDC_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000ffe) +#define SDC_NRF54H_DPPIC030_CHANNELS_USED_MASK (0x0000000a) +#define SDC_NRF54H_PPIB020_CHANNELS_USED_MASK (0x0000000f) +#define SDC_NRF54H_PPIB030_CHANNELS_USED_MASK (0x0000000f) + +#if !defined(__ZEPHYR__) +#include "nrfx.h" + #if defined(NRF52_SERIES) /* PPI channels 17 - 31, for the nRF52 Series */ - #define SDC_PPI_CHANNELS_USED_MASK (0xfffe0000) + #define SDC_PPI_CHANNELS_USED_MASK SDC_NRF52_PPI_CHANNELS_USED_MASK #elif defined(NRF53_SERIES) /* PPI channels 3 - 12, for the nRF53 Series */ - #define SDC_DPPI_CHANNELS_USED_MASK (0x00001ff8) + #define SDC_DPPI_CHANNELS_USED_MASK SDC_NRF53_DPPI_CHANNELS_USED_MASK #elif defined(LUMOS_XXAA) - #define SDC_DPPIC10_CHANNELS_USED_MASK (0x00000ffe) - #define SDC_DPPIC00_CHANNELS_USED_MASK (0x0000000a) - #define SDC_PPIB00_CHANNELS_USED_MASK (0x0000000f) - #define SDC_PPIB10_CHANNELS_USED_MASK (0x0000000f) + #define SDC_DPPIC10_CHANNELS_USED_MASK SDC_NRF54L_DPPIC10_CHANNELS_USED_MASK + #define SDC_DPPIC00_CHANNELS_USED_MASK SDC_NRF54L_DPPIC00_CHANNELS_USED_MASK + #define SDC_PPIB00_CHANNELS_USED_MASK SDC_NRF54L_PPIB00_CHANNELS_USED_MASK + #define SDC_PPIB10_CHANNELS_USED_MASK SDC_NRF54L_PPIB10_CHANNELS_USED_MASK #elif defined(NRF54H_SERIES) || defined(GRTC_PRESENT) - #define SDC_DPPIC020_CHANNELS_USED_MASK (0x00000ffe) - #define SDC_DPPIC030_CHANNELS_USED_MASK (0x0000000a) - #define SDC_PPIB020_CHANNELS_USED_MASK (0x0000000f) - #define SDC_PPIB030_CHANNELS_USED_MASK (0x0000000f) + #define SDC_DPPIC020_CHANNELS_USED_MASK SDC_NRF54H_DPPIC020_CHANNELS_USED_MASK + #define SDC_DPPIC030_CHANNELS_USED_MASK SDC_NRF54H_DPPIC030_CHANNELS_USED_MASK + #define SDC_PPIB020_CHANNELS_USED_MASK SDC_NRF54H_PPIB020_CHANNELS_USED_MASK + #define SDC_PPIB030_CHANNELS_USED_MASK SDC_NRF54H_PPIB030_CHANNELS_USED_MASK +#endif #endif /** From 9476c362e011b580a8274739cc724e03a0767a0e Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Tue, 14 Oct 2025 16:11:49 +0200 Subject: [PATCH 02/15] mpsl: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- mpsl/include/mpsl_clock.h | 1 - mpsl/include/mpsl_hwres.h | 33 ++++++++++++++++++++++----------- 2 files changed, 22 insertions(+), 12 deletions(-) diff --git a/mpsl/include/mpsl_clock.h b/mpsl/include/mpsl_clock.h index 148d146d50..536f9ce02a 100644 --- a/mpsl/include/mpsl_clock.h +++ b/mpsl/include/mpsl_clock.h @@ -24,7 +24,6 @@ extern "C" { #include #include #include "nrfx.h" -#include "nrf_errno.h" #if !defined (NRF54H_SERIES) #include "hal/nrf_clock.h" #endif /* !NRF54H20_XXAA */ diff --git a/mpsl/include/mpsl_hwres.h b/mpsl/include/mpsl_hwres.h index e71945ca9c..493855c70d 100644 --- a/mpsl/include/mpsl_hwres.h +++ b/mpsl/include/mpsl_hwres.h @@ -56,24 +56,34 @@ extern "C" { #endif /* Reserved (D)PPI, PPIB and IPCT resources for the supported platforms. */ +/* This corresponds to the PPI channels 19, 30, and 31. */ +#define MPSL_NRF52_PPI_CHANNELS_USED_MASK (0xc0080000) +/* This corresponds to the DPPI channels 0, 1, and 2. */ +#define MPSL_NRF53_DPPIC_CHANNELS_USED_MASK (0x00000007) +#define MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK (0x00000001) + +#if !defined(__ZEPHYR__) #if defined(NRF52_SERIES) - #define MPSL_RESERVED_PPI_CHANNELS ((1UL << 19) | (1UL << 30) | (1UL << 31)) - /* This corresponds to the PPI channels 19, 30, and 31. */ - #define MPSL_PPI_CHANNELS_USED_MASK (0xc0080000) +#define MPSL_RESERVED_PPI_CHANNELS ((1UL << 19) | (1UL << 30) | (1UL << 31)) +#define MPSL_PPI_CHANNELS_USED_MASK MPSL_NRF52_PPI_CHANNELS_USED_MASK #elif defined(NRF53_SERIES) #define MPSL_RESERVED_PPI_CHANNELS ((1UL << 0) | (1UL << 1) | (1UL << 2)) - /* This corresponds to the DPPI channels 0, 1, and 2. */ - #define MPSL_DPPIC_CHANNELS_USED_MASK (0x00000007) + #define MPSL_DPPIC_CHANNELS_USED_MASK MPSL_NRF53_DPPIC_CHANNELS_USED_MASK #elif defined(LUMOS_XXAA) #define MPSL_RESERVED_PPI_CHANNELS (1UL << 0) - #define MPSL_DPPIC10_CHANNELS_USED_MASK (0x00000001) - #define MPSL_DPPIC20_CHANNELS_USED_MASK (0x00000001) - #define MPSL_PPIB11_CHANNELS_USED_MASK (0x00000001) - #define MPSL_PPIB21_CHANNELS_USED_MASK (0x00000001) + #define MPSL_DPPIC10_CHANNELS_USED_MASK MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK + #define MPSL_DPPIC20_CHANNELS_USED_MASK MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK + #define MPSL_PPIB11_CHANNELS_USED_MASK MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK + #define MPSL_PPIB21_CHANNELS_USED_MASK MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK #elif defined(NRF54H_SERIES) #define MPSL_RESERVED_PPI_CHANNELS (1UL << 0) - #define MPSL_DPPIC020_CHANNELS_USED_MASK (0x00000001) - #define MPSL_IPCT130_CHANNELS_USED_MASK (0x00000001) + #define MPSL_DPPIC020_CHANNELS_USED_MASK MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK + #define MPSL_IPCT130_CHANNELS_USED_MASK MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK #else #error Unknown NRF series. #endif @@ -88,6 +98,7 @@ extern "C" { #else #define MPSL_TIMER0 NRF_TIMER020 #endif +#endif #ifdef __cplusplus } From 8036941da9fa8790e34031f417ce66a7b8e02cee Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 15 Oct 2025 15:04:08 +0200 Subject: [PATCH 03/15] crypto: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- crypto/nrf_cc310_platform/include/nrf_cc3xx_platform_kmu.h | 2 +- crypto/nrf_cc312_platform/include/nrf_cc3xx_platform_kmu.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/nrf_cc310_platform/include/nrf_cc3xx_platform_kmu.h b/crypto/nrf_cc310_platform/include/nrf_cc3xx_platform_kmu.h index 79ce770dd3..6471c9b544 100644 --- a/crypto/nrf_cc310_platform/include/nrf_cc3xx_platform_kmu.h +++ b/crypto/nrf_cc310_platform/include/nrf_cc3xx_platform_kmu.h @@ -15,7 +15,7 @@ #include #include -#include "nrf.h" +#include "nrfx.h" #if defined(NRF91_SERIES) || defined(NRF5340_XXAA_APPLICATION) diff --git a/crypto/nrf_cc312_platform/include/nrf_cc3xx_platform_kmu.h b/crypto/nrf_cc312_platform/include/nrf_cc3xx_platform_kmu.h index 79ce770dd3..6471c9b544 100644 --- a/crypto/nrf_cc312_platform/include/nrf_cc3xx_platform_kmu.h +++ b/crypto/nrf_cc312_platform/include/nrf_cc3xx_platform_kmu.h @@ -15,7 +15,7 @@ #include #include -#include "nrf.h" +#include "nrfx.h" #if defined(NRF91_SERIES) || defined(NRF5340_XXAA_APPLICATION) From 682e31f7c54a0e723f4367aaa90a757b30133c32 Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 15 Oct 2025 15:04:31 +0200 Subject: [PATCH 04/15] gzll: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- gzll/include/nrf_gzll.h | 3 +-- gzll/include/nrf_gzll_glue.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gzll/include/nrf_gzll.h b/gzll/include/nrf_gzll.h index e79aecc5e6..a5c8a9e4e1 100644 --- a/gzll/include/nrf_gzll.h +++ b/gzll/include/nrf_gzll.h @@ -12,8 +12,7 @@ #ifndef NRF_GZLL_H__ #define NRF_GZLL_H__ -#include -#include "nrf.h" +#include "nrfx.h" #include "nrf_gzll_constants.h" #ifdef __cplusplus diff --git a/gzll/include/nrf_gzll_glue.h b/gzll/include/nrf_gzll_glue.h index c39ab9862a..ee489474c8 100644 --- a/gzll/include/nrf_gzll_glue.h +++ b/gzll/include/nrf_gzll_glue.h @@ -14,8 +14,7 @@ * File defines a set of functions and variables called by Gazell Link Layer. */ -#include -#include +#include #ifdef __cplusplus extern "C" { From 92d0d917557ebdf910a9acd77d7efdd0e7b1288b Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 15 Oct 2025 15:04:57 +0200 Subject: [PATCH 05/15] nrf_802154: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- nrf_802154/driver/src/nrf_802154_swi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/nrf_802154/driver/src/nrf_802154_swi.c b/nrf_802154/driver/src/nrf_802154_swi.c index b2408d98f0..19aee83ee1 100644 --- a/nrf_802154/driver/src/nrf_802154_swi.c +++ b/nrf_802154/driver/src/nrf_802154_swi.c @@ -43,6 +43,7 @@ #include +#include "nrfx.h" #include "nrf_802154_config.h" #if !NRF_802154_INTERNAL_SWI_IRQ_HANDLING #include "nrf_802154_irq_handlers.h" From e8a68c23174adf7f26a6b4e847f52e1974b17079 Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 15 Oct 2025 15:05:22 +0200 Subject: [PATCH 06/15] nrf_dm: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- nrf_dm/include/nrf_dm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nrf_dm/include/nrf_dm.h b/nrf_dm/include/nrf_dm.h index b1a80db96e..54d579fbac 100644 --- a/nrf_dm/include/nrf_dm.h +++ b/nrf_dm/include/nrf_dm.h @@ -17,7 +17,7 @@ #define __NRF_DM_H_ #include -#include "nrf.h" +#include "nrfx.h" #include "nrf_dm_version.h" #ifdef __cplusplus From b4bf2eeef6fa9d99d9cbc5d92810ba84c3671df2 Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 15 Oct 2025 15:05:44 +0200 Subject: [PATCH 07/15] softperipheral: align to nrfx 4.0 MDK should not be included directly, but via nrfx.h Signed-off-by: Marcin Szymczyk --- softperipheral/sQSPI/include/nrf_sp_qspi.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/softperipheral/sQSPI/include/nrf_sp_qspi.h b/softperipheral/sQSPI/include/nrf_sp_qspi.h index b52e120ee7..7bf892d3ea 100644 --- a/softperipheral/sQSPI/include/nrf_sp_qspi.h +++ b/softperipheral/sQSPI/include/nrf_sp_qspi.h @@ -7,12 +7,11 @@ #ifndef NRF_SP_QSPI_H__ #define NRF_SP_QSPI_H__ -#include "nrf.h" // Resolve nrfXX_types.h for the correct target to get definitions for __IO, __IOM etc. +#include "nrfx.h" // Resolve nrfXX_types.h for the correct target to get definitions for __IO, __IOM etc. #if defined (NRF_FLPR) extern char __soft_periph_com_start__[]; #define NRF_SP_QSPI_BASE ((uint32_t)&__soft_periph_com_start__) #elif defined (NRF_APPLICATION) -#include "nrfx_config.h" #define NRF_SP_QSPI_BASE (NRF_SQSPI_SP_FIRMWARE_ADDR + 0x3b40) #else #pragma warning "Processor not defined." From d232657f94059b7fdc4f68cdecb5c7f8fd73848b Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Thu, 16 Oct 2025 12:51:35 +0200 Subject: [PATCH 08/15] mpsl: split mpsl_hwres Since `mpsh_hwres.h` should not use defines from nrfx, the header has to be split. Signed-off-by: Marcin Szymczyk --- mpsl/include/mpsl.h | 1 + mpsl/include/mpsl_dppi.h | 68 ++++++++++++++++++++++++++++++++ mpsl/include/mpsl_hwres.h | 14 +------ mpsl/include/mpsl_hwres_zephyr.h | 42 ++++++++++++++++++++ 4 files changed, 112 insertions(+), 13 deletions(-) create mode 100644 mpsl/include/mpsl_dppi.h create mode 100644 mpsl/include/mpsl_hwres_zephyr.h diff --git a/mpsl/include/mpsl.h b/mpsl/include/mpsl.h index cc918dbd97..f05bc7a766 100644 --- a/mpsl/include/mpsl.h +++ b/mpsl/include/mpsl.h @@ -27,6 +27,7 @@ extern "C" { #include "mpsl_clock.h" #include "mpsl_hwres.h" #include "mpsl_hwres_ppi.h" +#include "mpsl_dppi.h" /** @brief High IRQ priority * diff --git a/mpsl/include/mpsl_dppi.h b/mpsl/include/mpsl_dppi.h new file mode 100644 index 0000000000..cf97bbc006 --- /dev/null +++ b/mpsl/include/mpsl_dppi.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/** + * @file mpsl_dppi.h + * + * @defgroup mpsl_dppi MPSL DPPI API + * @ingroup mpsl + * + * This file defines an API to dynamically allocate some of hardware + * resources. The allocation functions are expected to be implemented + * outside of the MPSL. + * @{ + */ + +#ifndef MPSL_DPPI_H__ +#define MPSL_DPPI_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(DPPI_PRESENT) || defined(DOXYGEN) + +/** @brief Allocate a DPPI channel of a DPPIC controller instance. + * + * @param[in] p_dppic Pointer to a DPPIC controller instance. + * @param[out] p_dppi_ch Allocated DPPI channel number on the given DPPIC instance. + * Value written at this pointer is valid only on successful + * allocation. + * + * @retval true Allocation successful. + * @retval false Allocation failed. + */ +bool mpsl_hwres_dppi_channel_alloc(NRF_DPPIC_Type * p_dppic, uint8_t * p_dppi_ch); + +#endif /* DPPI_PRESENT */ + +#if defined(PPIB_PRESENT) || defined(DOXYGEN) + +/** @brief Allocate a PPIB channel of a PPIB-to-PPIB interconnection. + * + * @param[in] p_ppib Pointer to a PPIB instance. + * @param[out] p_ppib_ch Allocated PPIB channel number the for PPIB-to-PPIB + * interconnection identified by the @p p_ppib being one + * of the sides of the interconnection. + * Value written at this pointer valid only on successful + * allocation. + * + * @retval true Allocation successful. + * @retval false Allocation failed. + */ +bool mpsl_hwres_ppib_channel_alloc(NRF_PPIB_Type * p_ppib, uint8_t * p_ppib_ch); + +#endif /* PPIB_PRESENT */ + +#ifdef __cplusplus +} +#endif + +#endif // MPSL_DPPI_H__ + +/**@} */ diff --git a/mpsl/include/mpsl_hwres.h b/mpsl/include/mpsl_hwres.h index 493855c70d..edbf26eb9a 100644 --- a/mpsl/include/mpsl_hwres.h +++ b/mpsl/include/mpsl_hwres.h @@ -55,19 +55,8 @@ extern "C" { #endif -/* Reserved (D)PPI, PPIB and IPCT resources for the supported platforms. */ -/* This corresponds to the PPI channels 19, 30, and 31. */ -#define MPSL_NRF52_PPI_CHANNELS_USED_MASK (0xc0080000) -/* This corresponds to the DPPI channels 0, 1, and 2. */ -#define MPSL_NRF53_DPPIC_CHANNELS_USED_MASK (0x00000007) -#define MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK (0x00000001) +#include "mpsl_hwres_zephyr.h" -#if !defined(__ZEPHYR__) #if defined(NRF52_SERIES) #define MPSL_RESERVED_PPI_CHANNELS ((1UL << 19) | (1UL << 30) | (1UL << 31)) #define MPSL_PPI_CHANNELS_USED_MASK MPSL_NRF52_PPI_CHANNELS_USED_MASK @@ -98,7 +87,6 @@ extern "C" { #else #define MPSL_TIMER0 NRF_TIMER020 #endif -#endif #ifdef __cplusplus } diff --git a/mpsl/include/mpsl_hwres_zephyr.h b/mpsl/include/mpsl_hwres_zephyr.h new file mode 100644 index 0000000000..58486a7072 --- /dev/null +++ b/mpsl/include/mpsl_hwres_zephyr.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +/** + * @file mpsl_hwres_zephyr.h + * + * @defgroup mpsl_hwres MPSL hardware resources API + * @ingroup mpsl + * + * This file defines fixed hardware resources used by the MPSL in Zephyr. + * @{ + */ + +#ifndef MPSL_HWRES_ZEPHYR_H__ +#define MPSL_HWRES_ZEPHYR_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Reserved (D)PPI, PPIB and IPCT resources for the supported platforms. */ +/* This corresponds to the PPI channels 19, 30, and 31. */ +#define MPSL_NRF52_PPI_CHANNELS_USED_MASK (0xc0080000) +/* This corresponds to the DPPI channels 0, 1, and 2. */ +#define MPSL_NRF53_DPPIC_CHANNELS_USED_MASK (0x00000007) +#define MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK (0x00000001) + +#ifdef __cplusplus +} +#endif + +#endif // MPSL_HWRES_ZEPHYR_H__ + +/**@} */ From 12c935abb944a98bbfaea6e6040fe19c7901b03c Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 29 Oct 2025 19:46:48 +0100 Subject: [PATCH 09/15] nrf_802154: align to moved nrfx_coredep It is located in lib now. Signed-off-by: Marcin Szymczyk --- nrf_802154/driver/src/nrf_802154_utils.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nrf_802154/driver/src/nrf_802154_utils.h b/nrf_802154/driver/src/nrf_802154_utils.h index df93008df5..783522872b 100644 --- a/nrf_802154/driver/src/nrf_802154_utils.h +++ b/nrf_802154/driver/src/nrf_802154_utils.h @@ -38,7 +38,7 @@ #include "nrf_802154_assert.h" #include #include "nrfx.h" -#include +#include #ifdef __STATIC_INLINE__ #undef __STATIC_INLINE__ From 031a2ca33c33168e298081195f2dbeb07b0d4b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20Chru=C5=9Bci=C5=84ski?= Date: Thu, 30 Oct 2025 09:44:52 +0100 Subject: [PATCH 10/15] nrf_802154: Align to the new GPPI in nrfx 4.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GPPI handles all PPI system and nrfx_ppi, nrfx_dppi, nrfx_ppib are now deprecated. Signed-off-by: Krzysztof Chruściński --- nrf_802154/zephyr/Kconfig.nrfxlib | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/nrf_802154/zephyr/Kconfig.nrfxlib b/nrf_802154/zephyr/Kconfig.nrfxlib index 37664c1a2c..a3af88f728 100644 --- a/nrf_802154/zephyr/Kconfig.nrfxlib +++ b/nrf_802154/zephyr/Kconfig.nrfxlib @@ -76,12 +76,7 @@ config NRF_802154_SL select DYNAMIC_INTERRUPTS select SENSOR if NRF_802154_TEMPERATURE_UPDATE select TEMP_NRF5_MPSL if NRF_802154_TEMPERATURE_UPDATE - select NRFX_GPPI if SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X - select NRFX_PPI if SOC_COMPATIBLE_NRF52X - select NRFX_DPPI0 if SOC_COMPATIBLE_NRF53X || SOC_SERIES_NRF53X - select NRFX_DPPI20 if SOC_SERIES_NRF54LX - select NRFX_PPIB11 if SOC_SERIES_NRF54LX - select NRFX_PPIB21 if SOC_SERIES_NRF54LX + select NRFX_GPPI depends on !NRF_802154_SOURCE_HAL_NORDIC help Use of Nordic Semiconductor proprietary implementation of nRF 802.15.4 Service Layer. From 6c5016e37fce5dcb3c1def3ed2ec587bd5b82ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Stasiak?= Date: Thu, 30 Oct 2025 15:45:43 +0100 Subject: [PATCH 11/15] nfc: nfc_platform: replace nrfx_err_t with int MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NRFX drivers now return errno codes. Signed-off-by: Michał Stasiak --- nfc/include/nfc_platform.h | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/nfc/include/nfc_platform.h b/nfc/include/nfc_platform.h index fbfd7e632c..23d5c2acf7 100644 --- a/nfc/include/nfc_platform.h +++ b/nfc/include/nfc_platform.h @@ -61,10 +61,10 @@ typedef void (* nfc_lib_cb_resolve_t)(const void * p_ctx, const uint8_t * p_data * @param[in, out] p_irq_priority Pointer to the interrupt priority configuration. You must * set its value inside this function. * - * @retval NRFX_SUCCESS If the NFC module is initialized successfully. If one - * of the arguments is invalid, an error code is returned. + * @retval 0 If the NFC module is initialized successfully. If one + * of the arguments is invalid, an error code is returned. */ -nrfx_err_t nfc_platform_setup(nfc_lib_cb_resolve_t nfc_lib_cb_resolve, uint8_t * p_irq_priority); +int nfc_platform_setup(nfc_lib_cb_resolve_t nfc_lib_cb_resolve, uint8_t * p_irq_priority); /** @@ -75,13 +75,11 @@ nrfx_err_t nfc_platform_setup(nfc_lib_cb_resolve_t nfc_lib_cb_resolve, uint8_t * * can be used to fill the Type 2 Tag Internal Bytes. * @param[in] nfcid1_buff_len Length of the NFCID1 buffer. * - * @retval NRFX_SUCCESS The operation was successful. - * @retval NRFX_ERROR_INVALID_LENGTH Length of the NFCID buffer is different than - * NRFX_NFCT_NFCID1_SINGLE_SIZE, - * NRFX_NFCT_NFCID1_DOUBLE_SIZE, or - * NRFX_NFCT_NFCID1_TRIPLE_SIZE. + * @retval 0 The operation was successful. + * @retval -E2BIG Length of the NFCID buffer is different than NRFX_NFCT_NFCID1_SINGLE_SIZE, + * NRFX_NFCT_NFCID1_DOUBLE_SIZE, or NRFX_NFCT_NFCID1_TRIPLE_SIZE. */ -nrfx_err_t nfc_platform_nfcid1_default_bytes_get(uint8_t * const p_nfcid1_buff, +int nfc_platform_nfcid1_default_bytes_get(uint8_t * const p_nfcid1_buff, uint32_t nfcid1_buff_len); From 79c6352119b0ddc9c889f3617d22b01001cedf0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Grochala?= Date: Tue, 25 Nov 2025 11:21:49 +0100 Subject: [PATCH 12/15] nfc: rev: 10bfaa0b7e39d671db3ed39346dbdcf77dddef1c CHANGELOG.rst contains the list of changes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michał Grochala --- nfc/CHANGELOG.rst | 8 ++++++++ nfc/include/nfc_platform.h | 2 +- nfc/lib/cortex-m33/hard-float/libnfc_t2t.a | Bin 12748 -> 12580 bytes nfc/lib/cortex-m33/hard-float/libnfc_t4t.a | Bin 25818 -> 25566 bytes nfc/lib/cortex-m33/soft-float/libnfc_t2t.a | Bin 12732 -> 12564 bytes nfc/lib/cortex-m33/soft-float/libnfc_t4t.a | Bin 25766 -> 25514 bytes nfc/lib/cortex-m4/hard-float/libnfc_t2t.a | Bin 12732 -> 12564 bytes nfc/lib/cortex-m4/hard-float/libnfc_t4t.a | Bin 25746 -> 25498 bytes nfc/lib/cortex-m4/soft-float/libnfc_t2t.a | Bin 12716 -> 12548 bytes nfc/lib/cortex-m4/soft-float/libnfc_t4t.a | Bin 25694 -> 25446 bytes 10 files changed, 9 insertions(+), 1 deletion(-) diff --git a/nfc/CHANGELOG.rst b/nfc/CHANGELOG.rst index 11007d538b..8650acfe82 100644 --- a/nfc/CHANGELOG.rst +++ b/nfc/CHANGELOG.rst @@ -9,6 +9,14 @@ Changelog All notable changes to this project are documented in this file. +Main branch +*********** + +Modified +======== + +* Aligned the :ref:`type_2_tag` and :ref:`type_4_tag` to the new nrfx API in version 4.0.0. + nRF Connect SDK v3.0.0 ********************** diff --git a/nfc/include/nfc_platform.h b/nfc/include/nfc_platform.h index 23d5c2acf7..2776f2bb0c 100644 --- a/nfc/include/nfc_platform.h +++ b/nfc/include/nfc_platform.h @@ -80,7 +80,7 @@ int nfc_platform_setup(nfc_lib_cb_resolve_t nfc_lib_cb_resolve, uint8_t * p_irq_ * NRFX_NFCT_NFCID1_DOUBLE_SIZE, or NRFX_NFCT_NFCID1_TRIPLE_SIZE. */ int nfc_platform_nfcid1_default_bytes_get(uint8_t * const p_nfcid1_buff, - uint32_t nfcid1_buff_len); + uint32_t nfcid1_buff_len); /** diff --git a/nfc/lib/cortex-m33/hard-float/libnfc_t2t.a b/nfc/lib/cortex-m33/hard-float/libnfc_t2t.a index 437d491d9177f79a16237dcad502ae0c0c051f5a..d3cfb694943f95d67d37f49de2b93f4865bc707f 100644 GIT binary patch delta 1985 zcmaJ>Yiv_x7=F*Cmz|ZiYuBzfmUc(GZij8%00q>gEc4i1U{hv9MJb^17zJyBdPqhJ zN)!`jhA;du>JNdK5fNLP8Je(gi6+JXcHRPBVlc|45X6YFiV@%MwES3q_$A+YzUO)0 z@4bBAIp@@d1M9~(H3d%r{QtzaV#{)$T;zmBon3f@k8vY-p6|%SCq?yz?DaqYy)J7B zrMu`qw@p!s`9GkeecCB^^=qn2JN+|sF^`UckQT~=+}`h3omxOWpbFWk*?1y#m#FxQ zPQ^1Fo#QW)|C$`gLZqpm`Cpikw*(8}{yLq@xzj>6J{8Q63oQ7n2r?J(_g|XXpsgx+ z1_GK}k1K(qTi>Tx={c-8iY?)CGAiWQe$A}>PUUIpjndA}a81%cEF4H*oG}l~*P!jw zqAAHo4ypS!(B7GWV^B3DH9g6-nmF~v><|V8{~fokT$1ccvpxm6OJBS~m=O1lmFmM| zC0m@Sq6)Der#p42Wu&O+mX^IG?)Zd$SsyDwd>%UHXW;ys}-AXA^ zmt1JXV>{o&p9IA=Jrh$|tesR4hE1VV!=Pzg+|w{PRubXnly^{5BPq|Ix34Kxn_`Yy zp*|_-O2IaT@i)GbM<{S zS|sI8rKcdAo^q{F^i{b|?X{k|&lje`YO8MVV>y}4B1@6lq+(PFu?y3R{tIq3cUU!5 zh_HLgA2E+|_7dF#4`%2foCWN$wtADai5xy}ZRa*)&bpRMU|mfIm(DM* z`G(K5G1tm)5-zLatE>3hD*jv*-&Mumui^#bOxi=!1yTmiR5_fl;@7IU#FqoGVqIW^ z<_hmMxE*>ceAM7hSXbeq!Cmky@f*Vl8Gx564gtfV9$ug005CBpfESKd+0Rt$HyQhV z@I#gTS{1hmkdH*2!e?21@H+Za+qI~Xno*vXLM?_y{H7-vY0*a&gZRgJ_#swCe&KbtS?vJqvt&2LZcU_V zrOAq;Gc+^;ND{H(39sA3%CDiBpvlHCMM&V%2H7;i)5nABXf;lnhA%hB{49@$8=`#4 zj$buIO(pW^Mb0OifDXooEws9wUb<1dn^r#3Vz|X8b4Tz^Uo-s;KJqo2j*>luzmYvj zb}Rb*GJjUUZhw>;#z+0l{I>$W;*avH9ryuhfZvg(JJ1}6a&c@6G@IholxTGPWWY(< z);ZcyLpxp3B*V`ZWPbC5<-Htkx43bQp>3>a<#>lkTZB`=X8v9gyE~)wkEeGI>q4^W TxI{OPOG7e0?#MqJ+T{5UBek+v delta 2169 zcmaJ?ZD>fYvd!tJZdrCT!(1HK|IkM=Ag?65`OfgU8<=s&kBwI>XRbNd*}~3Py^%8;eU@C~ zqeGYHA_`Rw%)vKc4tbJS-kqSTq%}sH(!ra<(VBGf5!BSph|-EyO>t_M?m`{)ptH8E zM5{`IB)9q%Q41)i6mDYbj@+oO<)gv081>FX{u5J7~wObPwEL99qUeM-K<{ow z3fV!EoG=|qaqR>*By#LuKa;=%S90vLroG&V_dzDdUc_a0!=l}|E<=I7fouc>U=`U@ z&@}dK&{7@WJ}_7LJrifQW_5$p?<6 zu~C0=Lt!s7`PcD z#RkBuhxSf@2*oadDl@Lz0H*qI{~ z@y(7=v;Z6@i6Zw9?p%ff-I=zE#m7p-Qmg=rG+K$>F=0Swajo8uk=Rn>pb+47B=lz?J9u;P4q`se zMw5?Y29=C?Btc{GTOnUFqp!SYHg%QJ$kBeR8kfEIjWMh6d`29cytMa5z_K>Qe$m}DlgB8LB+^CW4 W4obqj4KF4c3rcK*nEWExSNso%()Psw diff --git a/nfc/lib/cortex-m33/hard-float/libnfc_t4t.a b/nfc/lib/cortex-m33/hard-float/libnfc_t4t.a index 519833ad809fc5b58e0d9b5461a3017ab2556af6..6d0b57af4acb62f3f6f4d0dc2189ab11132c4390 100644 GIT binary patch delta 2596 zcmc&z3vU}$7Cv{zZc-<0or#-=9g?vpvBxuM6OvH!j+++Ov6Ci(lt(DYqCAEzyI9>7 zn%$Mw2nwobLQ8K!U6yByP!KEOta*hH67guMRMatPL@0<2u)-ikTWhynBCWLDb0<@l z_z&!rX1@EK`<-*Xb3HzPntXMN9R5qPdo#fQ@!62qJRKsR)$lFNTj=dQGB>)BZuf?g zLq_>Rp?ZtqR2woQ{gMu9S7z|ygTKBxs)YsZlOLez@{j+yyen3vElq&LdxxX`#Rt`0 zM*0#oxJ>21DrF3n^{9+SE5lCB9e!a4_#!cPf=eZ)ZR)=>tXeN>p#G8p65+fdy3XfG zwnwEzX<|0JM{7=B8}p!zj!aPGQq$ijLYOksWX3YaajjJ6b3gL$tJfH6>?#d5oidb& z&HLx@9u2fiR{AZd?_~nf5*>o?7^R7~v(kXLQ_-6>$CO)NRQ!fVA5u3NL6I48n-yL* zDn}w5mN=m`VUgFeZ2ryy0Hv{gsh(XnNhh)Io1E>3QYaIdgk;lvvJX+rVwkB7#VZH?R! zv+!hFtSVtkIj4zSXK-?h!OOg1lZOou|Cv2KL6mO8p=?|jym(~KTzwp?fq1M-`h zXK`PK-`_;GNO!37tlJ&uL!TBH^Xu`J)<-0>AIL9erm{r&2v+%z~2mI@j5WL<1WymPiK#drUZxn|gPDLh&?7?YkaaspXdks!&TO?9# z-&)<9D2?-}#%bR`Q2%=3kG<^+C2=vV=rw)pzCg@nd37*nWOpzINKYw37HFeu$gsK7U!U7Iw{W zUfzoz@wW6a{{v+GGX#KxHPCvDUTO&SE>WB`o7gX30Gr)3 zIEnSEZ-gW?u|~H5+-~6m4AIr7#h+q$D}ZTeH$aN<+W=+}xj}#r85RM2%n%!%VTcV4 zhRp!y7;XVzzabX`_>$oOz#_xWB*5R;rVZeGh6Mmi3~>UNg)$;DcqhX+!0#-6%))mq z{Ei_Scd`kwfr}wFtYFx=a+9o&$an;xmf^iPL6jxN0Uojn%p$Txb23acC&NT@GE6il z!#r~`Y~*BlXppUHbXkVzxZ9*qtpR@5$bUf-E#;Mau`M!oA2P!LW*}DoGW|l!H#`}p z54Wo18TwkQWZ#Wt57WFQLC_^V^s4GnVP| zZIXSo1RzdN;ZC&Sozn}rTf$g~mbXjxWsFtP9^BOn0EP6Pc8R#?!S(>xBGA{{{q_nw z-VgmN3OY?eL5D1s>0(V89qDvpU~gvt-_(3hneT7ScTv|*!f2P%$`KCYRE1dY%74fz^>i02 z^=cO@HHV3#W(VO6s?o?#>amr^?cGl9@fF1dOVP+o;yPrfjba&ntlLRa^iSOZ`w~vS ZNKbW3_A~gKJxVWhOWb}T?dmyM_g}Y@i9G-S delta 2776 zcmc&#jZYir8Gqh88yrZAu_*+@$k_+@{DE*F3U)B9M>EIR5Kxzltfj#zO?F$WV6kbs zN!!e(sEahwZh5n*-;I*2V;WjvR<+QG5^Yh_uI+j*NlTMyrP?BQQZ=D9UA?Vp_B_Wq zZRj7clkR@^d!FC>e7*14f4RUezs!E}+wARrfdAuNwJv!s#@^Z@Y!CCTWj^6(E#K*m zW%uay%eKHhx;@aD-`_855cpz#@Y>`zN0MsXp}zKa=(zsTC)erTmugf$o&#BQ4=0tC z$-uCl`w-e|4fW9H)B~svqPjm>AGfQn_=#QMNv2#GVK%d13H&!t5qG81`!XSZMLR9$CX z+KS(=H)unFt-8-h+-QV&MsG+67~+)LfkB=v&~$G7T)(`)+_$9aGk+legc`@m$y7Yu zmkW1k!fKUJ<$ql#&g4KwFECGeO0h|<44Gc$thIh`=DERZKRyV}56;5RgcjlW*8ZvD z#-SE1w0o*(9|{eypDXG11j9SjC#1#c%5*6OD3N?{AeefxXqOr^PbR3H>J2ZBuigr6 z{DABnC!OuAXLm5uspaO&WvRcyEyX*H+~j*?UX(jDaeAs)BVo>v<#;J_XkPeLZKA|% zb7i=Jv44ujfT~lQ)1f&vUhXJTGHYL8idPquur4a1Zc#>bkUl89J;(ez^$LI8^5C^& zV@t6s<&H}o{T&I9(S#^_wDvwWE&LSA#}+IhGpgh zU%=9?>J=Kp-Yuc2qRr@RO*fl=5_ugS+g}$dwTeKVQr~+y_D1=um#T1rRSEgV1VMQ; zpDQr`BF0N^{u+zCAkl@6??t1d@EPr7qir4O&*1 z+|su}b7!1saW=Fd5BRiq=N|2iE?1|exL=d{jGCm?f*2TFwTQvDL2B&Vpt{p*dM1NZ z|C#mWa)sNOV8;TVsql?Fd(5Xf)ujTHtNK7%%XWdk+fujTtTCnP^zX37HtuhA*=rUB zx9B#G@*R{rH`MxVwrPd|2v7#?0C1cydE41C7nM=g%*T{=c0R|ID`NHlib|IqU%t1F zKfaEiK~5$cJ{(|!*Vg&3uH%(LDLMefZ@QUhA$+p|b|I%2oAGu)1>9%ysF83Z{9v8_ zsOkT+p}z%wVe%$}+hNh<7K1zB;!W$b09Q?c#}L%Ozi$!%l!vq_?*=$x^2Z2K|CGt62}f{`j1Dls^JKUO;6*}g`;Vq@8BrJnphF;30;~{Xfqx^! z0^cLV3BFH=)vOYx0Im@Z02B$M03Q=Z@Ij4~16T;N*l`Ux5EVqKkT%a49pM3h@0<1? zn)VYWKW*}tO#Z6L|3!$M|HtICHB^W~h=m0Sv7iuQmMYpth6F&E5IarM!UF(CLJVZ= zIZo(2+9?1fqyUtV*6W10{vsi+HztM&?Z~MiYLFVDtLY#>En>yj0FNi!@u}nM02|41 z|JwIS6KO zavAhVh*l_Tdfj)H&K2nEL#%}fTR2sd>gUgp7Rgz zO-EaTH$-G1Y~``hIzAk!vTk-_gZ%!8%=YnzBVIvq@-vZE>xdQ0t#GHKJj#hSrXOSeFd>YAV{yGxX$%{yIzNOnM=vKb6rIzpSwxeOZ+l$YKBX#^Y z24B3vKQVY!^u~hSQCcwiso^QZ@NBdc;UCB^^6MzLw3gzw9y@!J5B7M4x2!xQ)$)hX kP~=bdc&*#Y@Er43dgQX^P54QQd`9vJlg`}c+g@z>A1nmg^#A|> diff --git a/nfc/lib/cortex-m33/soft-float/libnfc_t2t.a b/nfc/lib/cortex-m33/soft-float/libnfc_t2t.a index 3102e9418861ff23336182b680b7e5f7421ed9d9..28b0cd1e570bafb24b74074bf9e427ed3d0da6b8 100644 GIT binary patch delta 1971 zcmaJ>ZERCj7=G{9+TC^SUBBCvt=+|~tXtO&(1AhtP!m9nBLcRTB{X4v#rVT0bRr3eADJNx1$93l)li?Oc7LlXAAd?`|Y-l(#!7Hz(AN+m)fviSD z%k!Qqdqbgo_71d!rzE*8t}0gb+uxv#Dq1>ysxJ$2IPOs-)vLUxaOue#k!bR1KIF+u zA;(nxBYGM28#5qtfx0-=U!Re8SLgikDvin5Qd~MRSsg?PH2sqYnF)B}w`K;^wK+$p zSG8%8kT-ABj)#o+?Fm`P1-`cS@(fcab_V_4)XkZ)&Uq>{U&sqFHgHmTR|WM$QYF~> zL?t!BG&0I->F&JP$Y0q$>)`!LSvob@ef!YB#pqSTol8%2wa400v?We%(-yDh#`(je z1-pN=V2V&HuR!qHRI4T~SeFlJh6RTU%xB};pW0{vBJE@c*FEp_WsKJUL-aetiAz;o zVxTIvP>)A<#3BFCPgm8c#b0tO#JUo_kCR8PmbR?Xs>XH>n zDpYg!7^j7D20RK*59ZHFG2sOD88ZevEy+*UrcQU#pW(*onp(HdR={86n6Sia&%cr5 z8y!=}GK?%u>`R+eW}F?vd=XL*>Yr=PrzY&m^I0ZXshIMyoK59I-LpJbbHyIFs$x=3 zrY6CknzVK;)YfL|)FUgaF3QQE(x#bL(PY$Tki|enu~!IQpIWH>PIi~I7*&M}&}Wi8 zQ>HQI0syd31}%s;fGjmOI%BwGaGLPLf>C$z40+iYW`@WKV=ogW<>f6*D!ZioDm&av zrNtp3E-m5fOL%Vyf2oA;FX11T@Eme#8pCM?aTv~*2&PN;-4ZUca{*|vRxm+Bk$33a z3>`(jN9Pjs6*;eSE9^r4a7Zu=@On|;)dhBV>k$FK_#*+FaIVCEzUZH??{~wmCH}i5 z+{Dc_5TSY=yiiZxuUu*0IjHq+8ypzw-Lh+_SMA%jdFz&)2S1-@2&ejX4uvD6*8Blk zW>LsjW|?eQ;2?HOGuaxf%#K-x80^B1(bzV?rvM{z1RbAkMd!3@OV$`lK@7F?Ethr zx^X2%3joFf@tI;lYXLS>z7Ajrk*xsGC}KhM-e^I4DPlwWC@uyVp@{MKQ#1e^pooo_ z5c}!Ej|-YGipX{VJdRj{iLoiY6Rc6MJXQ4Ti7}v_7z?JOW&?nPD88UmsM$1^K?zwXEL*4~Z#o;90$Jm=k#C%m0A_#~ znReQ&G$kI7en|+>!I0Bor-N2hjx&mrju>u;l2(^2^sx9#(F1LDNx}%)Rq_hjuc2Mi z?dMz)J8LHAUG>6kGB4&`jH1v;sys6L{hTo2k(e0Sd^&+0=kNT-f7JOO-UfXSLsmF#q^X+jSyugU&mNtR mB9D*>{H`HCRW}GDm?J{UeX?*?#M>sVKA9b{WS{j7I{pO+jk}rv delta 2139 zcmaJ?4Qx|Y6h7~7EnU}kZP)c@H0>UCWd+u4AU`VE7E;PKHYQ3C7uPXH9tK8T7JVdQ zC!&Fb5%7-0_>-U*8IhPZbqPzDXiN+mkq&3^gI(Ij?VttBE%`?>paj z&b{~Cb8qs7x1Q}e(pOor6X5@i)mlC2Q)XURw!Ds=;ltbv`d8$h^}J2VterP<@T9Zw|?Jn$#C*pdz&d}kJoE!&dz?HO^T8A7pKE9Qua^7InYOR zOpLuWN~)|hM4Ga`D}#}mZ00YhshhOP%bJy#UAb@r>L`P(wxvQ@lmR))8U;tnm$gO8 zC&T~AT7X%dX^@4W+-y_4v8ic!k8eEKT&i+uM^YG#PE=q9Ec!bOG8gnV|32NLY#evB zcol~ljZ|bE>N^o5em6u)vkL>l=*0DC1MYtAgi;jw6YEl9T1_FnsPCq^N>fWX;7#6` zE^3*tz~T#8Db5E^$4)4qoMe9p4rY^_JG`yZ5pmetI+PRPfrO`3i3Jnxb)MGZL}g<3 zfa-Cvu~u(ll9r;m^1cth6|U(%-Q(3LlGkFw?!dvrL5Vm zm=ba#IRSy>grluq-I%UaUT<=IEhoaUI@P+47NM9yHU-W9x^DX%rT3x+O-K?R6*22MlCc0tj)ND8)SQpUECV>ld*;y$dt_c zflqlTRUbCQ+5*0|fOi(~eFgkr0e`oEr|0q%TttDi<7jp;!PMLYxKqGOc}&y?6&yfL zDdgM143FqMu5k-&(fOdpZSb7VMUAKIa0rFjL5sYlC-~8~gA>vP@sH*#;DSp9@hLsN zK%4J|TtU24nB5JFcA{U20-YeLP4L3QY)47c(NBHss@+)D*S}ru>f7Ek(AE3wK$p_p zw{2%{Kl`=hB+FXlQZ3rs-@m)RYhX8}v0Ik4?69RNQ)_*hOVR3l9Y8grX&pcVVKcxQ z!WMw{2wMTp6RrpNQrGViw&kA?#m!hA{}7f-xB~FKVZ0q6Ot=AHkv^|e=ZQQ|!56yl zRbGG@M7|LqM~Jg%Bc9$aExa1w47&b~d@HEXrO2t!7-2C0?ggfe0FUW5dGa~h^8L)pnVrx?w}{)U?=QLScA2Qov*gD)eb|(@A!=8;}-T?SvBWm-7W`P z;Ib{=V9B?S?u_nFL^Go8L*vj$qme)&(yX!6X2vQNq!?5xLz+J!lq*-P4dZ$8hY<#lS>E?wi;GdTCOrcLNte!aV>b+Qs) mm9!W4SgPf<`fSpN$QoF;PnKp(_$=8$pUg*XnGby1%l-j+farz* diff --git a/nfc/lib/cortex-m33/soft-float/libnfc_t4t.a b/nfc/lib/cortex-m33/soft-float/libnfc_t4t.a index 1325069880d0312ab5dbd92374a0c0af4abf8e81..d37671c78df356a88f5499913147a4ff9e37f15d 100644 GIT binary patch delta 2542 zcmc&${ZAX`9sfReb|8iXV-rGvI%gl)#~ld-=n4)Y7VSJ^LtriGOPaOT60N6ZORP?s zZc`OkE1UQsG+CakN~?A+$<)yowNR_w7)y!P*GTPp9${kb)G-astyXPb+o;|ujeWmQ zE>rP8u#=9@^Z7oX@5|@8#}ZFmVo$x!PCcI;@B#cE-$aY71)qr@ zGQrFj)Nh0FQa+NbwV>@+wmf=wZ9b8Z&m-Z3?w+6cwJZw|rh4mSFhmLsD9vu1b@Bay~Mmr5-PN zl_o2cX}8V~_AVSNZh_WC?0gGWfb%hV+Qmt`JQvv4p6RyuT!nhwuqUX*yG2iHPFA}t zRGpbB)hU?MiRxWz%G{QO^du!#&ThaD5c^0Lr{GOBq?K7SPCFDoR;+@*7hr+^Q*Gr+ zQx&go31nyHnBJF%wj1od$!g1Iog3_;iEd`o=VDVOSEqDZ6rSr#HD_Ei-V01?wI!{` zmNnUSY2!919~UmoGJU}I=v$UYKRJD9G4^hScWLMF&O}H|Evq5R7-G}X4{&0f+C@{Z zEf>iBQnujI|BdZScD2c-MZ+_+4cZ&|?WyLpXsLgIih}L2t}3QVmBJrrFXkV|bv<6Z z*+P}&F_vh6uf7xeU4^~084qrALKP!`_S5`)f$6VeotNz@>z(aPUs!e}eO478oL^)~ zQ2d!w_(hwtH`}0(*?tp@gx&cL&KdIq5x1hZ%XYWDLwa1H#@0Ia$$SG9B*9VpG zi?aQ<%lMTtUMXFx4nXxo>vX9fyU;hn z(a-PaB0EP}?nFma$^tZ_Lh1(mWB{I906GcB0S-8LoNzzDj~x6N;jNg5;}G6Ni28#L zex2|(faA{o1frw^OcH((-~{0gfK!B7>~@A0g8*j<_X50z4FXuWiyGYlaF>JMBE+dq zIQ(J4I|0N%2LWb?e+A$oqBIKd3Skw%8-&>KO+xHv6QbeEh*{|i0Q6C%6u=(|M*vm` z`vF!7`vBf2tN{3s5FOMxs3FpThY8aF-*Na^2Y>D0UkPz=FB!!8b%fZjfk9R@qNAin z3Sk1Eg%BMiDKQQ3U8lfBL`oFSa6sV<^Mo_Z6V5P?oKYh$<>7$z1aQiFM9BBN(IjH~8eOyK@UYKbP4szo*w=k8$3sy2r8G zDL&t;ZYbjTMc}KwA@?c<&+@81Ra%jFXJ1&lzn0(L7j~EMx@-KwKGi)@3y|hd<4SSi zr{IgYTE$q5e}=0P#+tbrRoyN4|4t=OMO9YEk3}O=yN{oZhNT8KkM-8`-$%Xf9-;Uf zDtdX%?ugXyYq$D&*L zLxTVKfBZec{~{H%WzTat zcO(4+X6c^Kect!;e0|^Z&(E==Z?K>IB765LfdAuDzan`)%Ff&&t_ufwl}8b#nt0F? z&2HA47i;|6b-O=Qd~jIS!2hM<==G^b#}jJIp`QOM^xXXD)0^~cO}f<^vmlF}EeYky zlz)q!{}8&H4E5OO)FY@4pn5pb9J8w}v4i)5H<4_~2)WF>#s5i>B5p{!Z7Kvl)InyR zLH-YqD;r738E59TQd$k=`;#s#XMM3#5_0p`GEsCX^crhL{gCR^#HEkKU;F#?uH+Y0 z=sKqd;ug=bSXu?OSdza5{@03~i3SZiU)7zNlcly1??#^%Qd>^7Xjgnb-KCBB@6II6qSaREadR(mkW@e*_=5;`;%%6XCzY)dM=k9(1fLWq2BkF zPMpd9j9y~i>ZBsIWN77$5^r#=;h%c#**k})%XMRIT5#iZ**+E=VNWTk?l{9II3%RR znc7q(EGYfOz(^qZLfJ04G;b!L9Ucr9CYEl8t_3V&6UKqVQE|q?D;_ncyc+|Vkd~jT zmZf2vM~a1v^tAu zWz}@K#^{v7fs!k}fP6LH*_TVTn$2INVs>4QUZ{TaQaz5eJ}!SYQc#{L=1UUu6)@nu zUaMWcgZbtbEeVIl2Tv@p1W3-zemeT*Z0BYjeD~>275oW3c%m-$gIs);DK4DCTAYFn zr_hH}uv}qs+t6*AC*w?sx!}A!(y9Gv_L;%RVna%b`7~+BC{tQ0iT=?gix_wpB=^v5 zswcIqXEI35|KndR+dR%VJAgN`atNSYD6(feHK)2zVsiZuNXzNY@$+q~ZKsS`Hl%*J zd}FKH8-3(x&22ARK7j(h7wjj*SY7O~9QYawf=BciAHzMQ%17GwvQ@_zfB;p{4FFFv z9(A#_^r3{EQD`efP0Zsj5YW;zy=SQJYpoQgYU1G0~GxV$A zC6l)r+zthkTMX`ii?{e^0j`L_6DOZe`!Daw*l-k z`Ll$mf6?SKgyVQdMh6(+Ra)2%@EbyG`?scW5m6Wgpi3as0$d@)0{=pY1zsb>3BFH= z)hrPv0j?8{0F((M05=Hx(NH7R02ab5cHBrChzcTANQY;Pj&LWy_ssRj%=LpNKVtIN zP5!3I|3!$Me{6C(8Y)B~#KHoESWpl#OBMCfLL4AWh@B?LaVLP05Ca)!juSeI>lAc7kP)8ekmcLJ$h#NVL zngX;w!ZV@OY%hQO{`I`jTbF+;^qj~}@;!Zic8veDPqv=Md^uj|ldJI03jaj-wLY&k z(}4Bz`mik2h`cx4E`%L?Jlt-T@JosCABAOW)B&)cAIGZERCj7=G{9*4}mNrC;k8qg}^VcK30&fzIJbAw zKJPj2Irp@)0~7tn_LloT2KfI@#=|YiPp&iET4gOc=?^oV^V4_!x_u|4 zMdV1vbNP@gXHtJcecgOh%%@4^ntI_E2vLU;^K1T;(g7h!^Qd0+4V9ao`&o&^AL3x%5n*!5Gg3CGQ{m3+moYW;FSj4|cmfH!e{p&+(WgW3xjq5XBuq@7mT z;M4+q0C_DjBdSdG3)76+Lwua4_5SYWXk&sF*rc!P;!kkp+~io+5*W)m6sqzngnyiG z(8V>|GO~Um%X~Pg|E`Z^K`C6*OrGL;R=$0y=jQSLuOpupPJOYW+ZJs~h{3y=?~tE3 zd1QVetWst4KlLax{!T$%9rtwxF^S11MO+!Axg14(X@&QUebJ#nK5{=m&i(itG< z1&7y>8BO!muKB5?G;?^`qOlW9h{1F73b`#*KGK&;%(&FX6ce_nMVUz2u5t3}%g%N_ zWY&Uldpt1*fyA7xOV+n08?>hQ%bTRnsaz&Iw26^4qUa_%A^d~IIVe$@FF=d6fd#5^yv^Vx z(3a!6!6oR+ao*rI*pK{flVAkkNY3Cj3=VkZ9s|JSJqx&CHZOiL7q2k#-S9(R{8k>f zaLWg%p?)5`P)Xh_-sIRfsQ2z292oB1vwyf(>)X3~XwSa!k5(4eCHnRa*C}LG$y=n= zs*-ahA+lqQlQ^ukWGGymny?NtcnUYJ#x?>z1pu)fAWX3XV0#YFGT6dH@r}W&kCZ zxQU__0M`QX;aovm0d`Zq4PY3N7NS$cLJm?~2XKfY9_TQ|B7jkfxc*U!g#gDW;z2Bk z{d7`>6IyA62HF7bLoCCMTd0n^<7F6?59Q(sinyRr02WMJ*$w~+QGCpxP_}D%1F@I9 zZ!0y&0sJ)DPrkD~P7c`Xj!VU4&~7KS4(s?yA$7+7J delta 2148 zcmaJ?ZD>;En4OwAfb{`CeV{@i;f>kDNE35uc{GphE=+3#hWi~(d!pZYK z&-r-Id+rN4x#MEjiQcM;9)SNhR$uH&UNG^xE8Ca-Xc zR5C$^nm;G%6UIebGQq^DEce}T;(p>-7DD<(tJof4y>H|?R@`wTJgGl_&Dv&*ER7p| z&u4$mri9?&m6;lu)I&4yEodt=CdhA%k}4_T;M$CPYA9HjNj-wPhKUtXw_>SMF)$``qcO=8^=Lw8eF!q47!#f!cpE6>1EJF_SZ0%BHjWtA0%K=_RAj z6bY*RQdy{(o(LxHu+0UlQ%4I1ICCinz(WDl;T%jHGaCYqEx1J$464hZy0XC93`@8n zcEHfVt!2L(>bQ8SXx>eJ&_$uzvLM#y@pXB;J&zyE<45xNxjden%Lm~K3Z$Juvw{(( z=LW#zJYK?Mpth)CFLDZ@y%kLGvc@ASH^X*~?^n46-q5(9@W_Y%b2AS)!W_Q-`C$U&_`kHzIh!xZf;D~7r)I7 zI#aF}p8z)?b+$O*z?fRluHv(tonfDZ|= zL6e5`2&j=NLTrR4$K%f`L=QGZNR!17b%HoFHI5qLw_)G_ZSa5uA&!ogXM66s8gX8w z$f+`JrM~T~;kt;G2%Hjb)N}7$dxFAMSRdwx4~B zyJ6Hq?58q`yUp&E`MK-N?(~b(==ZWUPD#9tehb^}lz2g4$DP&O12*RL^9F(4LXu^o z%g@!a#V$YZw6HC%YHlk#;PQ)G@lFE!-fm+TT^7_X&(Tcfq*a#Z;*4rsyQ=NcG>+}X z+!0k9*R)){C#bcvBDY^WfM+aI<67Jn@k?Z3*6EhShemvr?1)?9LzdJR?p^kO0RV#D AF8}}l diff --git a/nfc/lib/cortex-m4/hard-float/libnfc_t4t.a b/nfc/lib/cortex-m4/hard-float/libnfc_t4t.a index 25eed47e15cffea9e6bad8fb9e04d5f8944e6766..3c4d2c41a4540cdc1c4ffac65ba6ac2f7b5ac90a 100644 GIT binary patch delta 2597 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 diff --git a/nfc/lib/cortex-m4/soft-float/libnfc_t2t.a b/nfc/lib/cortex-m4/soft-float/libnfc_t2t.a index a9696c33883ebc2e5a5b2c119323c3cde9d0e257..32a44daf3bc17e174ab91bb787b328719544180d 100644 GIT binary patch delta 2011 zcmaJ=ZERCj7=G{Vy=%Se)=Rr~{bK2MH`eWLyE%ZCB^;|yV_6BmIv!w}zd)}i!=Cpq^y z&vTyhp7%ZH+*4ck4;gs~E>lzed6#)Ywc&TY>c}^R<~PLPXHObs>fM5@{JY)vQ&OC(3y1v4U#H6A ziw$VKkQcj78aCsU&ex7j!C5G2$?<+k=bGP3b9!H1Y8I~VnsEyuy)2!a=(~4h>*eST z>;0?G_AZaLCuuz$=CXCdF-x6gba>Vt8lJ7vs4D0XzFBB9rKXK})jT%Kof|dpn8UN6 zS(}!V-Il(^pI^gh13yGBS;wv}>UG9Cl2Yx$$}h;IMO6z^VVx=m|C6LP9_$hIhD4yJ zHWBCw_LL_Mq#+a_&xwnpMy@JmG1Z(^;c6``w@^-wiDNW|En~%#l|yuFk9!lLjAfLL zsk&>X9Dc_=NTwx3z7swEs{H#oq1jzHo{`7*r|kxRlv6k?PteGmSpU+NY;wFxZ_je! z3cWlZ&AAMV+Hl?7EhtVyN+^ls1cZ_k&fX4lL#ED95+AOWFSnbHuK8-{oK-1*TrY%g z6*|mc$eyy5*)wGZS2>6G!9y7=MVtl_u{C>QIOMR~@xz0SO$i*?X^U`!r*%QR4cU>n~b=kgl{V0{U!YE5`L(Je_6tF$f)CoQ{8TdkpoH5k^98g}zW{z%LO!TiOCD9YN6rVWk>r*)1|u4ARena=96I@`QXySU zZenw^lFi|Y>_NvMhe=oAV!j>l<^iNGfH1{wfK5gGwusY+{2G86in!xFiuhP&DXs=M zjaU;0XhxKJ0HPGv0i2-N3-ArazWH_1dI0*~q!dmFcrE-&02{^S09tY3T8a(;j0Mt* z#e_BhY@>W5z#t+`gkBF#WQgK2fV~v4p#2of0S;2c_=hN30S;5dLhOhsItbx_W*SB0 zI{}_Stig>}P#t&2!(f?jFU}_^VnCJvCQMt+D*!U0^eUrJ^V<9dQa?ZtrG*u0J-GcL3X$zBX=b7vdfblcHQOq=?e0Wr7MA}{zF#cQb5Gw)&4I>~X==1{{(So@DYncwChfB2S&VXWEC zM9nXAVY0^G$iCHNFXJPRd7kk}#@hnbBov_jw!nfv$@o6xEo2P8>qsHcC=OwKjXVq} U;wcGWHE9Sc{E#Et9UO4~17HNf`Tzg` delta 2175 zcmaJ?Z)j6j6hHSRFNtZ|z9wnXCN-vctxcP1V>_KwH)APT+tjM~2bH=;i}D6)V=3$j zx)xV92MX#{CY#$tH&>Y-5<+2xb#81Q2Gf~V1^)~-N1+v*2r5<(-8nBWO!HwE?)%-} z@0@$ix#wPzp=}p>j_eLp!~y<)rjAq#hJ}m5{GK<+ruiKqv^_Cmjk3BAlPtO>W34mZ z?0ryb^hZs}#Mr7w$9k?tZkr!pf1`6rYh&WYljkp*)Yn%Yo^gf^0mJa&8JpjDf>fHu zCgNhbl4-^-Rcu-_@a#Os(IL9GebDF#g4}iYfGP zT#_*(zhW@2q@35LtT7e{`aOxeQ>NH#1?K&h5!=ox7Ue=zsQmh+)BbnrIUQoOI_~SJ zjQiT=bQHutN`l|VL*ncXil~mdS`BJw)GV_~gLXUNQSrRJHFrWw%8aLw{KN}mW$|#z zFr2fIrT0Mr{DXNpEA{hX(dBbxJ{vXGxyMr}X=EsAQ-tG8W_ZoUFm2;E#Hvku(uomg zv^mX!h0%gcWYnP;LNzyC?MB(ISmSa$F$Vs`n4_~vU7HFha{SX~`_)EOYRld!+03%F z(uQ}Rs|13R<4x)`Ut?ODK4{v>iku8U024G|A8d@@mp#0~B9(4HiWabFW{YN?;e}OR z-eqyJLB7Y*&06@lrGX{VY}RdIpq#w*At5fv<8SBjt~`DqkAIxUzslpOSNQ;3L4mZ> zIPGAC$yXiVNggi|&`}>$upc?O(Ao|*cvI)C8ZUy)I^U;p3EtDWQR4%4ID|rOP>|1c z2OqBO;Dl73{fAcqxL_jBKB?QQwEbl;lV>k6j3 z3N8GLLKnYLc#i*4B$w>&+o5)E@9XRB>+bLE-o2xTUt%8qtY{uTP}IyH7MG+K75B3N ziYYV#)FE2i03w9#04;pKj93iWZHU5BERt|B;A2C56+n=1 zb+%rL*QN6~VGIV~cU_ps3NV8xtN@?{0-cfq;=`px!dn2}qvTry5JsdzUn9i8QNjWM z%mvo90PA!;PKabD;d+3Ct`8y#^#cGyw7>)h2^Rt!BE*gyAuI+sPKYNvNoWQ*MTiC3 zbo3)qA#{aQ2z5@t&k{r*7DPy$MHj7u*fhVy0;>K1&(lBQeSlF(nwJ?^<;8H%l%xX~?%`>^$XzRN9(an$!| z`Y`IJP!IDlx6J$qe{UNRa~xg^*m-d;YJt>b&jYw%0kljV}O()lqD(GpLMu+GSzH@Ns} zP1x!o`&N&epVoLv}sFKoW IyxU6u1y5?_RsaA1 diff --git a/nfc/lib/cortex-m4/soft-float/libnfc_t4t.a b/nfc/lib/cortex-m4/soft-float/libnfc_t4t.a index fd5ea4eec72c5fcc794d513a83cb969dbf29f6e8..eb812756fd8a684c5c18daa95e5aab00a9a417c3 100644 GIT binary patch delta 2731 zcmc&!e{37|6@PbUH?ET<*K?94PMX+0;#|%NF=@IwKS-=>7&}gy4ocZtVAjIuZD`}f zAKPvG;SL0gfUHr!9V!TihD7KPRo8?4(voSS9}?Zl#iIJ&Vd+fotHiSE7g zwOZZ%zmv|N?|bj_-sipV_j`WtH22|~+{{n2H=hCcKfX0(;`uoD!&afUr4m#mp}RJ^6qrA)|}rx3bLpP zL4V?f1fM(cksi<7xA=PM)_d0AOeRb?o<{>TKs2cc^nLkm*d~3V*v&e1;E%jOq0% z5RO)6rq@Nguc?Lh9ZGte(PTV_o{)ZQBvyD}wGP@AQUCU1@e<#~NMU)tWo(-+8*F~d zc!lf@Dhb(EHs)o+^vYY;K-Y`-;%99S^a}kc`=p9_r?{**J#^t|))dE;`?rZq{8n z@dT%|nY_|#3W{L5lwBqS{$>4Uj#GzBuUfY}v378BF@C;6T)J`W#$?FuST;IG`GZ2x zt|wyGQF}g%CSS^0F7;ECUpK2XlH-o@hbRon>0)cTIb%zz7m#6@UffV(Os{+F*+BVu zadY}PwEX&xrGh4ZO(4T8C@%(6en*qg1RpwDaz-r+7)t5k~`=PM(kYz zYV$+}-Q0OHjbM3h*;fAIW(WLZYF- z2epK!AOx>`_JYI9kB0B%K6iuz;9&!F(9DfXB4uW}+wE8X1j{6orlA-fMr zR~``;kCxf9Xp?IdUkN<$YFYf9GW%kg?cuLf2cY_)YwaxDgbvDSum!xZ!?6`~N>By& zUz-3AI`Ow`el;9$Y`<-b@RDP@Y+HhpW%=(o@sJ(Q*24Q`gjI)7Do_tD0h!K26V#(k z4F~X*ux+(0{)IAom&1?Rd_R2qzvKD$yCyjHaCdF~uI@0;0sFyCjoJH<>D>kJIN==t zvko35+>Od8PnaY`UdBP4@J@h-o%j?YuL3+tcniP`VHdz5LTu+S;RwL9gu?*8#riF~ zAqzbu^c8@69Q+R99xUY8PZ90~c!BUPfE?l70H+Z7N`PMxqR?qV6r!`@Cjd;stpH~U zKM$}>mac{l!NLe&4u`dpU`7gVfc~8Ccd|5Oj zu|or44*#|W+W9Frn`y0QpALw$q{c2G-GdEX`IJg-Had8f(T&sp55_ZtA{IS1c(v%C zODR}idgA&NlI_3wYSA1rP`O<8ab!Gc_b9zp#+WX(ehwKwDlz`(UgZ%Fy$Loc`e2ieiX^Z)<= delta 2939 zcmc&#e@q+a8GgUJGq}bJ#-|S-=TwlxD_YQqm@CnwA!)q}eU2f<^bo zZQAB+R9mzvTE*9?KbBTe+Da^qG&3txNW(yB6?I+OoHv@PE9^i;CyE*bnN&&226GO*tfJ zUcMxE-F~lLH*b#&>8?mDKh&>i5VierZV%rZ zxOrr!p8Ei9^X3OWQ<)^?WM3aBF10%Diy!MrBq8Wa3)%Fv6!|z$*}72!O&{oYm?{?V z#osn)J|xq#180@ACwzqLqglysW;mhO z^uCB0T2vu$GCpQ_Z|v(%wDq)6o@9aQ^lQeA+jH5tUlSI~h4Sz_I<>%*NLn}SNfr#r zzBJAJ%HVll6+a(b*V@w0o@(irQ!NP`;j^_@NC|RKJF@HqaiT1BWZ7l9qc8}?@=bR& zai(}O&2w0I=PO++I*HRd-S$_5{hv=OT5c+^y;N}oLUF|`No&tcDVVo1Dh9;~jFY7w z7owt5!cV=40<%w+;Q4g@Lo_Q_B&$-f8F9np->Gy_r1TbG(aTH7P2L7c$tVI+OmilyyzBP=hXn+I2A`>QZP>2l=1I z`;#oZO?QOX&krn(56^Y|rqq3@rN1Q+H2YArXrC}H2F#o;>>_Gq&0K%a7+Jg-<_szP z5!zVRohp@O6T(x4!Vr2rA4vLBX6dkjs;jyKw}ezjmhJzu(b;@e@_C%`rC%}1G)E*) zW*)xWb+PoqrSksrgpzgyKF#`UK4-`*Jc9|R^)l^p9Scv*OMPyQcb}SLeIR?%hv~?x zGmUra5FXGyDnxqp=qYD>ESs2Qp<3L9dfWvE?m`TAL0V9HnR1gBNPALZHaabDZ`A%i z`D}MZ>hKITxilZv{JpYyCLsUK5F?@Yt9x%!11U+tYG#bLm*Uwfr?=sj@&p@?tiBKs z((~-OM$Mz<4QH>xf3&e$m^O{_*EV`KQG>SZgUiy#FoWY6I0fOctRpVQD`$j&7+CvN z5KU#Sq<$Y;mt_C~l)!BO@C@UFaUUOVsATi}iFge^*RW04!1y(s42CM%XSpJD&gO21OO%CilLPR zUhp9=T+~sMwJzh>jkddr*7p?g1C~BYdI@~+cy6ru0am$xchyK-xXkny8ZXhkQ8j-3D$>DUFZiSWw+2P}Tj;^Tz(0-UfgOSl^#gj-0sgAn6) z5n}wK7EfFJ5aE3Q2m>4?{1U)1!e)S%2+_?1VK=}@!Y=|`#DcY0sD%pO z53rdK3+=PGYVkva4*)!F@#hFp|ANIQ2nX?uPFfRZ2pPh%=MjZ6fGdP( zY=IDs{gH40;Ln7(gVzYr%_3nEV2N-$z%pS6z$b(;d{85$01{yaJFcV!#1JAmY$C*t z%ueh#7LUi6#;N?S$CT z4hq~0@O>-M53NL}5h=l0LQF7Ai1DuzVmuk4crro-U5L~WHAoH7Rr?5l7t!$*z}FKZ zpDuhAz)1^VTlsy`j`)$&mQ#Y-M|re$Jv*37wEkXXSsrPN;B$AIVmpm>vOLqKFp1Cj z*Yh)NE}L3`cKADOir^IaQd>Pg5p(kTcE4={{z5uR~VMi@Ag<4e*5L7?S%u{OFc?;ew4nIppP+x46tN_ohLT_7Z)BEO#lD@ From 1a09f4a9147e2fa8ecbf5c5f0c32800d4c172835 Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Mon, 24 Nov 2025 14:31:27 +0100 Subject: [PATCH 13/15] Revert "mpsl: split mpsl_hwres" This reverts commit 122c4b3a5d7155f506381ae1485c1acab78cac4e. --- mpsl/include/mpsl.h | 1 - mpsl/include/mpsl_dppi.h | 68 -------------------------------- mpsl/include/mpsl_hwres.h | 14 ++++++- mpsl/include/mpsl_hwres_zephyr.h | 42 -------------------- 4 files changed, 13 insertions(+), 112 deletions(-) delete mode 100644 mpsl/include/mpsl_dppi.h delete mode 100644 mpsl/include/mpsl_hwres_zephyr.h diff --git a/mpsl/include/mpsl.h b/mpsl/include/mpsl.h index f05bc7a766..cc918dbd97 100644 --- a/mpsl/include/mpsl.h +++ b/mpsl/include/mpsl.h @@ -27,7 +27,6 @@ extern "C" { #include "mpsl_clock.h" #include "mpsl_hwres.h" #include "mpsl_hwres_ppi.h" -#include "mpsl_dppi.h" /** @brief High IRQ priority * diff --git a/mpsl/include/mpsl_dppi.h b/mpsl/include/mpsl_dppi.h deleted file mode 100644 index cf97bbc006..0000000000 --- a/mpsl/include/mpsl_dppi.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -/** - * @file mpsl_dppi.h - * - * @defgroup mpsl_dppi MPSL DPPI API - * @ingroup mpsl - * - * This file defines an API to dynamically allocate some of hardware - * resources. The allocation functions are expected to be implemented - * outside of the MPSL. - * @{ - */ - -#ifndef MPSL_DPPI_H__ -#define MPSL_DPPI_H__ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#if defined(DPPI_PRESENT) || defined(DOXYGEN) - -/** @brief Allocate a DPPI channel of a DPPIC controller instance. - * - * @param[in] p_dppic Pointer to a DPPIC controller instance. - * @param[out] p_dppi_ch Allocated DPPI channel number on the given DPPIC instance. - * Value written at this pointer is valid only on successful - * allocation. - * - * @retval true Allocation successful. - * @retval false Allocation failed. - */ -bool mpsl_hwres_dppi_channel_alloc(NRF_DPPIC_Type * p_dppic, uint8_t * p_dppi_ch); - -#endif /* DPPI_PRESENT */ - -#if defined(PPIB_PRESENT) || defined(DOXYGEN) - -/** @brief Allocate a PPIB channel of a PPIB-to-PPIB interconnection. - * - * @param[in] p_ppib Pointer to a PPIB instance. - * @param[out] p_ppib_ch Allocated PPIB channel number the for PPIB-to-PPIB - * interconnection identified by the @p p_ppib being one - * of the sides of the interconnection. - * Value written at this pointer valid only on successful - * allocation. - * - * @retval true Allocation successful. - * @retval false Allocation failed. - */ -bool mpsl_hwres_ppib_channel_alloc(NRF_PPIB_Type * p_ppib, uint8_t * p_ppib_ch); - -#endif /* PPIB_PRESENT */ - -#ifdef __cplusplus -} -#endif - -#endif // MPSL_DPPI_H__ - -/**@} */ diff --git a/mpsl/include/mpsl_hwres.h b/mpsl/include/mpsl_hwres.h index edbf26eb9a..493855c70d 100644 --- a/mpsl/include/mpsl_hwres.h +++ b/mpsl/include/mpsl_hwres.h @@ -55,8 +55,19 @@ extern "C" { #endif -#include "mpsl_hwres_zephyr.h" +/* Reserved (D)PPI, PPIB and IPCT resources for the supported platforms. */ +/* This corresponds to the PPI channels 19, 30, and 31. */ +#define MPSL_NRF52_PPI_CHANNELS_USED_MASK (0xc0080000) +/* This corresponds to the DPPI channels 0, 1, and 2. */ +#define MPSL_NRF53_DPPIC_CHANNELS_USED_MASK (0x00000007) +#define MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000001) +#define MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK (0x00000001) +#if !defined(__ZEPHYR__) #if defined(NRF52_SERIES) #define MPSL_RESERVED_PPI_CHANNELS ((1UL << 19) | (1UL << 30) | (1UL << 31)) #define MPSL_PPI_CHANNELS_USED_MASK MPSL_NRF52_PPI_CHANNELS_USED_MASK @@ -87,6 +98,7 @@ extern "C" { #else #define MPSL_TIMER0 NRF_TIMER020 #endif +#endif #ifdef __cplusplus } diff --git a/mpsl/include/mpsl_hwres_zephyr.h b/mpsl/include/mpsl_hwres_zephyr.h deleted file mode 100644 index 58486a7072..0000000000 --- a/mpsl/include/mpsl_hwres_zephyr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) Nordic Semiconductor ASA - * - * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause - */ - -/** - * @file mpsl_hwres_zephyr.h - * - * @defgroup mpsl_hwres MPSL hardware resources API - * @ingroup mpsl - * - * This file defines fixed hardware resources used by the MPSL in Zephyr. - * @{ - */ - -#ifndef MPSL_HWRES_ZEPHYR_H__ -#define MPSL_HWRES_ZEPHYR_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -/* Reserved (D)PPI, PPIB and IPCT resources for the supported platforms. */ -/* This corresponds to the PPI channels 19, 30, and 31. */ -#define MPSL_NRF52_PPI_CHANNELS_USED_MASK (0xc0080000) -/* This corresponds to the DPPI channels 0, 1, and 2. */ -#define MPSL_NRF53_DPPIC_CHANNELS_USED_MASK (0x00000007) -#define MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK (0x00000001) - -#ifdef __cplusplus -} -#endif - -#endif // MPSL_HWRES_ZEPHYR_H__ - -/**@} */ From 5ec72dfe0dc5549d55c46e2d093e444368ac5f9e Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 26 Nov 2025 14:57:48 +0100 Subject: [PATCH 14/15] Revert "mpsl: align to nrfx 4.0" This reverts commit 529051deca46c16e850db1ed21fad6fa6a17fffb. --- mpsl/include/mpsl_clock.h | 1 + mpsl/include/mpsl_hwres.h | 33 +++++++++++---------------------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/mpsl/include/mpsl_clock.h b/mpsl/include/mpsl_clock.h index 536f9ce02a..148d146d50 100644 --- a/mpsl/include/mpsl_clock.h +++ b/mpsl/include/mpsl_clock.h @@ -24,6 +24,7 @@ extern "C" { #include #include #include "nrfx.h" +#include "nrf_errno.h" #if !defined (NRF54H_SERIES) #include "hal/nrf_clock.h" #endif /* !NRF54H20_XXAA */ diff --git a/mpsl/include/mpsl_hwres.h b/mpsl/include/mpsl_hwres.h index 493855c70d..e71945ca9c 100644 --- a/mpsl/include/mpsl_hwres.h +++ b/mpsl/include/mpsl_hwres.h @@ -56,34 +56,24 @@ extern "C" { #endif /* Reserved (D)PPI, PPIB and IPCT resources for the supported platforms. */ -/* This corresponds to the PPI channels 19, 30, and 31. */ -#define MPSL_NRF52_PPI_CHANNELS_USED_MASK (0xc0080000) -/* This corresponds to the DPPI channels 0, 1, and 2. */ -#define MPSL_NRF53_DPPIC_CHANNELS_USED_MASK (0x00000007) -#define MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000001) -#define MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK (0x00000001) - -#if !defined(__ZEPHYR__) #if defined(NRF52_SERIES) -#define MPSL_RESERVED_PPI_CHANNELS ((1UL << 19) | (1UL << 30) | (1UL << 31)) -#define MPSL_PPI_CHANNELS_USED_MASK MPSL_NRF52_PPI_CHANNELS_USED_MASK + #define MPSL_RESERVED_PPI_CHANNELS ((1UL << 19) | (1UL << 30) | (1UL << 31)) + /* This corresponds to the PPI channels 19, 30, and 31. */ + #define MPSL_PPI_CHANNELS_USED_MASK (0xc0080000) #elif defined(NRF53_SERIES) #define MPSL_RESERVED_PPI_CHANNELS ((1UL << 0) | (1UL << 1) | (1UL << 2)) - #define MPSL_DPPIC_CHANNELS_USED_MASK MPSL_NRF53_DPPIC_CHANNELS_USED_MASK + /* This corresponds to the DPPI channels 0, 1, and 2. */ + #define MPSL_DPPIC_CHANNELS_USED_MASK (0x00000007) #elif defined(LUMOS_XXAA) #define MPSL_RESERVED_PPI_CHANNELS (1UL << 0) - #define MPSL_DPPIC10_CHANNELS_USED_MASK MPSL_NRF54L_DPPIC10_CHANNELS_USED_MASK - #define MPSL_DPPIC20_CHANNELS_USED_MASK MPSL_NRF54L_DPPIC20_CHANNELS_USED_MASK - #define MPSL_PPIB11_CHANNELS_USED_MASK MPSL_NRF54L_PPIB11_CHANNELS_USED_MASK - #define MPSL_PPIB21_CHANNELS_USED_MASK MPSL_NRF54L_PPIB21_CHANNELS_USED_MASK + #define MPSL_DPPIC10_CHANNELS_USED_MASK (0x00000001) + #define MPSL_DPPIC20_CHANNELS_USED_MASK (0x00000001) + #define MPSL_PPIB11_CHANNELS_USED_MASK (0x00000001) + #define MPSL_PPIB21_CHANNELS_USED_MASK (0x00000001) #elif defined(NRF54H_SERIES) #define MPSL_RESERVED_PPI_CHANNELS (1UL << 0) - #define MPSL_DPPIC020_CHANNELS_USED_MASK MPSL_NRF54H_DPPIC020_CHANNELS_USED_MASK - #define MPSL_IPCT130_CHANNELS_USED_MASK MPSL_NRF54H_IPCT130_CHANNELS_USED_MASK + #define MPSL_DPPIC020_CHANNELS_USED_MASK (0x00000001) + #define MPSL_IPCT130_CHANNELS_USED_MASK (0x00000001) #else #error Unknown NRF series. #endif @@ -98,7 +88,6 @@ extern "C" { #else #define MPSL_TIMER0 NRF_TIMER020 #endif -#endif #ifdef __cplusplus } From 6b9303d630bcf0549b00212f91ddbae90b15d220 Mon Sep 17 00:00:00 2001 From: Marcin Szymczyk Date: Wed, 26 Nov 2025 15:02:40 +0100 Subject: [PATCH 15/15] Revert "softdevice_controller: align to nrfx 4.0" This reverts commit 5f168b24704ef47d129f3553202834be9155428a. --- softdevice_controller/include/sdc_soc.h | 35 +++++++------------------ 1 file changed, 10 insertions(+), 25 deletions(-) diff --git a/softdevice_controller/include/sdc_soc.h b/softdevice_controller/include/sdc_soc.h index 734cd6ce6e..0b1b372fce 100644 --- a/softdevice_controller/include/sdc_soc.h +++ b/softdevice_controller/include/sdc_soc.h @@ -29,37 +29,22 @@ extern "C" { #include #include "mpsl_hwres.h" -#define SDC_NRF52_PPI_CHANNELS_USED_MASK (0xfffe0000) -#define SDC_NRF53_DPPI_CHANNELS_USED_MASK (0x00001ff8) -#define SDC_NRF54L_DPPIC10_CHANNELS_USED_MASK (0x00000ffe) -#define SDC_NRF54L_DPPIC00_CHANNELS_USED_MASK (0x0000000a) -#define SDC_NRF54L_PPIB00_CHANNELS_USED_MASK (0x0000000f) -#define SDC_NRF54L_PPIB10_CHANNELS_USED_MASK (0x0000000f) -#define SDC_NRF54H_DPPIC020_CHANNELS_USED_MASK (0x00000ffe) -#define SDC_NRF54H_DPPIC030_CHANNELS_USED_MASK (0x0000000a) -#define SDC_NRF54H_PPIB020_CHANNELS_USED_MASK (0x0000000f) -#define SDC_NRF54H_PPIB030_CHANNELS_USED_MASK (0x0000000f) - -#if !defined(__ZEPHYR__) -#include "nrfx.h" - #if defined(NRF52_SERIES) /* PPI channels 17 - 31, for the nRF52 Series */ - #define SDC_PPI_CHANNELS_USED_MASK SDC_NRF52_PPI_CHANNELS_USED_MASK + #define SDC_PPI_CHANNELS_USED_MASK (0xfffe0000) #elif defined(NRF53_SERIES) /* PPI channels 3 - 12, for the nRF53 Series */ - #define SDC_DPPI_CHANNELS_USED_MASK SDC_NRF53_DPPI_CHANNELS_USED_MASK + #define SDC_DPPI_CHANNELS_USED_MASK (0x00001ff8) #elif defined(LUMOS_XXAA) - #define SDC_DPPIC10_CHANNELS_USED_MASK SDC_NRF54L_DPPIC10_CHANNELS_USED_MASK - #define SDC_DPPIC00_CHANNELS_USED_MASK SDC_NRF54L_DPPIC00_CHANNELS_USED_MASK - #define SDC_PPIB00_CHANNELS_USED_MASK SDC_NRF54L_PPIB00_CHANNELS_USED_MASK - #define SDC_PPIB10_CHANNELS_USED_MASK SDC_NRF54L_PPIB10_CHANNELS_USED_MASK + #define SDC_DPPIC10_CHANNELS_USED_MASK (0x00000ffe) + #define SDC_DPPIC00_CHANNELS_USED_MASK (0x0000000a) + #define SDC_PPIB00_CHANNELS_USED_MASK (0x0000000f) + #define SDC_PPIB10_CHANNELS_USED_MASK (0x0000000f) #elif defined(NRF54H_SERIES) || defined(GRTC_PRESENT) - #define SDC_DPPIC020_CHANNELS_USED_MASK SDC_NRF54H_DPPIC020_CHANNELS_USED_MASK - #define SDC_DPPIC030_CHANNELS_USED_MASK SDC_NRF54H_DPPIC030_CHANNELS_USED_MASK - #define SDC_PPIB020_CHANNELS_USED_MASK SDC_NRF54H_PPIB020_CHANNELS_USED_MASK - #define SDC_PPIB030_CHANNELS_USED_MASK SDC_NRF54H_PPIB030_CHANNELS_USED_MASK -#endif + #define SDC_DPPIC020_CHANNELS_USED_MASK (0x00000ffe) + #define SDC_DPPIC030_CHANNELS_USED_MASK (0x0000000a) + #define SDC_PPIB020_CHANNELS_USED_MASK (0x0000000f) + #define SDC_PPIB030_CHANNELS_USED_MASK (0x0000000f) #endif /**