From ce84e7f3d62efff431664c8e53d61277f022fd2b Mon Sep 17 00:00:00 2001 From: Andrzej Kuros Date: Wed, 3 Apr 2024 21:03:57 +0300 Subject: [PATCH] nrf_802154: rev 17a82ff3a9cb9b2016d1051c485d8f58de449c22 This commit updates revision of the nrf_802154 component. Signed-off-by: Andrzej Kuros --- .../src/mac_features/nrf_802154_csma_ca.c | 2 +- nrf_802154/driver/src/nrf_802154.c | 2 +- nrf_802154/driver/src/nrf_802154_core.c | 24 +-- .../driver/src/nrf_802154_request_swi.c | 1 - nrf_802154/driver/src/nrf_802154_trx.c | 46 +++--- nrf_802154/driver/src/nrf_802154_trx.h | 24 +-- nrf_802154/driver/src/nrf_802154_tx_power.c | 26 ++-- nrf_802154/driver/src/nrf_802154_tx_power.h | 12 +- .../driver/src/nrf_802154_types_internal.h | 2 +- nrf_802154/sl/include/nrf_802154_fal.h | 28 ++-- .../hard-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../soft-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../softfp-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../hard-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../soft-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../softfp-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../hard-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../soft-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../softfp-float/libnrf-802154-sl.a | Bin 43478 -> 43486 bytes .../include/protocol/mpsl_fem_protocol_api.h | 139 ++++++++++++------ .../sl/sl_opensource/src/nrf_802154_sl_fem.c | 43 +++--- 21 files changed, 200 insertions(+), 149 deletions(-) diff --git a/nrf_802154/driver/src/mac_features/nrf_802154_csma_ca.c b/nrf_802154/driver/src/mac_features/nrf_802154_csma_ca.c index b1f7d3728f..8afc884ef4 100644 --- a/nrf_802154/driver/src/mac_features/nrf_802154_csma_ca.c +++ b/nrf_802154/driver/src/mac_features/nrf_802154_csma_ca.c @@ -77,7 +77,7 @@ static uint8_t m_be; ///< Backoff exponent, static uint8_t * mp_data; ///< Pointer to a buffer containing PHR and PSDU of the frame being transmitted. static nrf_802154_transmitted_frame_props_t m_data_props; ///< Structure containing detailed properties of data in buffer. -static nrf_802154_fal_tx_power_split_t m_tx_power; ///< Power to be used when transmitting the frame split into components. +static nrf_802154_fal_tx_power_split2_t m_tx_power; ///< Power to be used when transmitting the frame split into components. static uint8_t m_tx_channel; ///< Channel to be used to transmit the current frame. static csma_ca_state_t m_state; ///< The current state of the CSMA-CA procedure. diff --git a/nrf_802154/driver/src/nrf_802154.c b/nrf_802154/driver/src/nrf_802154.c index 19ce198d6d..cc559f4b9c 100644 --- a/nrf_802154/driver/src/nrf_802154.c +++ b/nrf_802154/driver/src/nrf_802154.c @@ -161,7 +161,7 @@ void nrf_802154_tx_power_set(int8_t power) int8_t nrf_802154_tx_power_get(void) { - nrf_802154_fal_tx_power_split_t split_power = {0}; + nrf_802154_fal_tx_power_split2_t split_power = {0}; return nrf_802154_tx_power_split_pib_power_get(&split_power); } diff --git a/nrf_802154/driver/src/nrf_802154_core.c b/nrf_802154/driver/src/nrf_802154_core.c index 265c2275be..b872a0a36f 100644 --- a/nrf_802154/driver/src/nrf_802154_core.c +++ b/nrf_802154/driver/src/nrf_802154_core.c @@ -118,14 +118,14 @@ static rx_buffer_t * const mp_current_rx_buffer = &nrf_802154_rx_buffers[0]; #endif -static uint8_t * mp_ack; ///< Pointer to Ack frame buffer. -static uint8_t * mp_tx_data; ///< Pointer to the data to transmit. -static uint32_t m_ed_time_left; ///< Remaining time of the current energy detection procedure [us]. -static uint8_t m_ed_result; ///< Result of the current energy detection procedure. -static uint8_t m_last_lqi; ///< LQI of the last received non-ACK frame, corrected for the temperature. -static nrf_802154_fal_tx_power_split_t m_tx_power; ///< Power to be used to transmit the current frame split into components. -static uint8_t m_tx_channel; ///< Channel to be used to transmit the current frame. -static int8_t m_last_rssi; ///< RSSI of the last received non-ACK frame, corrected for the temperature. +static uint8_t * mp_ack; ///< Pointer to Ack frame buffer. +static uint8_t * mp_tx_data; ///< Pointer to the data to transmit. +static uint32_t m_ed_time_left; ///< Remaining time of the current energy detection procedure [us]. +static uint8_t m_ed_result; ///< Result of the current energy detection procedure. +static uint8_t m_last_lqi; ///< LQI of the last received non-ACK frame, corrected for the temperature. +static nrf_802154_fal_tx_power_split2_t m_tx_power; ///< Power to be used to transmit the current frame split into components. +static uint8_t m_tx_channel; ///< Channel to be used to transmit the current frame. +static int8_t m_last_rssi; ///< RSSI of the last received non-ACK frame, corrected for the temperature. static nrf_802154_frame_parser_data_t m_current_rx_frame_data; ///< RX frame parser data. @@ -967,7 +967,7 @@ static void rx_init(nrf_802154_trx_ramp_up_trigger_mode_t ru_tr_mode, bool * p_a nrf_802154_trx_receive_buffer_set(rx_buffer_get()); - nrf_802154_fal_tx_power_split_t split_power = {0}; + nrf_802154_fal_tx_power_split2_t split_power = {0}; (void)nrf_802154_tx_power_split_pib_power_get(&split_power); @@ -1167,7 +1167,7 @@ static void continuous_carrier_init(void) { return; } - nrf_802154_fal_tx_power_split_t split_power = {0}; + nrf_802154_fal_tx_power_split2_t split_power = {0}; (void)nrf_802154_tx_power_split_pib_power_get(&split_power); @@ -1187,7 +1187,7 @@ static void modulated_carrier_init(const uint8_t * p_data) return; } - nrf_802154_fal_tx_power_split_t split_power = {0}; + nrf_802154_fal_tx_power_split2_t split_power = {0}; (void)nrf_802154_tx_power_split_pib_power_get(&split_power); @@ -1890,7 +1890,7 @@ void nrf_802154_trx_receive_frame_crcerror(void) // We don't change receive buffer, receive will go to the same that was already used request_preconditions_for_state(m_state); - nrf_802154_fal_tx_power_split_t split_power = {0}; + nrf_802154_fal_tx_power_split2_t split_power = {0}; (void)nrf_802154_tx_power_split_pib_power_get(&split_power); diff --git a/nrf_802154/driver/src/nrf_802154_request_swi.c b/nrf_802154/driver/src/nrf_802154_request_swi.c index 6ebafd7cc4..fe1b43a6b4 100644 --- a/nrf_802154/driver/src/nrf_802154_request_swi.c +++ b/nrf_802154/driver/src/nrf_802154_request_swi.c @@ -47,7 +47,6 @@ #include "nrf_802154_config.h" #include "nrf_802154_core.h" #include "nrf_802154_critical_section.h" -#include "nrf_802154_debug.h" #include "nrf_802154_queue.h" #include "nrf_802154_rx_buffer.h" #include "nrf_802154_swi.h" diff --git a/nrf_802154/driver/src/nrf_802154_trx.c b/nrf_802154/driver/src/nrf_802154_trx.c index 33e9115503..dbc071d5de 100644 --- a/nrf_802154/driver/src/nrf_802154_trx.c +++ b/nrf_802154/driver/src/nrf_802154_trx.c @@ -612,9 +612,9 @@ static void fem_for_lna_reset(void) * * @note This function must be called before ramp up PPIs are configured. */ -static void fem_for_pa_set(const mpsl_fem_gain_t * p_fem_gain_data) +static void fem_for_pa_set(mpsl_fem_pa_power_control_t pa_power_control) { - (void)mpsl_fem_pa_gain_set(p_fem_gain_data); + (void)mpsl_fem_pa_power_control_set(pa_power_control); if (mpsl_fem_pa_configuration_set(&m_activate_tx_cc0, NULL) == 0) { nrf_timer_shorts_enable(m_activate_tx_cc0.event.timer.p_timer_instance, @@ -641,11 +641,11 @@ static void fem_for_pa_reset(void) * * @note This function must be called before ramp up PPIs are configured. */ -static void fem_for_tx_set(bool cca, const mpsl_fem_gain_t * p_fem_gain_data) +static void fem_for_tx_set(bool cca, mpsl_fem_pa_power_control_t pa_power_control) { bool success; - (void)mpsl_fem_pa_gain_set(p_fem_gain_data); + (void)mpsl_fem_pa_power_control_set(pa_power_control); if (cca) { @@ -764,11 +764,11 @@ static void pa_modulation_fix_apply(bool enable) if (enable) { - int8_t pa_gain = 0; + mpsl_fem_caps_t fem_caps = {}; - mpsl_fem_pa_is_configured(&pa_gain); + mpsl_fem_caps_get(&fem_caps); - if (pa_gain > 0) + if ((fem_caps.flags & MPSL_FEM_CAPS_FLAG_PA_SETUP_REQUIRED) != 0) { m_pa_mod_filter_latched = *(p_radio_reg); m_pa_mod_filter_is_latched = true; @@ -1292,10 +1292,10 @@ bool nrf_802154_trx_receive_buffer_set(void * p_receive_buffer) return result; } -void nrf_802154_trx_receive_frame(uint8_t bcc, - nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, - nrf_802154_trx_receive_notifications_t notifications_mask, - const nrf_802154_fal_tx_power_split_t * p_ack_tx_power) +void nrf_802154_trx_receive_frame(uint8_t bcc, + nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, + nrf_802154_trx_receive_notifications_t notifications_mask, + const nrf_802154_fal_tx_power_split2_t * p_ack_tx_power) { nrf_802154_log_function_enter(NRF_802154_LOG_VERBOSITY_LOW); @@ -1401,7 +1401,7 @@ void nrf_802154_trx_receive_frame(uint8_t bcc, } // Set FEM PA gain for ACK transmission - mpsl_fem_pa_gain_set(&p_ack_tx_power->fem); + mpsl_fem_pa_power_control_set(p_ack_tx_power->fem_pa_power_control); m_timer_value_on_radio_end_event = delta_time; @@ -1528,11 +1528,11 @@ bool nrf_802154_trx_rssi_sample_is_available(void) #endif } -void nrf_802154_trx_transmit_frame(const void * p_transmit_buffer, - nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, - uint8_t cca_attempts, - const nrf_802154_fal_tx_power_split_t * p_tx_power, - nrf_802154_trx_transmit_notifications_t notifications_mask) +void nrf_802154_trx_transmit_frame(const void * p_transmit_buffer, + nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, + uint8_t cca_attempts, + const nrf_802154_fal_tx_power_split2_t * p_tx_power, + nrf_802154_trx_transmit_notifications_t notifications_mask) { nrf_802154_log_function_enter(NRF_802154_LOG_VERBOSITY_LOW); @@ -1607,7 +1607,7 @@ void nrf_802154_trx_transmit_frame(const void * p_tra nrf_radio_int_enable(NRF_RADIO, ints_to_enable); - fem_for_tx_set(cca, &p_tx_power->fem); + fem_for_tx_set(cca, p_tx_power->fem_pa_power_control); nrf_802154_trx_antenna_update(); nrf_802154_trx_ppi_for_ramp_up_set(cca ? NRF_RADIO_TASK_RXEN : NRF_RADIO_TASK_TXEN, rampup_trigg_mode, @@ -2168,7 +2168,7 @@ static void standalone_cca_abort(void) #if NRF_802154_CARRIER_FUNCTIONS_ENABLED -void nrf_802154_trx_continuous_carrier(const nrf_802154_fal_tx_power_split_t * p_tx_power) +void nrf_802154_trx_continuous_carrier(const nrf_802154_fal_tx_power_split2_t * p_tx_power) { nrf_802154_log_function_enter(NRF_802154_LOG_VERBOSITY_LOW); @@ -2180,7 +2180,7 @@ void nrf_802154_trx_continuous_carrier(const nrf_802154_fal_tx_power_split_t * p txpower_set(p_tx_power->radio_tx_power); // Set FEM - fem_for_pa_set(&p_tx_power->fem); + fem_for_pa_set(p_tx_power->fem_pa_power_control); // Select antenna nrf_802154_trx_antenna_update(); @@ -2222,8 +2222,8 @@ static void continuous_carrier_abort(void) nrf_802154_log_function_exit(NRF_802154_LOG_VERBOSITY_HIGH); } -void nrf_802154_trx_modulated_carrier(const void * p_transmit_buffer, - const nrf_802154_fal_tx_power_split_t * p_tx_power) +void nrf_802154_trx_modulated_carrier(const void * p_transmit_buffer, + const nrf_802154_fal_tx_power_split2_t * p_tx_power) { nrf_802154_log_function_enter(NRF_802154_LOG_VERBOSITY_LOW); @@ -2242,7 +2242,7 @@ void nrf_802154_trx_modulated_carrier(const void * p_ nrf_radio_shorts_set(NRF_RADIO, SHORTS_MOD_CARRIER); // Set FEM - fem_for_pa_set(&p_tx_power->fem); + fem_for_pa_set(p_tx_power->fem_pa_power_control); // Select antenna nrf_802154_trx_antenna_update(); diff --git a/nrf_802154/driver/src/nrf_802154_trx.h b/nrf_802154/driver/src/nrf_802154_trx.h index 8505a81d39..c780a4e0e6 100644 --- a/nrf_802154/driver/src/nrf_802154_trx.h +++ b/nrf_802154/driver/src/nrf_802154_trx.h @@ -207,10 +207,10 @@ void nrf_802154_trx_cca_configuration_update(void); * It is bitwise combination of @ref nrf_802154_trx_receive_notifications_t values. * @param[in] p_ack_tx_power Selects the power which should be used to transmitted an ACK if required. */ -void nrf_802154_trx_receive_frame(uint8_t bcc, - nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, - nrf_802154_trx_receive_notifications_t notifications_mask, - const nrf_802154_fal_tx_power_split_t * p_ack_tx_power); +void nrf_802154_trx_receive_frame(uint8_t bcc, + nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, + nrf_802154_trx_receive_notifications_t notifications_mask, + const nrf_802154_fal_tx_power_split2_t * p_ack_tx_power); /**@brief Puts the trx module into receive ACK mode. * @@ -353,11 +353,11 @@ bool nrf_802154_trx_receive_buffer_set(void * p_receive_buffer); * It is bitwise combination of @ref nrf_802154_trx_transmit_notifications_t values. * @note To transmit ack after frame is received use @ref nrf_802154_trx_transmit_ack. */ -void nrf_802154_trx_transmit_frame(const void * p_transmit_buffer, - nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, - uint8_t cca_attempts, - const nrf_802154_fal_tx_power_split_t * p_tx_power, - nrf_802154_trx_transmit_notifications_t notifications_mask); +void nrf_802154_trx_transmit_frame(const void * p_transmit_buffer, + nrf_802154_trx_ramp_up_trigger_mode_t rampup_trigg_mode, + uint8_t cca_attempts, + const nrf_802154_fal_tx_power_split2_t * p_tx_power, + nrf_802154_trx_transmit_notifications_t notifications_mask); /**@brief Puts the trx module into transmit ACK mode. * @@ -403,7 +403,7 @@ void nrf_802154_trx_standalone_cca(void); * Generation of a continuous carrier generates no handlers. It may be terminated by a call to * @ref nrf_802154_trx_abort or @ref nrf_802154_trx_disable. */ -void nrf_802154_trx_continuous_carrier(const nrf_802154_fal_tx_power_split_t * p_tx_power); +void nrf_802154_trx_continuous_carrier(const nrf_802154_fal_tx_power_split2_t * p_tx_power); /**@brief Restarts generating continuous carrier * @@ -420,8 +420,8 @@ void nrf_802154_trx_continuous_carrier_restart(void); * @param[in] p_transmit_buffer Pointer to a buffer used for modulating the carrier wave. * @param[in] p_tx_power Transmit power in dBm. */ -void nrf_802154_trx_modulated_carrier(const void * p_transmit_buffer, - const nrf_802154_fal_tx_power_split_t * p_tx_power); +void nrf_802154_trx_modulated_carrier(const void * p_transmit_buffer, + const nrf_802154_fal_tx_power_split2_t * p_tx_power); /** @brief Restarts generating modulated carrier.*/ void nrf_802154_trx_modulated_carrier_restart(void); diff --git a/nrf_802154/driver/src/nrf_802154_tx_power.c b/nrf_802154/driver/src/nrf_802154_tx_power.c index 546bc32010..8be75d5b8e 100644 --- a/nrf_802154/driver/src/nrf_802154_tx_power.c +++ b/nrf_802154/driver/src/nrf_802154_tx_power.c @@ -37,29 +37,29 @@ #include "nrf_802154_fal.h" int8_t nrf_802154_tx_power_convert_metadata_to_tx_power_split( - uint8_t channel, - nrf_802154_tx_power_metadata_t tx_power, - nrf_802154_fal_tx_power_split_t * const p_tx_power_split) + uint8_t channel, + nrf_802154_tx_power_metadata_t tx_power, + nrf_802154_fal_tx_power_split2_t * const p_tx_power_split) { int8_t power_unconstrained = tx_power.use_metadata_value ? tx_power.power : nrf_802154_pib_tx_power_get(); - return nrf_802154_fal_tx_power_split(channel, power_unconstrained, p_tx_power_split); + return nrf_802154_fal_tx_power_split2(channel, power_unconstrained, p_tx_power_split); } int8_t nrf_802154_tx_power_split_pib_power_get( - nrf_802154_fal_tx_power_split_t * const p_split_power) + nrf_802154_fal_tx_power_split2_t * const p_split_power) { - return nrf_802154_fal_tx_power_split(nrf_802154_pib_channel_get(), - nrf_802154_pib_tx_power_get(), - p_split_power); + return nrf_802154_fal_tx_power_split2(nrf_802154_pib_channel_get(), + nrf_802154_pib_tx_power_get(), + p_split_power); } int8_t nrf_802154_tx_power_split_pib_power_for_channel_get( - uint8_t channel, - nrf_802154_fal_tx_power_split_t * const p_split_power) + uint8_t channel, + nrf_802154_fal_tx_power_split2_t * const p_split_power) { - return nrf_802154_fal_tx_power_split(channel, - nrf_802154_pib_tx_power_get(), - p_split_power); + return nrf_802154_fal_tx_power_split2(channel, + nrf_802154_pib_tx_power_get(), + p_split_power); } diff --git a/nrf_802154/driver/src/nrf_802154_tx_power.h b/nrf_802154/driver/src/nrf_802154_tx_power.h index df9ebb4e60..1b1cba6839 100644 --- a/nrf_802154/driver/src/nrf_802154_tx_power.h +++ b/nrf_802154/driver/src/nrf_802154_tx_power.h @@ -53,9 +53,9 @@ * */ int8_t nrf_802154_tx_power_convert_metadata_to_tx_power_split( - uint8_t channel, - nrf_802154_tx_power_metadata_t tx_power, - nrf_802154_fal_tx_power_split_t * const p_tx_power_split); + uint8_t channel, + nrf_802154_tx_power_metadata_t tx_power, + nrf_802154_fal_tx_power_split2_t * const p_tx_power_split); /**@brief Get the transmit power stored in PIB after applying the power constraints for the current channel and splitting * into components to be applied on each stage of the transmit path. @@ -68,7 +68,7 @@ int8_t nrf_802154_tx_power_convert_metadata_to_tx_power_split( * */ int8_t nrf_802154_tx_power_split_pib_power_get( - nrf_802154_fal_tx_power_split_t * const p_split_power); + nrf_802154_fal_tx_power_split2_t * const p_split_power); /**@brief Get the transmit power stored in PIB after applying the power constraints for the given channel and splitting * into components to be applied on each stage of the transmit path. @@ -80,7 +80,7 @@ int8_t nrf_802154_tx_power_split_pib_power_get( * */ int8_t nrf_802154_tx_power_split_pib_power_for_channel_get( - uint8_t channel, - nrf_802154_fal_tx_power_split_t * const p_split_power); + uint8_t channel, + nrf_802154_fal_tx_power_split2_t * const p_split_power); #endif // NRF_802154_TX_POWER_H__ diff --git a/nrf_802154/driver/src/nrf_802154_types_internal.h b/nrf_802154/driver/src/nrf_802154_types_internal.h index 403d3c8c9d..7c2125e94d 100644 --- a/nrf_802154/driver/src/nrf_802154_types_internal.h +++ b/nrf_802154/driver/src/nrf_802154_types_internal.h @@ -41,7 +41,7 @@ typedef struct { nrf_802154_transmitted_frame_props_t frame_props; // !< Properties of the frame to be transmitted. - nrf_802154_fal_tx_power_split_t tx_power; // !< Power to be used when transmitting the frame, split into components to be applied on each stage on transmit path. + nrf_802154_fal_tx_power_split2_t tx_power; // !< Power to be used when transmitting the frame, split into components to be applied on each stage on transmit path. uint8_t channel; // !< Transmission channel bool cca; // !< If the driver is to perform CCA procedure before transmission. bool immediate; // !< If true, the driver schedules transmission immediately or never. If false, the transmission may be postponed diff --git a/nrf_802154/sl/include/nrf_802154_fal.h b/nrf_802154/sl/include/nrf_802154_fal.h index 588d86d3c3..5b333dcaad 100644 --- a/nrf_802154/sl/include/nrf_802154_fal.h +++ b/nrf_802154/sl/include/nrf_802154_fal.h @@ -47,28 +47,30 @@ extern "C" { #endif -/** - * @brief Represents components of tx_power to be applied for stages on transmit path. - */ +/** @brief Represents components of tx_power to be applied for stages on transmit path. */ typedef struct { - int8_t radio_tx_power; // !< TX power in dBm to be applied to the RADIO peripheral. - mpsl_fem_gain_t fem; // !< Data needed to set the FEM gain -} nrf_802154_fal_tx_power_split_t; + /** TX power to be applied to the RADIO peripheral. */ + int8_t radio_tx_power; + + /** PA power control to be applied to Front-End Module. */ + mpsl_fem_pa_power_control_t fem_pa_power_control; +} nrf_802154_fal_tx_power_split2_t; -/** @brief Splits transmit power value into components to be applied on each stage on the transmit path. +/** @brief Splits transmit power value into components to be applied on each stage on transmit path. * - * @note This is a stub implementation used when MPSL is not linked. + * @note If the exact value of @p power cannot be achieved this function attempts to use less + * power to not exceed constraint. * - * @param[in] channel Ignored. + * @param[in] channel 802.15.4 channel. * @param[in] power TX power in dBm requested for transmission on air. * @param[out] p_tx_power_split Components of tx_power to be applied for stages on transmit path. * - * @returns The real achieved total transmission power in dBm. + * @return Actually achieved power in dBm. */ -int8_t nrf_802154_fal_tx_power_split(const uint8_t channel, - const int8_t power, - nrf_802154_fal_tx_power_split_t * const p_tx_power_split); +int8_t nrf_802154_fal_tx_power_split2(const uint8_t channel, + const int8_t power, + nrf_802154_fal_tx_power_split2_t * const p_tx_power_split); #ifdef __cplusplus } diff --git a/nrf_802154/sl/sl/lib/nRF54H20_CPURAD/hard-float/libnrf-802154-sl.a b/nrf_802154/sl/sl/lib/nRF54H20_CPURAD/hard-float/libnrf-802154-sl.a index ecce7360e7883f2f9f6c5a844a73999184252ecd..d216a28ea180f6cfca96ea32e8c30cf3ac62d8b4 100644 GIT binary patch delta 214 zcmcb1nd#nTrVZtcl41-DbFkvcfx=>w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@w7l^WM<`wp4nw%jbHu-`a%Vq(VCp}Ci29x>t zH5e~UmY=wlhe4S^iPbH`?d(ei<;^!HE@NWU*jzv5J`*1w0|Nt>3Il@_h*q7v!N7U4 z!VI3xyQe>9WVDz(e`YzO!({PU{)`@z(}85bw7l^WM<`wp4nw%jbHu-`a%Vq(VCq0bDlM{0_ z8Ba`>pSYEU)h)wq^Mi@Ym>3l{w@radio_tx_power = to_radio_tx_power_convert(power).dbm; - p_tx_power_split->fem.gain_db = 0; - p_tx_power_split->fem.private_setting = 0; -} + (void)freq_mhz; + (void)tx_power_ceiling; -int32_t mpsl_fem_pa_gain_set(const mpsl_fem_gain_t * p_gain) -{ - (void)p_gain; + p_tx_power_split->radio_tx_power = to_radio_tx_power_convert(power).dbm; + p_tx_power_split->fem_pa_power_control = 0; - return 0; + return p_tx_power_split->radio_tx_power; } -void mpsl_fem_pa_is_configured(int8_t * const p_gain) +int32_t mpsl_fem_pa_power_control_set(mpsl_fem_pa_power_control_t pa_power_control) { - (void)p_gain; + (void)pa_power_control; + + return 0; } bool mpsl_fem_prepare_powerdown(NRF_TIMER_Type * p_instance, @@ -222,15 +228,14 @@ bool mpsl_fem_device_config_254_apply_get(void) return false; } -int8_t nrf_802154_fal_tx_power_split(const uint8_t channel, - const int8_t power, - nrf_802154_fal_tx_power_split_t * const p_tx_power_split) +int8_t nrf_802154_fal_tx_power_split2(const uint8_t channel, + const int8_t power, + nrf_802154_fal_tx_power_split2_t * const p_tx_power_split) { (void)channel; - p_tx_power_split->radio_tx_power = to_radio_tx_power_convert(power).dbm; - p_tx_power_split->fem.gain_db = 0; - p_tx_power_split->fem.private_setting = 0; + p_tx_power_split->radio_tx_power = to_radio_tx_power_convert(power).dbm; + p_tx_power_split->fem_pa_power_control = 0; return p_tx_power_split->radio_tx_power; }