Skip to content

Commit

Permalink
Bluetooth: Controller: nRF54Lx: Support Radio fast ramp up
Browse files Browse the repository at this point in the history
Add support for Radio fast ramp up for nRF54Lx SoCs.

Signed-off-by: Vinayak Kariappa Chettimada <[email protected]>
  • Loading branch information
cvinayak committed Jun 12, 2024
1 parent c760ee1 commit 57a6546
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
6 changes: 4 additions & 2 deletions subsys/bluetooth/controller/Kconfig.ll_sw_split
Original file line number Diff line number Diff line change
Expand Up @@ -858,7 +858,8 @@ config BT_CTLR_NRF_GRTC_AUTOEN_DEFAULT

config BT_CTLR_RADIO_ENABLE_FAST
bool "Use tTXEN/RXEN,FAST ramp-up"
depends on SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X
depends on SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X || SOC_COMPATIBLE_NRF54LX
select BT_CTLR_SW_SWITCH_SINGLE_TIMER if SOC_COMPATIBLE_NRF54LX
default y
help
Enable use of fast radio ramp-up mode.
Expand All @@ -872,7 +873,8 @@ config BT_CTLR_TIFS_HW

config BT_CTLR_SW_SWITCH_SINGLE_TIMER
bool "Single TIMER tIFS Trx SW switching"
depends on (!BT_CTLR_TIFS_HW) && (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X)
depends on (!BT_CTLR_TIFS_HW) && (SOC_COMPATIBLE_NRF52X || SOC_COMPATIBLE_NRF53X || \
SOC_COMPATIBLE_NRF54LX)
help
Implement the tIFS Trx SW switch with the same TIMER
instance, as the one used for BLE event timing. Requires
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,8 +243,13 @@ void radio_reset(void)
#endif

#if defined(CONFIG_SOC_COMPATIBLE_NRF54LX)
#if defined(CONFIG_BT_CTLR_TIFS_HW)
NRF_RADIO->TIMING = (0U << RADIO_TIMING_RU_Pos) &
RADIO_TIMING_RU_Msk;
#else /* !CONFIG_BT_CTLR_TIFS_HW */
NRF_RADIO->TIMING = (1U << RADIO_TIMING_RU_Pos) &
RADIO_TIMING_RU_Msk;
#endif /* !CONFIG_BT_CTLR_TIFS_HW */

NRF_POWER->TASKS_CONSTLAT = 1U;
#endif /* CONFIG_SOC_COMPATIBLE_NRF54LX */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,21 @@
#define NRF_RTC NRF_RTC10
#endif /* !CONFIG_BT_CTLR_NRF_GRTC */

#if defined(CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER)
#error "Single Timer feature not supported yet"
#endif

#undef EVENT_TIMER_ID
#define EVENT_TIMER_ID 10

#undef EVENT_TIMER
#define EVENT_TIMER _CONCAT(NRF_TIMER, EVENT_TIMER_ID)

#if !defined(CONFIG_BT_CTLR_TIFS_HW)
#undef SW_SWITCH_TIMER
#if defined(CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER)
#define SW_SWITCH_TIMER EVENT_TIMER
#else /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
#define SW_SWITCH_TIMER NRF_TIMER00
#endif /* !CONFIG_BT_CTLR_SW_SWITCH_SINGLE_TIMER */
#endif /* !CONFIG_BT_CTLR_TIFS_HW */

/* HAL abstraction of event timer prescaler value */
#define HAL_EVENT_TIMER_PRESCALER_VALUE 5U

Expand Down

0 comments on commit 57a6546

Please sign in to comment.