Skip to content

Commit 9924a5f

Browse files
e-rkrlubos
authored andcommitted
nrf_802154: rev d180284644e9a1f790df53f0ec8de1485440a893
This commit updates revision of the nrf_802154 component. Signed-off-by: Rafal Kuznia <[email protected]>
1 parent 6c7952d commit 9924a5f

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

nrf_802154/doc/CHANGELOG.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Added
2929
Currently, it is supported only on nRF54L Series SoCs.
3030
Use this API during clock platform initialization.
3131
If the latency is not set, the driver assumes a default worst-case startup latency of 1650 us.
32+
* When the FEM power amplifier is configured, the Errata 56 for nRF54L15 is automatically applied. (KRKNWK-20409)
3233

3334
nRF Connect SDK v3.0.0 - nRF 802.15.4 Radio Driver
3435
**************************************************

nrf_802154/driver/src/nrf_802154_trx.c

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
#include "nrf_802154_trx_ppi_api.h"
4949
#include "nrf_802154_utils.h"
5050

51+
#include <nrf_erratas.h>
5152
#include "hal/nrf_egu.h"
5253
#include "hal/nrf_radio.h"
5354
#include "hal/nrf_timer.h"
@@ -764,11 +765,12 @@ static void device_config_254_apply_tx(void)
764765

765766
#endif
766767

768+
#if defined(NRF5340_XXAA) && !defined(CONFIG_SOC_SERIES_BSIM_NRFXX)
769+
767770
/** @brief Applies ERRATA-117
768771
*
769772
* Shall be called after setting RADIO mode to NRF_RADIO_MODE_IEEE802154_250KBIT.
770773
*/
771-
#if defined(NRF5340_XXAA) && !defined(CONFIG_SOC_SERIES_BSIM_NRFXX)
772774
static void errata_117_apply(void)
773775
{
774776
/* Register at 0x01FF0084. */
@@ -779,8 +781,7 @@ static void errata_117_apply(void)
779781
*p_radio_reg = ficr_reg;
780782
}
781783

782-
static uint32_t m_pa_mod_filter_latched = 0;
783-
static bool m_pa_mod_filter_is_latched = false;
784+
#endif /* defined(NRF5340_XXAA) && !defined(CONFIG_SOC_SERIES_BSIM_NRFXX)*/
784785

785786
/** @brief Applies modulation fix when PA is used.
786787
*
@@ -791,7 +792,19 @@ static bool m_pa_mod_filter_is_latched = false;
791792
*/
792793
static void pa_modulation_fix_apply(bool enable)
793794
{
794-
volatile uint32_t * p_radio_reg = (volatile uint32_t *)(RADIO_BASE + 0x584UL);
795+
#if !defined(CONFIG_SOC_SERIES_BSIM_NRFXX)
796+
#if (defined(NRF5340_XXAA) || defined(NRF54L_CONFIGURATION_56_ENABLE))
797+
static uint32_t m_pa_mod_filter_latched = 0;
798+
static bool m_pa_mod_filter_is_latched = false;
799+
volatile uint32_t * p_radio_reg;
800+
801+
#if defined(NRF5340_XXAA)
802+
p_radio_reg = (volatile uint32_t *)(RADIO_BASE + 0x584UL);
803+
#elif defined(NRF54L_CONFIGURATION_56_ENABLE)
804+
p_radio_reg = (volatile uint32_t *)(RADIO_BASE + 0x8C4UL);
805+
#else
806+
#error Unknown SoC
807+
#endif
795808

796809
if (enable)
797810
{
@@ -801,20 +814,29 @@ static void pa_modulation_fix_apply(bool enable)
801814

802815
if ((fem_caps.flags & MPSL_FEM_CAPS_FLAG_PA_SETUP_REQUIRED) != 0)
803816
{
817+
#if defined(NRF5340_XXAA)
804818
m_pa_mod_filter_latched = *(p_radio_reg);
805819
m_pa_mod_filter_is_latched = true;
806820
*(p_radio_reg) = 0x40081B08;
821+
#elif defined(NRF54L_CONFIGURATION_56_ENABLE)
822+
// MLTPAN-56
823+
m_pa_mod_filter_latched = *(p_radio_reg);
824+
m_pa_mod_filter_is_latched = true;
825+
*(p_radio_reg) = 0x01280001ul;
826+
#endif
807827
}
808828
}
809829
else if (m_pa_mod_filter_is_latched)
810830
{
811831
*(p_radio_reg) = m_pa_mod_filter_latched;
812832
m_pa_mod_filter_is_latched = false;
813833
}
834+
#endif /* (defined(NRF5340_XXAA) || defined(NRF54L_CONFIGURATION_56_ENABLE)) */
835+
#else /* !defined(CONFIG_SOC_SERIES_BSIM_NRFXX) */
836+
(void)enable;
837+
#endif /* !defined(CONFIG_SOC_SERIES_BSIM_NRFXX) */
814838
}
815839

816-
#endif
817-
818840
void nrf_802154_trx_module_reset(void)
819841
{
820842
m_trx_state = TRX_STATE_DISABLED;
@@ -890,9 +912,10 @@ void nrf_802154_trx_enable(void)
890912
#if defined(NRF5340_XXAA) && !defined(CONFIG_SOC_SERIES_BSIM_NRFXX)
891913
// Apply ERRATA-117 after setting RADIO mode to NRF_RADIO_MODE_IEEE802154_250KBIT.
892914
errata_117_apply();
893-
pa_modulation_fix_apply(true);
894915
#endif
895916

917+
pa_modulation_fix_apply(true);
918+
896919
memset(&packet_conf, 0, sizeof(packet_conf));
897920
packet_conf.lflen = 8;
898921
packet_conf.plen = NRF_RADIO_PREAMBLE_LENGTH_32BIT_ZERO;
@@ -1013,9 +1036,7 @@ void nrf_802154_trx_disable(void)
10131036

10141037
if (m_trx_state != TRX_STATE_DISABLED)
10151038
{
1016-
#if defined(NRF5340_XXAA) && !defined(CONFIG_SOC_SERIES_BSIM_NRFXX)
10171039
pa_modulation_fix_apply(false);
1018-
#endif
10191040

10201041
#if defined(RADIO_POWER_POWER_Msk)
10211042
nrf_radio_power_set(NRF_RADIO, false);

0 commit comments

Comments
 (0)