From 7c93160c9746d0be3541b88aadcd6880871416e2 Mon Sep 17 00:00:00 2001 From: Ievgenii Meshcheriakov Date: Mon, 21 Sep 2020 12:41:51 +0200 Subject: [PATCH] mpsl: rev 5ba0c131a3bb240f96ddef4e92db9f691e7d8431 CHANGELOG.rst contains the list of changes. Signed-off-by: Ievgenii Meshcheriakov --- mpsl/CHANGELOG.rst | 7 +- mpsl/README.rst | 2 + mpsl/doc/api.rst | 28 +++ mpsl/doc/fem.rst | 127 ++++++++++ mpsl/doc/pic/FEM_sequence_nRF21540.svg | 47 ++++ mpsl/doc/pic/FEM_sequence_simple.svg | 31 +++ mpsl/doc/pic/FEM_timing_nRF21540.svg | 60 +++++ mpsl/doc/pic/FEM_timing_simple.svg | 44 ++++ mpsl/include/mpsl_fem_config_common.h | 43 ++++ mpsl/include/mpsl_fem_config_nrf21540_gpio.h | 100 ++++++++ mpsl/include/mpsl_fem_config_simple_gpio.h | 94 +++++++ mpsl/include/mpsl_fem_protocol_api.h | 235 ++++++++++++++++++ .../lib/cortex-m33+nodsp/soft-float/libmpsl.a | Bin 77838 -> 83360 bytes .../cortex-m33+nodsp/soft-float/manifest.yaml | 4 +- mpsl/lib/cortex-m4/hard-float/libmpsl.a | Bin 134452 -> 141534 bytes mpsl/lib/cortex-m4/hard-float/manifest.yaml | 4 +- mpsl/lib/cortex-m4/soft-float/libmpsl.a | Bin 133770 -> 140732 bytes mpsl/lib/cortex-m4/soft-float/manifest.yaml | 4 +- mpsl/lib/cortex-m4/softfp-float/libmpsl.a | Bin 134020 -> 141026 bytes mpsl/lib/cortex-m4/softfp-float/manifest.yaml | 4 +- 20 files changed, 824 insertions(+), 10 deletions(-) create mode 100644 mpsl/doc/fem.rst create mode 100644 mpsl/doc/pic/FEM_sequence_nRF21540.svg create mode 100644 mpsl/doc/pic/FEM_sequence_simple.svg create mode 100644 mpsl/doc/pic/FEM_timing_nRF21540.svg create mode 100644 mpsl/doc/pic/FEM_timing_simple.svg create mode 100644 mpsl/include/mpsl_fem_config_common.h create mode 100644 mpsl/include/mpsl_fem_config_nrf21540_gpio.h create mode 100644 mpsl/include/mpsl_fem_config_simple_gpio.h create mode 100644 mpsl/include/mpsl_fem_protocol_api.h diff --git a/mpsl/CHANGELOG.rst b/mpsl/CHANGELOG.rst index f2361e3543..5595406341 100644 --- a/mpsl/CHANGELOG.rst +++ b/mpsl/CHANGELOG.rst @@ -15,6 +15,9 @@ Changes using :cpp:func:`mpsl_timeslot_session_count_set`. All APIs timeslot APIs now take a session_id as input. The session id is retrieved from :cpp:func:`mpsl_timeslot_session_open()`. +* Added API to use Front-End Modules (nRF21540 GPIO and simple GPIO) by the protocols and API to + configure them by the application. Only nRF52 series is supported. + Bugfixes ======== @@ -43,8 +46,8 @@ Added Changes ======= * Removed ``MPSL_RADIO_NOTIFICATION_DISTANCE_425US`` and replaced it by ``MPSL_RADIO_NOTIFICATION_DISTANCE_420US``. -* On nRF53, the fix for Errata 16 is now applied. -* The scheduling overhead of a timeslot event is reduced. +* On nRF53, the fix for Errata 16 is now applied. +* The scheduling overhead of a timeslot event is reduced. Bugfixes ======== diff --git a/mpsl/README.rst b/mpsl/README.rst index ce21d2a18c..508243c338 100644 --- a/mpsl/README.rst +++ b/mpsl/README.rst @@ -13,6 +13,7 @@ Key features of this library include: * Radio notifications - a configurable interrupt before and/or after radio activity. * TX Power control - the MPSL TX Power interface provides APIs to set the maximum TX power per channel. * Clock control - APIs for configuring and controlling the low and high-frequency clock. +* FEM - APIs for controlling external Front-End Modules (only nRF52 series is supported). * API for obtaining the temperature measured on the SoC. .. important:: @@ -32,4 +33,5 @@ Key features of this library include: doc/timeslot doc/radio_notification doc/tx_power_control + doc/fem doc/api diff --git a/mpsl/doc/api.rst b/mpsl/doc/api.rst index ae4c55ed0e..376f8b1f07 100644 --- a/mpsl/doc/api.rst +++ b/mpsl/doc/api.rst @@ -38,6 +38,34 @@ MPSL TX Power :project: nrfxlib :members: +MPSL FEM +******** + +.. doxygengroup:: mpsl_fem + :project: nrfxlib + :members: + +MPSL FEM common configuration +***************************** + +.. doxygengroup:: mpsl_fem_config_common + :project: nrfxlib + :members: + +MPSL FEM nRF21540 GPIO +********************** + +.. doxygengroup:: mpsl_fem_nrf21540_gpio + :project: nrfxlib + :members: + +MPSL FEM Simple GPIO +******************** + +.. doxygengroup:: mpsl_fem_simple_gpio + :project: nrfxlib + :members: + MPSL Temp ********* diff --git a/mpsl/doc/fem.rst b/mpsl/doc/fem.rst new file mode 100644 index 0000000000..bf27db26c7 --- /dev/null +++ b/mpsl/doc/fem.rst @@ -0,0 +1,127 @@ +.. _mpsl_fem: + +Front-End Module feature +######################## + +The Front-End Module feature allows the application to interface with several types of Front-End Modules (FEMs). +This allows to increase the transmitted power through a Power Amplifier (PA) or increase the sensitivity through a Low-Noise Amplifier (LNA). +Any increase in power and sensitivity results in an increased communication range. +The exact PA and LNA gains are dependent on the specific FEM used. + +Implementation +************** + +Two FEM implementations are provided: + +* *nRF21540 GPIO* - compatible with nRF21540 FEM, implementing a 3-pin interface. +* *Simple GPIO* - simplified version for supporting other Front-End Modules, implementing a 2-pin interface. + +Both implementations use PA and LNA pins for controlling the FEM. +Additionally, the nRF21540 GPIO implementation uses the PDN pin for powering down FEM internal circuits to reduce energy consumption. + +Configurable timings +******************** + +In both implementations, two timings can be configured: + +* ``LNA time gap`` - the time between LNA activation and the start of radio reception. +* ``PA time gap`` - the time between PA activation and the start of radio transmission. + +For nRF21540, two additional timings can also be configured: + +* ``TRX hold time`` - the time interval for which the FEM is kept powered up after the PDN deactivation event occurs. +* ``PDN settle time`` - the time interval before the PA or LNA activation reserved for the FEM ramp-up. + +General usage +************* + +The Power Amplifier and the Low-Noise Amplifier are responsible for, respectively, transmission and reception and are configured and activated independently. +The two functionalities can't be configured and set to operate simultaneously as they share some resources. +As such, after operating with a Power Amplifier, the PA configuration must be cleared to be able to configure and use a Low-Noise Amplifier afterward, and vice versa. + +Both amplifiers are controlled through activation and deactivation events. +Two types of events are supported: + +* *timer event* - ``COMPARE`` event of a hardware timer, can be used for both PA/LNA activation and deactivation. +* *generic event* - any other event type, can only be used for PA/LNA deactivation. + +Preparing a generic event only requires the application to provide the event register. +Preparing a timer event requires the application to provide: + +* The instance of the timer, which the protocol has to start by itself. +* The *Compare Channels* mask, which tells the Front End Module which Compare Channels of the provided Timer are free to use. +* The Start time, at which the Front End Module can start preparing the PA or LNA. +* The End time, at which the Front End Module must be ready for the RF procedure. + +The module will then configure the timer so that the FEM is activated or deactivated accordingly, taking into account the FEM ramp-up time. + +See below for an example of activating LNA for Rx operation, using the following parameters: + +* Time scheduled by the application (RX ramp-up) - 40 us +* LNA ramp-up time - ``13 us`` +* LNA deactivation event - ``rx_end`` +* LNA activation timer - ``TIMER0`` + +See below for the steps needed to properly configure LNA in this example: + +* The application configures the LNA to be activated by the timer event, with the start time set to 0 us and the end time set to 40 us. +* The application provides the ``rx_end`` event as the LNA deactivation event. +* The FEM module reads the scheduled time and sets ``TIMER0`` compare channel to 27 us, as a result of the RX ramp-up time (40 us) minus the LNA ramp-up time (13 us). +* The application starts the RX operation. +* The application starts ``TIMER0``. + +The following picture illustrates the timings in this scenario: + +.. figure:: pic/FEM_timing_simple.svg + :alt: Timing of LNA pin for reception + + Timing of LNA pin for reception + +The following picture illustrates the calls between the application, the FEM module, and the hardware in this scenario: + +.. figure:: pic/FEM_sequence_simple.svg + :alt: Sequence diagram of LNA control for reception + + Sequence diagram of LNA control for reception + +nRF21540 usage +************** + +In the nRF21540 implementation, the PDN pin is used to power down the FEM internal circuits. +The FEM can be powered down on application request, configuring the activation timer event, similarly to PA and LNA pins. +The FEM is powered back up automatically before PA or LNA are activated. + +See below for an example of controlling LNA and PDN during Rx operation, using the following parameters: + +* Time scheduled by application - 40 us +* LNA ramp-up time - 13 us +* PDN settle time - 18 us +* TRX hold time - 5 us +* LNA deactivation event - ``rx_end`` +* PDN deactivation event - ``rx_end`` +* PDN activation timer - ``TIMER0`` +* LNA activation timer - ``TIMER1`` + +See below for the steps needed to properly configure LNA and PDN in this example: + +* The application configures the power-down by passing ``rx_end`` as the activation event. +* The FEM module connects the activation event with the ``TIMER0`` start task through PPI and sets TRX hold time to 5 us. +* The application configures LNA to be activated by the timer event, with the start time set to 0 us and end time set to 40 us. +* The application provides the ``rx_end`` event as the LNA deactivation event. +* The FEM module reads the scheduled time and sets ``TIMER1`` compare channels to 27 us (40-13) and 9 us (27-18). +* The application starts Rx operation. +* The application starts ``TIMER1``. + +The following picture illustrates the timing in this scenario: + +.. figure:: pic/FEM_timing_nRF21540.svg + :alt: Timing of LNA and PDN pins for reception + + Timing of LNA and PDN pins for reception + +The following picture presents the calls between the application, the FEM module, and the hardware in this scenario: + +.. figure:: pic/FEM_sequence_nRF21540.svg + :alt: Sequence diagram of LNA and PDN control for reception + + Sequence diagram of LNA and PDN control for reception diff --git a/mpsl/doc/pic/FEM_sequence_nRF21540.svg b/mpsl/doc/pic/FEM_sequence_nRF21540.svg new file mode 100644 index 0000000000..83f7b8e43d --- /dev/null +++ b/mpsl/doc/pic/FEM_sequence_nRF21540.svg @@ -0,0 +1,47 @@ + +applicationapplicationFEMmoduleFEMmodulehardwarehardwareconfigure PDNtimer=TIMER0event=rx_endset TIMER0 comparechannel to 5usconnect rx_endto TIMER0_STARTconfigure LNAtime = 40 ustimer=TIMER1event=rx_endcalculatetimingsset TIMER0 comparechannels to 9us and 27 usstart Rxstart TIMER1Waiting for TIMER1 eventTIMER1 eventdeassert PDNWaiting for TIMER1 eventTIMER1 eventactivate LNARx operationrx_endstartTIMER0deactivate LNAWaiting for TIMER0 eventTIMER0 eventassert PDN \ No newline at end of file diff --git a/mpsl/doc/pic/FEM_sequence_simple.svg b/mpsl/doc/pic/FEM_sequence_simple.svg new file mode 100644 index 0000000000..6435e7064b --- /dev/null +++ b/mpsl/doc/pic/FEM_sequence_simple.svg @@ -0,0 +1,31 @@ + +applicationapplicationFEMmoduleFEMmodulehardwarehardwareconfigure LNAtime = 40 ustimer=TIMER0event=rx_endcalculatetimingsset TIMER0 comparechannel to 27usstart TIMER0Waiting for timer eventTIMER0 eventactivate LNARx operationrx_enddeactivate LNA \ No newline at end of file diff --git a/mpsl/doc/pic/FEM_timing_nRF21540.svg b/mpsl/doc/pic/FEM_timing_nRF21540.svg new file mode 100644 index 0000000000..4e5d0c4a3d --- /dev/null +++ b/mpsl/doc/pic/FEM_timing_nRF21540.svg @@ -0,0 +1,60 @@ + +OperationIdleRamp-upRxIdleTIMER0 running40-13-18=9 us18 us13 usTIMER1 running5 usDeactivation eventLNA activePDN pin010203040506070FEMramp-upLNAramp-upTRX hold \ No newline at end of file diff --git a/mpsl/doc/pic/FEM_timing_simple.svg b/mpsl/doc/pic/FEM_timing_simple.svg new file mode 100644 index 0000000000..52ddd90596 --- /dev/null +++ b/mpsl/doc/pic/FEM_timing_simple.svg @@ -0,0 +1,44 @@ + +OperationIdleRamp-upRxIdleTimer running40-13=27 us13 usLNA activeDeactivation event010203040506070LNAramp-up \ No newline at end of file diff --git a/mpsl/include/mpsl_fem_config_common.h b/mpsl/include/mpsl_fem_config_common.h new file mode 100644 index 0000000000..784d396d37 --- /dev/null +++ b/mpsl/include/mpsl_fem_config_common.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic + */ + +/** + * @file mpsl_fem_config_common.h + * + * @defgroup mpsl_fem_config_common MPSL Front End Module Common Configuration parts + * @ingroup mpsl_fem + * + * The MPSL Front End Module Common Configuration defines structures common for every supported Front End Module. + * @{ + */ + +#ifndef MPSL_FEM_CONFIG_COMMON_H__ +#define MPSL_FEM_CONFIG_COMMON_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** @brief Configuration parameters for pins that enable or disable (or both) either Power Amplifier (PA) or Low Noise Amplifier (LNA). + */ +typedef struct +{ + bool enable; /**< Enable toggling for this pin. */ + bool active_high; /**< If true, the pin will be active high. Otherwise, the pin will be active low. */ + uint8_t gpio_pin; /**< GPIO pin number for the pin. */ + uint8_t gpiote_ch_id; /**< The GPIOTE channel used for toggling this pin. */ +} mpsl_fem_gpiote_pin_config_t; + +#ifdef __cplusplus +} +#endif + +#endif // MPSL_FEM_CONFIG_COMMON_H__ + +/**@} */ diff --git a/mpsl/include/mpsl_fem_config_nrf21540_gpio.h b/mpsl/include/mpsl_fem_config_nrf21540_gpio.h new file mode 100644 index 0000000000..7e58123ba6 --- /dev/null +++ b/mpsl/include/mpsl_fem_config_nrf21540_gpio.h @@ -0,0 +1,100 @@ +/* + * Copyright (c) 2020 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic + */ + +/** + * @file mpsl_fem_config_nrf21540_gpio.h + * + * @defgroup mpsl_fem_nrf21540_gpio MPSL nRF21540 GPIO Front End Module Configuration + * @ingroup mpsl_fem + * + * The MPSL nRF21540 GPIO Front End Module Configuration defines the configuration of the nRF21540 GPIO Front End Module. + * @{ + */ + +#ifndef MPSL_FEM_CONFIG_NRF21540_GPIO_H__ +#define MPSL_FEM_CONFIG_NRF21540_GPIO_H__ + +#include +#include +#include "mpsl_fem_config_common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @brief Configuration parameters for the PA/LNA interface in the nRF21540 GPIO variant + */ +typedef struct +{ + struct + { + uint32_t pa_time_gap_us; /**< Time between the activation of the PA pin and the start of the radio transmission. Should be no bigger than Radio Ramp-Up time. */ + uint32_t lna_time_gap_us; /**< Time between the activation of the LNA pin and the start of the radio reception. Should be no bigger than Radio Ramp-Up time. */ + uint32_t pdn_settle_us; /**< The time between activating the PDN pin and activating the PA/LNA pin. */ + uint32_t trx_hold_us; /**< The time between deactivating the PA/LNA pin and deactivating the PDN pin. */ + int8_t pa_gain_db; /**< Configurable PA gain. Ignored if the amplifier is not supporting this feature. */ + int8_t lna_gain_db; /**< Configurable LNA gain. Ignored if the amplifier is not supporting this feature. */ + } fem_config; /**< Configuration structure of the nRF21540 GPIO. */ + + mpsl_fem_gpiote_pin_config_t pa_pin_config; /**< Power Amplifier pin configuration. */ + mpsl_fem_gpiote_pin_config_t lna_pin_config; /**< Low Noise Amplifier pin configuration. */ + mpsl_fem_gpiote_pin_config_t pdn_pin_config; /**< Power Down pin configuration. */ + + uint8_t ppi_channels[3]; /**< Array of PPI which need to be provided to Front End Module to operate. */ + +} mpsl_fem_nrf21540_gpio_interface_config_t; + +/** @brief Configures the PA and LNA device interface. + * + * This function sets device interface parameters for the PA/LNA module. + * The module can then be used to control a power amplifier or a low noise amplifier (or both) through the given interface and resources. + * + * The function also sets the PPI and GPIOTE channels to be configured for the PA/LNA interface. + * + * @param[in] p_config Pointer to the interface parameters for the PA/LNA device. + * + * @retval 0 PA/LNA control successfully configured. + * @retval -NRF_EPERM PA/LNA is not available. + * + */ +int32_t mpsl_fem_nrf21540_gpio_interface_config_set(mpsl_fem_nrf21540_gpio_interface_config_t const * const p_config); + +/** + * nRF21540 GPIO Front End Module Timings + */ + +/** Time in microseconds when PA GPIO is activated before the radio is ready for transmission. */ +#define MPSL_FEM_NRF21540_GPIO_DEFAULT_PA_TIME_IN_ADVANCE_US 13 + +/** Time in microseconds when LNA GPIO is activated before the radio is ready for reception. */ +#define MPSL_FEM_NRF21540_GPIO_DEFAULT_LNA_TIME_IN_ADVANCE_US 13 + +/** The time between activating the PDN and asserting the RX_EN/TX_EN. */ +#define MPSL_FEM_NRF21540_GPIO_DEFAULT_PDN_SETTLE_US 18 + +/** The time between deasserting the RX_EN/TX_EN and deactivating PDN. */ +#define MPSL_FEM_NRF21540_GPIO_DEFAULT_TRX_HOLD_US 5 + +/** + * nRF21540 GPIO Front End Module Gains + * + * The provided gains are the default gains. The actual gain may depend on the temperature and the configuration of the Front End Module. + * See the Objective Product Specification for more details. + */ + +/** Gain of the PA in dB. */ +#define MPSL_FEM_NRF21540_GPIO_PA_DEFAULT_GAIN_DB 20 + +/** Gain of the LNA in dB. */ +#define MPSL_FEM_NRF21540_GPIO_LNA_DEFAULT_GAIN_DB 20 + +#ifdef __cplusplus +} +#endif + +#endif // MPSL_FEM_CONFIG_NRF21540_GPIO_H__ + +/**@} */ diff --git a/mpsl/include/mpsl_fem_config_simple_gpio.h b/mpsl/include/mpsl_fem_config_simple_gpio.h new file mode 100644 index 0000000000..d71943842b --- /dev/null +++ b/mpsl/include/mpsl_fem_config_simple_gpio.h @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2020 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic + */ + +/** + * @file mpsl_fem_config_simple_gpio.h + * + * @defgroup mpsl_fem_simple_gpio MPSL Simple GPIO Front End Module Configuration + * @ingroup mpsl_fem + * + * The MPSL Simple GPIO Front End Module Configuration defines the configuration of the Simple GPIO Front End Module. + * @{ + */ + +#ifndef MPSL_FEM_CONFIG_SIMPLE_GPIO_H__ +#define MPSL_FEM_CONFIG_SIMPLE_GPIO_H__ + +#include +#include +#include "mpsl_fem_config_common.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @brief Configuration parameters for the Front End Module Simple GPIO variant. + * A Simple GPIO Front End Module may be used with all Front End Modules which use one wire for PA and one wire for LNA. + */ +typedef struct +{ + struct + { + uint32_t pa_time_gap_us; /**< Time between the activation of the PA pin and the start of the radio transmission. Should be no bigger than Radio Ramp-Up time. */ + uint32_t lna_time_gap_us; /**< Time between the activation of the LNA pin and the start of the radio reception. Should be no bigger than Radio Ramp-Up time. */ + int8_t pa_gain_db; /**< Configurable PA gain. Ignored if the amplifier is not supporting this feature. */ + int8_t lna_gain_db; /**< Configurable LNA gain. Ignored if the amplifier is not supporting this feature. */ + } fem_config; /**< Configration structure of the Simple GPIO Front End Module. */ + + mpsl_fem_gpiote_pin_config_t pa_pin_config; /**< Power Amplifier pin configuration. */ + mpsl_fem_gpiote_pin_config_t lna_pin_config; /**< Low Noise Amplifier pin configuration. */ + + uint8_t ppi_channels[2]; /**< Array of PPI which need to be provided to Front End Module to operate. */ +} mpsl_fem_simple_gpio_interface_config_t; + +/** @brief Configures the PA and LNA device interface. + * + * This function sets device interface parameters for the PA/LNA module. + * The module can then be used to control a power amplifier or a low noise amplifier (or both) through the given interface and resources. + * + * The function also sets the PPI and GPIOTE channels to be configured for the PA/LNA interface. + * + * @param[in] p_config Pointer to the interface parameters for the PA/LNA device. + * + * @retval 0 PA/LNA control successfully configured. + * @retval -NRF_EPERM PA/LNA is not available. + * + */ +int32_t mpsl_fem_simple_gpio_interface_config_set(mpsl_fem_simple_gpio_interface_config_t const * const p_config); + +/** + * Simple GPIO Front End Module Timings + * + * A Simple GPIO Front End Module may be used with all Front End Modules which use one wire for PA and one wire for LNA. + * The timing restrictions should be obtained from its corresponding datasheet. + */ + +/** Time in microseconds when PA GPIO is activated before the radio is ready for transmission. */ +#define MPSL_FEM_SIMPLE_GPIO_DEFAULT_PA_TIME_IN_ADVANCE_US 23 + +/** Time in microseconds when LNA GPIO is activated before the radio is ready for reception. */ +#define MPSL_FEM_SIMPLE_GPIO_DEFAULT_LNA_TIME_IN_ADVANCE_US 5 + +/** + * Simple GPIO Front End Module Gains + * + * A Simple GPIO Front End Module may be used with all Front End Modules which use one wire for PA and one wire for LNA. + * The gains should be obtained from its corresponding datasheet. + */ + +/** Gain of the PA in dB. */ +#define MPSL_FEM_SIMPLE_GPIO_PA_DEFAULT_GAIN_DB 22 + +/** Gain of the LNA in dB. */ +#define MPSL_FEM_SIMPLE_GPIO_LNA_DEFAULT_GAIN_DB 11 + +#ifdef __cplusplus +} +#endif + +#endif // MPSL_FEM_CONFIG_SIMPLE_GPIO_H__ + +/**@} */ diff --git a/mpsl/include/mpsl_fem_protocol_api.h b/mpsl/include/mpsl_fem_protocol_api.h new file mode 100644 index 0000000000..9b51e9bc0d --- /dev/null +++ b/mpsl/include/mpsl_fem_protocol_api.h @@ -0,0 +1,235 @@ +/* + * Copyright (c) 2020 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-BSD-5-Clause-Nordic + */ + +/** + * @file mpsl_fem_protocol_api.h + * + * @defgroup mpsl_fem MPSL Protocol interface for Power Amplifier (PA) and Low Noise Amplifier (LNA). + * @ingroup mpsl + * + * This module enables control of peripherals before and after the radio transmission and the radio reception + * in order to control a Power Amplifier or a Low Noise Amplifier, or both. + * + * The application must first provide PA and LNA device-specific configuration parameters to this module. + * The protocol must then provide PA and LNA protocol configuration parameters before it can use the functionality. + * + * When the PA/LNA module is configured, the stack can call the provided enable functions before radio activity + * to enable the PA or LNA timer configurations for the upcoming radio activity. + * + * @{ + */ + +#ifndef MPSL_FEM_PROTOCOL_API_H__ +#define MPSL_FEM_PROTOCOL_API_H__ + +#include +#include + +#include +#include "nrf_errno.h" + +/** @brief PA and LNA functionality types. + */ +typedef enum +{ + MPSL_FEM_PA = 1 << 0, /**< PA Functionality. */ + MPSL_FEM_LNA = 1 << 1, /**< LNA Functionality. */ + MPSL_FEM_ALL = MPSL_FEM_PA | MPSL_FEM_LNA /**< Both PA and LNA Functionalities. */ +} mpsl_fem_functionality_t; + +/** @brief PA and LNA activation event types. + */ +typedef enum +{ + MPSL_FEM_EVENT_TYPE_TIMER, /**< Timer Event type. */ + MPSL_FEM_EVENT_TYPE_GENERIC /**< Generic Event type. */ +} mpsl_fem_event_type_t; + +/** @brief MPSL Front End Module event. */ +typedef struct +{ + mpsl_fem_event_type_t type; /**< Type of event source. */ + union + { + struct + { + NRF_TIMER_Type * p_timer_instance; /**< Pointer to a 1-us resolution timer instance. */ + struct + { + uint32_t start; /**< Timer value when the Front End Module can start preparing PA/LNA. */ + uint32_t end; /**< Timer value at which the PA/LNA have to be prepared. Radio operation shall start at this point. */ + } counter_period; /**< Time interval in which the timer should start and end. */ + uint8_t compare_channel_mask; /**< Mask of the compare channels that can be used by the Front End Module to schedule its own tasks. */ + } timer; /**< Event generated by the timer, used in case of type equal to @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_TIMER. */ + struct + { + uint32_t register_address; /**< Address of event register. */ + } generic; /**< Generic event, used in case of type equal to @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_GENERIC. */ + } event; /**< Implementation of the event. */ + bool override_ppi; /**< False to ignore the PPI channel below and use the one set by application. True to use the PPI channel below. */ + uint8_t ppi_ch_id; /**< PPI channel to be used for this event. */ +} mpsl_fem_event_t; + +/** @brief Sets up PA using the provided events for the upcoming radio transmission. + * + * Multiple configurations can be provided by repeating calls to this function (that is, you can set the activate and the deactivate events in multiple calls, + * and the configuration is preserved between calls). + * + * The order of calls of this function and its `lna` counterpart must match the order of radio operations. + * I.e. if you want to listen first and then send the frame, you need first to issue @ref mpsl_fem_lna_configuration_set and only after @ref mpsl_fem_pa_configuration_set. + * + * If a @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_TIMER timer event is provided, the PA will be configured to activate or deactivate at the application-configured time gap + * before the timer instance reaches the given register_value. The time gap is set via the corresponding configuration setter of the selected Front End Module. + * + * If a @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_GENERIC event is provided, the PA will be configured to activate or deactivate when an event occurs. + * + * The function sets up the PPIs and the GPIOTE channel to activate PA for the upcoming radio transmission. + * The PA pin will be active until deactivated, which can happen either by encountering a configured deactivation event or by using @ref mpsl_fem_deactivate_now. + * + * @param[in] p_activate_event Pointer to the activation event structure. + * @param[in] p_deactivate_event Pointer to the deactivation event structure. + * + * @pre To activate PA, the corresponding configuration setter of the selected Front End Module must have been called first. + * + * @note If a timer event is provided, the caller of this function is responsible for starting the timer and configuring its shorts. + * Moreover, the caller is responsible for stopping the timer no earlier than the compare channel of the lowest ID among the provided ones does expire. + * + * @note The activation event can be only of type @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_TIMER. Using other activation event type leads to undefined module behavior. + * + * @retval 0 PA activation setup is successful. + * @retval -NRF_EPERM PA is currently disabled. + * @retval -NRF_EINVAL PA activation setup could not be performed due to invalid or missing configuration parameters + * in p_activate_event or p_deactivate_event, or both. + */ +int32_t mpsl_fem_pa_configuration_set(const mpsl_fem_event_t * const p_activate_event, + const mpsl_fem_event_t * const p_deactivate_event); + +/** @brief Clears up the configuration provided by the @ref mpsl_fem_pa_configuration_set function. + * + * @retval 0 PA activation setup purge is successful. + * @retval -NRF_EPERM PA is currently disabled. + */ +int32_t mpsl_fem_pa_configuration_clear(void); + +/** @brief Sets up LNA using the provided event for the upcoming radio reception. + * + * Multiple configurations can be provided by repeating calls to this function (that is, you can set the activate and the deactivate event in multiple calls, + * and the configuration is preserved between calls). + * + * The order of calls of this function and its `pa` counterpart must match the order of radio operations. + * I.e. if you want to listen first and then send the frame, you need first to issue @ref mpsl_fem_lna_configuration_set and only after @ref mpsl_fem_pa_configuration_set. + * + * If a @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_TIMER timer event is provided, the LNA will be configured to activate or deactivate at the application-configured time gap + * before the timer instance reaches the given register_value. The time gap is set via the corresponding configuration setter of the selected Front End Module. + * + * If a @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_GENERIC event is provided, the LNA will be configured to activate or deactivate when an event occurs. + * + * The function sets up the PPIs and the GPIOTE channel to activate LNA for the upcoming radio transmission. + * The LNA pin will be active until deactivated, which can happen either by encountering a configured deactivation event or by using @ref mpsl_fem_deactivate_now. + * + * @param[in] p_activate_event Pointer to the activation event structure. + * @param[in] p_deactivate_event Pointer to the deactivation event structure. + * + * @pre To activate LNA, the corresponding configuration setter of the selected Front End Module must have been called first. + * + * @note If a timer event is provided, the caller of this function is responsible for starting the timer and configuring its shorts. + * Moreover, the caller is responsible for stopping the timer no earlier than the compare channel of the lowest ID among the provided ones does expire. + * + * @note The activation event can be only of type @ref mpsl_fem_event_type_t::MPSL_FEM_EVENT_TYPE_TIMER. Using other activation event type leads to undefined module behavior. + * + * @retval 0 LNA activation setup is successful. + * @retval -NRF_EPERM LNA is currently disabled. + * @retval -NRF_EINVAL LNA activation setup could not be performed due to invalid or missing configuration parameters + * in p_activate_event or p_deactivate_event, or both. + */ +int32_t mpsl_fem_lna_configuration_set(const mpsl_fem_event_t * const p_activate_event, + const mpsl_fem_event_t * const p_deactivate_event); + +/** @brief Clears up the configuration provided by the @ref mpsl_fem_lna_configuration_set function. + * + * + * @retval 0 LNA activate setup purge is successful. + * @retval -NRF_EPERM LNA is currently disabled. + */ +int32_t mpsl_fem_lna_configuration_clear(void); + +/** @brief Deactivates PA/LNA with immediate effect - contrary to @ref mpsl_fem_lna_configuration_clear or @ref mpsl_fem_pa_configuration_clear, + * which both just set up the infrastructure for events which shall disable the PA/LNA. + * + * @param[in] type Whether to deactivate imeediately PA, LNA, or both (see @ref mpsl_fem_functionality_t). + */ +void mpsl_fem_deactivate_now(mpsl_fem_functionality_t type); + +/** @brief Instruct Front End Module to disable PA and LNA as soon as possible using the group following the event. + * + * @param[in] event Address of the event which is triggered when the abort condition occurs. + * @param[in] group PPI Group which shall be disabled when the abort event is triggered. + * + * @retval 0 Setting of the abort sequence path is successful. + * @retval -NRF_EPERM Setting of the abort sequence path could not be performed. + */ +int32_t mpsl_fem_abort_set(uint32_t event, uint32_t group); + +/** @brief Adds one more PPI channel to the PPI Group prepared by the @ref mpsl_fem_abort_set function. + * + * @param[in] channel_to_add PPI channel to add to the PPI group. + * @param[in] group The said PPI group. + * + * @retval 0 Setting of the abort sequence path is successful. + * @retval -NRF_EPERM Setting of the abort sequence path could not be performed. + */ +int32_t mpsl_fem_abort_extend(uint32_t channel_to_add, uint32_t group); + +/** @brief Removes one PPI channel from the PPI Group prepared by the @ref mpsl_fem_abort_set function. + * + * @param[in] channel_to_remove PPI channel to remove from the PPI group. + * @param[in] group The said PPI group. + * + * @retval 0 Setting of the abort sequence path is successful. + * @retval -NRF_EPERM Setting of the abort sequence path could not be performed. + */ +int32_t mpsl_fem_abort_reduce(uint32_t channel_to_remove, uint32_t group); + +/** @brief Clears up the configuration provided by the @ref mpsl_fem_abort_set function. + * + * @retval 0 Clearing of the abort sequence path is successful. + * @retval -NRF_EPERM Clearing was not done - the possible reason is that there was nothing to clear. + */ +int32_t mpsl_fem_abort_clear(void); + +/** @brief Cleans up the configured PA/LNA timer/radio instance and corresponding allocated hardware resources. + * The function resets the hardware that has been set up for the PA/LNA activation. The PA and LNA module control configuration parameters are not deleted. + * The function is intended to be called after the radio disable signal. + */ +void mpsl_fem_cleanup(void); + +/** @brief Checks if the PA signaling is configured and enabled, and gets the configured gain in dB. + * + * @param[out] p_gain The configured gain in dB if PA is configured and enabled. + * If there is no PA present or the PA does not affect the signal gain, returns 0 dB. + */ +void mpsl_fem_pa_is_configured(int8_t * const p_gain); + +/** @brief Prepares the Front End Module to switch to the Power Down state. + * The timer is owned by the protocol and must be started by the protocol. + * The timer stops after matching the provided compare channel (the call sets the short). + * + * @param[in] p_instance Timer instance that is used to schedule the transition to the Power Down state. + * @param[in] compare_channel Compare channel to hold a value for the timer. + * @param[in] ppi_id ID of the PPI channel used to switch to the Power Down state. + * @param[in] event_addr Address of the event which shall trigger the Timer start. + * + * @retval true Whether the scheduling of the transition was successful. + * @retval false Whether the scheduling of the transition was not successful. + */ +bool mpsl_fem_prepare_powerdown(NRF_TIMER_Type * p_instance, + uint32_t compare_channel, + uint32_t ppi_id, + uint32_t event_addr); + +#endif // MPSL_FEM_PROTOCOL_API_H__ + +/**@} */ diff --git a/mpsl/lib/cortex-m33+nodsp/soft-float/libmpsl.a b/mpsl/lib/cortex-m33+nodsp/soft-float/libmpsl.a index 18dd88c22fa27192cf3881020751965a31fff11c..4246d58ce097464d2f461492567861ef83bb7322 100644 GIT binary patch delta 20797 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 delta 17284 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 qHD4w1N$HV diff --git a/mpsl/lib/cortex-m33+nodsp/soft-float/manifest.yaml b/mpsl/lib/cortex-m33+nodsp/soft-float/manifest.yaml index 8e5e161975..b15990e15f 100644 --- a/mpsl/lib/cortex-m33+nodsp/soft-float/manifest.yaml +++ b/mpsl/lib/cortex-m33+nodsp/soft-float/manifest.yaml @@ -1,3 +1,3 @@ description: Multi-Protocol Service Layer (MPSL) -git_revision: 5adc4cd03489d50c51d4d4e078c170656efd1581 -timestamp: '2020-09-14T13:41:56Z' +git_revision: 5ba0c131a3bb240f96ddef4e92db9f691e7d8431 +timestamp: '2020-09-21T10:39:02Z' diff --git a/mpsl/lib/cortex-m4/hard-float/libmpsl.a b/mpsl/lib/cortex-m4/hard-float/libmpsl.a index b0fa0272fe7c1f43c74a3761f0d33b66ab701b92..e04e831df8464af5b3e21a2cd132d83eaa169a35 100644 GIT binary patch delta 34388 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 ATmS$7 delta 34172 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 Tbr^-fquzpPJV<#zrpo^ZH}l39 delta 34907 zcmeHQ4}4U`wVt`V8#dd71PB;IST`X;#0cT9=%cvAkOqtpBw$38070WhAb^4vS+HoS zr3x;3!BQVqw6x-rxK=<>{;H_R3yMBe(1<7qs9+I;BEIjNnVVg0)kn?iudN$@=9@F$ z%$YN1&Y78evk7Zn^xk%tcV1>F|D62ZJ$eNK`2l{#eh&oBIj6g>2vqol5N`_6aeNd1 zA8KlaC#f&ghE?RY1rlhZ3b=XRA*9DL6lwTIJ{>uR};H@}5;8#`N z3K2+}7xXuu_xXT?1Gfr!V5X~WyOc*#Ui{_06v4JnH58@(?pR@hZ{uUmig%y08Y_xukslNSyspzd8CxU-1X!jwgUL!qEG&zk`(5S`O8 zMz=)Iw%>6?Xd8UUN__0_%#gP(Wua&*to5ge11%~blkcrmd{qNi$51cwWvE`zIQ{NPw($~J!&}SW{oJez17I`zGCiKk>Uj7FCo(N>2((5d2#^tHeBi|pStlmuEAJ+oJI9>E!+et4b8 zLT&1A{ZH)WJUea+9v$D}Hnn=0;cNb*UC382&NzE#O1&AQFrZd^TM=8k(RxvfX{vR~ z!qi2gZDQMBACj&c2hti$tKTmQ7Oq|K>CBWiFW**>_KNO1d0_IQp_$Dy9zPIH$yvMP zfJ|D0Qkz#EEok;~YKFJ4C^NOb?FtciYTuzd#)SI2Umk+WU}jN)r+)B}PNOeV!-)=~ z;Pswj=ITcZdaTVY>Rt3Crk%D{Wcjnag)0i&Zw8MpZ*h@oODB2itN?u|)%QmVTEG0@ z0guFrxCS3`Sy*Njgn`v*3sdHa09+!PMP&QKZ9}f?^rDpdmantvg9nQnNPq>UtMy2tU1nXJE=fQ ztzC^a8Fd{mysII9pa|5`ZV|YpAzzR4VeZFQyy%tkqB`A>=$>}#I7uEE`EU4ys%x`w3g>l#uwrY_gD zX{}n;w+-7rJw3FpAsuWc*uciNE2LVK;3t=K%}~=Dd}wB&9{H33>l;!%>l@Pgw;531 z(pzyCMsaMo1?59+mmEITE%MwugGaw?@e|eCl`Y$66{RX?=GP_;5CLu!-T~fa#ZwL=7yF=a-ey^;({6#o%SUc!Hry|m6*ml`!dRE&d)L37&;_z4J zaq({ox48I1c}rx}#h12C8?m#buE(!lO&YR&d;PTa6UUAJvh}RU)=77^33os7AK}z{ zvcs(xbv}E-_)(RUMqfE$!uYesRF4}qcEb26lO|MGkDD~=+R>AzjGNSD%ym~)SB@G# z>587+O!?Z0ldB_FFWM**hLldZpht1I>xs7_Ef)8ep)OaC8-LAJ<0p@rI$_c^lP8WI zJFZK#^t~fdZEPK{I#0b+Bb!on%{S93Kvyh zHD+>`Nuw*Tn$V^5$@;6^x307D*E@eWr70$w|8Tn>IMLXsL+nlKQZ>5zq+%lQeX$&_ zc{p$24~vahBg0wumqvbnZ-q=KD7m=!!T~BN-e1x$o)q7{wWyGbCxx?Be(weu8*l$I zNfEwdceBX#_fM7y=U;U}aZ$cKq>X$xod1wFJmdcJ!l8#2hyVOw%@5oyeheo^6YR_O zkmj;u6X*$Je{TvkIBkC5!vAA3qKS<>sdJ3SSlT!5WNPC)Z`Cc~)UAn;&C5bEp|an_ zJ&T8{+=}EsR2e^YzW>x|f(VW$6tDPSJGcH%_pX21gmO(9cWrpvqR+yYZ|WW%@yOW; z7Y&~};p|J)W$wBaCGoV1r&aWUHd^{x27KRx$N%5W?VmNRZVg+PwuxLDnJ5#wjk)0B zvqz|WTL0(jcs|ARDVjymQaqp3tGI8w_uVQ*IPm0!c!#%29aP6x_e+?P-~IZ6e3e*P zPgcYeE1p=?l!~WRG?AjEcuIX|O7Y#FC;VC4mXXNj>tw>P zE5;5gK1aV>XJz{rhsP5uo>bsLFGW3-ZGNJqAnwlzgO6`u^_3GL2WctS?Q#iD@s&zJ0eh{JNjXR$u?7?kWtwy?ajhKi_H=UQj>b2W|`T&ntcJeTgnoAFqfXT>nNN zv0#2pygwmw_wM*-DZb+~_v-Uq_+V^PeMBjqL;qGebaiCXdt+rn$*}T4Rr>WrUR{V|mcmL&uCVbo1 z1Q~VL3E3pS;T!)&;gk6TDBry6HqkE%BQd2|`I(gQbM0U2@)*y;f2-H_<2?9lQvH5r zXJ^PxveLdVLtbWY$dIFC#melqa)|Vc^SgD>kOMI&SgdRGpFPAtf|FFDD zHeXpiO%BMxpHCFc@xSi@m&hbOdeJoBBRP z{1+rPvqT|rsY?Wa)Sqwa(}5v2;NRx-J?j#z@U3lKJYzhmJ%~o?ZB(0gxs0yPnRlJ zW3)2LaOvel7+Gpwynff3GqM|~B3^K~fQ*W6y{>&vhusvq12XKioM$ZD` zUKnoV9mEg@#IKPG-w~HMLPW=wu+aCZOXM0nmx%gGA`Dw*rFvCz~nbu<5A>C>iS6OfAQh*V4$!QxV4i6tt49H^3rc3d*bgMe&T zPV~T|M6`dDnBW#`fNZyp2!4~1>o7jHQv6jyR47Xg!60OZfT>q$ge7{6a$id+@VVV$ zGiB7DAQo9dZA9>3FD@lKdM*(jW6V%i8`BpEPRh_TC4>S8nr(27!MQ{Xuz(0pcrgIm zWpE(JBZ!@ylo1pAiECYYM@0QV^rKNZw8u4!~n~HY)6j})qe07wWlk&H`~E5ZcH>xEg|H^lre#&x?iYK(F#^zP18+- zT!TsxIs}be0%W^P%23!D=*Iv(SPw(ko~X83^vgGLAA{LI1~vQn_J*)VETExU<6^S~ zA2a&`>Zg;3%arBdRZyXRE9)V@rWCovZlmWQ5d)|V3$9P1s}Te0a5`>c1N%S$>qAgf ziGm+%QN;=9{R|`DN*siXh>=$r ze8HgFz|bEytLS&Tng4KMsv8I*jR-lN2v4Y;4sw7pT&s3E7^HSO$URU`gNhB75n<33 zMxI23p6Nj9tDtAmUd0sf9(Df1)qgU?vj$aAp@BM#V6IvMxH#Ron1>Nve35bS-NwZ` z4DL3VM$e&NE)gzA;;4SkSrVGU3Z&0%L=1Q@5o@@Kh#=Z-_|J(@kO|k(Qvo78lVdQC zNDr9_Fx{xHjED(V82Ltn^E8I^r4g?AFGFM-%ljBCBEqHRMjk`N5?pWO-xIOsj~Q9* za2Qzaa6l*cPLRhqUQC3BClQ;45Y;SzpsRQ|^r9gcFbHJB0A*xJHzE|48yrde#9UlZ zKf~1DX;3XGX8yR5>kRHQc$65zK$fwrrI~?BBPg70WbOkTSj`l;oH7i3-_#!=Vgkp3 zG+50L?bHlWuO^80+#xwJE)ClSfgu(UoGOofM4V1)%l#0+LK!nxGi`8*Y9rrD#05po z6#N#-SOPUO3?OI_HZ-+gV8;s>!}5rTk$fZfkjQ^lpbHKVx5g9t+8islF$1gM!hqb< z8MMk!1ZySbV|uIRwRT*rYO(2h5$0wT_UA|iI5Quc=)dX{>VRQ|)VG(#v) zpaZ}B$a}A;S4)F6%z@0A^3dX$QAinUT*7wXzcv8ssgGMU`}>j3%44sZODQnKHT0vP zEOuNA1IpPEIEDy*x{=k|LtbKJ73GkhHF7QP^J5HE2NG`t{H=c z4IM*zpdo{g1CU=~IzDDlc?RuOaDwNWGAOqj{Op_HobA6UwP;t4`=FPHaG)29I=zWT>8#*i$j#L#ePnNpTI`$@FhJA^c;cy}b97)V_ ztD6)(;bXrXw~i_F?@Sr}RZJ}5n-S!n4@X`Z2zGF@0Tk2al+_wx23%Vza$Kx7r1m-; z*{(Txc*^OgWOzdLhrS+0pTnyqg5C})|Do7vpaz0vDi(}kzHGC@VTM<8Ak1(gahWBq zC!!raNJG2^)kLtQe#m|pqJj@g*NrlkthZ?wVvw<;TD!B{A_$plTpn8wOO@gmbud~$ z6?89{r(ekAeUR16(S8Kw*UXEHca0}-pQAy(-6qZVApey`@0r_aJsyeJU>|P5M92$> zdn_FrP_)b_c$A2KPY}_5t7_*GFB7pdz5(>3-)_opSmFrK`p9Gr^r-CG9nxvwhoS%* zqJvt3J^D$8TdZ1hbmZF6@;*TSTPB@Qp9-0ZnNCFI2^>mHWdA$Hb32V^cIf*=W4jPs zq7;LmCw#DM5D_jMNrXWveK5mml(C0zAVS`0a6b{A`iO}34Zy|$pg)cE(63w%PpH_! z1bU%9#126=*lqF_atUNA;0$Px56Hu#Ipxo^!TwLpMglp5JY*G1F7s9lHy=*Svdl(w z%oy;6@i4B|c`E<$>Vz)#1Xkvb=M&3GbYe)$LK^x;x)&8@a3Xdnk5vz{*W_czC` z;n^;TdSW3FS7v65|4+I<>y>A*;UWH^2s@psaIhS=RMuZ?E*5yIP(1K!^=PN+v4g65 zC{!N74yxAN(f4irz=zb#O7#0Ye?Ps`Sw{9j&gBdsm(w83SOp_+iji+NIM3j{2A3Or zoCrPZfYh^zctN8lLya4TT0=Bs)U#oQX{dq-GJ}f-^fo+Q>bp|Ex}idPz`7QEB779IVmmxfdjG4M>{&&};QG}fh`fQITz&+sH^O#m_Nv8z2W(hB<}<*P%W{1)JCq3e$;@iw!Cl*WkGwGN0kfh@;Kk zKF-VtxPa|%GM+&H#gw5>^}p8a8$e|UkW1{lM#U1&e-tK~iq1q>reXjJDj?IKRD%J7 zDi$y!WfLmvHtMD$ZJg?4Hw(T=?DI%5FjnJWKLv5W*Nb`#;^<3<6WWT=o| z)@AxMvo1BkhL}*nHp&=yiMhsKY<57r?o@^^HXc}QJa7+Q%|ai4qSBlBZ^bmoB!Px% ztMktXDCEdbI(ey_(2W^JaB}dGJ8}NTY{K4g*4Zrvkw!=73b> z!(;hyAb(~<19=U$Z6Lx> zwRDS-|7s?6W^JA}FBCE0xoGHnPG3y;Ganklj#WmHTEq3`Q4H;ahA%X{igq(GPN0ve zXH3x3%0s?ojgMaTyX$4%%2pd>mh?R~RjT0rOxk@n%A({gklF7u#A7qN-$vQiUcOQ0 z`gWq;tLp8y(9X9fDtF!l`5@$c&Cj5mInB{yZ>5|E+4T26BYVkCD~CNJr^@6WsOL&^ zyi7gbk!NLY^4!MuaH_5^d=B*sP`}x<59s;@tRH!UqhE+@UBBl!S?a57thf7amgAGF zAqPzVTw89Dnf9xjsFa9ci4xw z%J#`qP+baDR5!$)wMk~WTMAKa-{-M%lBP>_W|JFgkKUuX?Y4YHDlTZu7^ckd%xxva z6kBeB*1Ve>Ukh=uW|^FeZArBt=a{aS*j-Aa*ZaZgY0d(j@4buP8DLJ z-S5A(UNlt>8fVXc2|dA;YHMS(UTODx9~`cWee9a|biaVIJ3NomNJdU1@)@$sp zdv(th_7Ki94L`|QXS!aiy9SZrTkKhTpcka0cY@ubPG-t>_KA(ML-G+Y&Kzs(uFpef zJ0WK3b#~8$)6F_hwrlnwD}J+Gc1)f-ORDXRYkZwO`bBig5h7hXy!z&-Ayc&>`>>f8 z>N({7B0Am;b{2iw5#ejke?hkQ|C z?5!P<33jIGIa9OiuvI45EjH?|PN>|h$!8t1eezOtb=cYVw%wTTU9Vxj%VX+qRlV#z zuVHt2ET(>r-QsN+31xHbS#^3OCq8b|BUPR$#4_!MBj{OfjGU_$#GS_=$nql8Z;4uQ zyFK~?XazUYmV2QUT+sBJXV2ntflIgV+od^YDetu9HqEJdV`?!<7ie=fpr@N&X`j42 zhP~S!Qm?xv=~#~87V4hc(X(975~MTBd-QUig%6Zytw%sQ1}(O;o{?=meZcm%=i?tO zvy>S*W0aH^E5*^34PbWQln*(U9&;9w@S~l$8V4wtTK(Ba!?71@>HO>SO*1u zitPl&Qf=mOkf|mpz*ZQ)J*fTNMfsE)&vcN^vMd{v}K-s zD3iy&GELi(Z@53}S@aZQoxOg)?3m~buu=uC8^i(?PWFcfWivIXN54xdNoxZ`&tV#;|K`Sr6;`=(w&1<1G1l-LC=t zGVJvq%N+OF3~{yBPmgK0Nw+HnJ5955W7ubPID(w6$;B~)Z`L~lBCwqC@Yhka7*wi` zqUF7H6s^$cc?^_^q9;%^nXoiQ`+sZ0)`3m8ha8nT(x}*JRMbaR>_buQ??@)7a8~eD z9SP^q1!{}C2*qsszAxYnlzMYY%Gv2=SzotnwquRJmDz`RWX33aQ`^If;T9e9*qqBv z$6b2a!OhlzG!o=IL%wZXj4NQdK8Zm(k@OD9OgFepyX&hM@>kI{d{-Y{;GF#%q+{!Q zN~`7lsXgOu*)g`;UOS5k@KdT(+g6Oq5A=lroSHqNDMsZ1ZRl*>Qza)@CpkY)ed#`LXV~59AUPC}4xe0f#j^r>{y~p0qJ)|6*tDQz5Jz4#G*LPxaY`PN{aS+sd)e zYA^}&nbubiYNY+nThMn~)Gx>E`8?InQ_fa58<5T%zTjYr^y!GW7ws~+Vg7aWu2GbV zyz_MM?$qe12V;VFABstK))twQ*f@;+(SGUo9MPJaW8-LK@NenbhxcPAPK9e)+CvUv z8)$dT%&M8DvOyW+@=#3Ir&5dxpKezOGN30>iDH`G^~+)!ChLaNz^2-xze3QX)WhZu zb4E-v{^+Ig1}naP4y*~<%|FNHzb>dfut}q5Gc*|wY(=qB4_+CgwT<2N3+%N0*sr68 z4xT>!8oL#sn5NAij-p>@B}&J2{8U4ilR)kCL?+^Kw})nrgGJ7(E8b~#ZIYGg23e*S zBI(!BV93%v8$dSKgL%*Axay=wJ0~u3?0yFj7vKUqWn#Dv_Gsz{m#3#WGKS3615|-^ zwr8-;CfrH0Q^4lfwJ#x1W5_&BE(DpTH;vg~E6l7qYj$}dcQ%z8AmM5?<$O&Z2dPi{ zvvTG}N9`uReL<7@<55L#$!Y!7ntIYv<+cy|tQvFM%&=!+Lt%pJef1{%~j^5C3c9HA$l4lkNS0U0nZ9jVD`kY=S~v|et@ zkD(P@v0kVctrdDi-H+RCbqqPiekajt>)8%ApsollzIoByZYO^(J6b!6wJUaN^wgt= z@#gy|nvLS~XtDVKvq-o=##nldo<=U%G#$OFq}HMo#dPhxDii}cnPXou=9518GSuAC5pet8t?}pW6{Q z({oQu&*}DkUMo`$)E+C*=qW{G0? zEhmP&UGKdmLf}1xI9dj3Ib|=_;y@$k*_h>R{kjfNZAY;hII^Z)w`u^sF6&Z6S&Ksn? zo3GK+1C&|8J}9oz?;e~<6E1DbkB7|=qdGz38dqwhc$T|Bpk(89Wi4*qRG6AXpnlp z5<}K%at+Asc5QQ{O|Dt-h-T&uWf<}a)Uz2yvsDdZToriqYoHc2B5MZ6f|3lQja*8XK> zwv|(E-~NK^;K@a!507L#jjovEIM|3}XXmDR={=;BQIb=@WZ5+SN| zP{qvVO-(KYIntihCT4YZX?u=bqU||~7HRhA127t&_3;{W>UAUE2;C@Y1dVRNJ31OU zGke#rNyR#Yo1!m@;G7tEPsac_b5ETPa+=YO2QO}cmztfSee#i*p+B&PVB01+UC;SA z$lj*s0X?mcbB;xg2DvUIviqrsv0c$2krXx2V7M6i&*#G4WpJJW39) zj?wX#m=NJaAvS)MpiAjPjbbB*XJo!Dn&>c#y;7{U>~5!9*`3RO0%syf8=&YuG~&|* cotvopI9){5P$>rF*f*n(XEy8^z%BEC0i(sj0RR91 diff --git a/mpsl/lib/cortex-m4/soft-float/manifest.yaml b/mpsl/lib/cortex-m4/soft-float/manifest.yaml index 2e88c35d85..c866a2402d 100644 --- a/mpsl/lib/cortex-m4/soft-float/manifest.yaml +++ b/mpsl/lib/cortex-m4/soft-float/manifest.yaml @@ -1,3 +1,3 @@ description: Multi-Protocol Service Layer (MPSL) -git_revision: 5adc4cd03489d50c51d4d4e078c170656efd1581 -timestamp: '2020-09-14T13:41:05Z' +git_revision: 5ba0c131a3bb240f96ddef4e92db9f691e7d8431 +timestamp: '2020-09-21T10:38:59Z' diff --git a/mpsl/lib/cortex-m4/softfp-float/libmpsl.a b/mpsl/lib/cortex-m4/softfp-float/libmpsl.a index d1c9cf43325b596afa33e02ac6e355e4ec313cc3..48885fff290b699d08a0bb1724489c09b1dc4577 100644 GIT binary patch delta 34419 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