Bluetooth: controller: Add radio fast ramp feature

Added implementation to use nRF radio's fast ramp up mode.

Signed-off-by: Vinayak Kariappa Chettimada <vich@nordicsemi.no>
This commit is contained in:
Vinayak Kariappa Chettimada 2017-05-26 13:01:29 +02:00 committed by Johan Hedberg
commit 46f9489704
5 changed files with 23 additions and 2 deletions

View file

@ -284,8 +284,16 @@ config BLUETOOTH_CONTROLLER_SCHED_ADVANCED
Disabling this feature will lead to overlapping role in timespace Disabling this feature will lead to overlapping role in timespace
leading to skipped events amongst active roles. leading to skipped events amongst active roles.
config BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST
bool "Use tTXEN/RXEN,FAST ramp-up"
depends on SOC_SERIES_NRF52X
default y if SOC_NRF52840
help
Enable use of fast radio ramp-up mode.
config BLUETOOTH_CONTROLLER_TIFS_HW config BLUETOOTH_CONTROLLER_TIFS_HW
bool "H/w Accelerated tIFS Trx switching" bool "H/w Accelerated tIFS Trx switching"
depends on !BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST
default y default y
help help
Enable use of hardware accelerated tIFS Trx switching. Enable use of hardware accelerated tIFS Trx switching.

View file

@ -93,6 +93,12 @@ void radio_phy_set(u8_t phy, u8_t flags)
} }
NRF_RADIO->MODE = (mode << RADIO_MODE_MODE_Pos) & RADIO_MODE_MODE_Msk; NRF_RADIO->MODE = (mode << RADIO_MODE_MODE_Pos) & RADIO_MODE_MODE_Msk;
#if defined(CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST)
NRF_RADIO->MODECNF0 |= (RADIO_MODECNF0_RU_Fast <<
RADIO_MODECNF0_RU_Pos) &
RADIO_MODECNF0_RU_Msk;
#endif /* CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST */
} }
void radio_tx_power_set(u32_t power) void radio_tx_power_set(u32_t power)
@ -211,7 +217,9 @@ u32_t radio_tx_ready_delay_get(u8_t phy, u8_t flags)
#if defined(CONFIG_SOC_SERIES_NRF51X) #if defined(CONFIG_SOC_SERIES_NRF51X)
return 140; return 140;
#elif defined(CONFIG_SOC_SERIES_NRF52X) #elif defined(CONFIG_SOC_SERIES_NRF52X)
#if defined(CONFIG_SOC_NRF52840) #if defined(CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST)
return 40;
#elif defined(CONFIG_SOC_NRF52840)
switch (phy) { switch (phy) {
default: default:
#if defined(CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW) #if defined(CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW)
@ -272,7 +280,9 @@ u32_t radio_rx_ready_delay_get(u8_t phy)
#if defined(CONFIG_SOC_SERIES_NRF51X) #if defined(CONFIG_SOC_SERIES_NRF51X)
return 138; return 138;
#elif defined(CONFIG_SOC_SERIES_NRF52X) #elif defined(CONFIG_SOC_SERIES_NRF52X)
#if defined(CONFIG_SOC_NRF52840) #if defined(CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST)
return 40;
#elif defined(CONFIG_SOC_NRF52840)
switch (phy) { switch (phy) {
default: default:
#if defined(CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW) #if defined(CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW)

View file

@ -12,6 +12,7 @@ CONFIG_BLUETOOTH_CONTROLLER_PHY=n
CONFIG_BLUETOOTH_CONTROLLER_CHAN_SEL_2=n CONFIG_BLUETOOTH_CONTROLLER_CHAN_SEL_2=n
CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT=n CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT=n
CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW=y CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW=y
CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST=n
CONFIG_BLUETOOTH_CONTROLLER_FAST_ENC=n CONFIG_BLUETOOTH_CONTROLLER_FAST_ENC=n
CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=n CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=n
CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=n CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=n

View file

@ -15,6 +15,7 @@ CONFIG_BLUETOOTH_CONTROLLER_PHY_CODED=y
CONFIG_BLUETOOTH_CONTROLLER_CHAN_SEL_2=y CONFIG_BLUETOOTH_CONTROLLER_CHAN_SEL_2=y
CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT=y CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT=y
CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW=n CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW=n
CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST=y
CONFIG_BLUETOOTH_CONTROLLER_FAST_ENC=y CONFIG_BLUETOOTH_CONTROLLER_FAST_ENC=y
CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=y CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=y
CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=y CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=y

View file

@ -12,6 +12,7 @@ CONFIG_BLUETOOTH_CONTROLLER_PHY=n
CONFIG_BLUETOOTH_CONTROLLER_CHAN_SEL_2=n CONFIG_BLUETOOTH_CONTROLLER_CHAN_SEL_2=n
CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT=n CONFIG_BLUETOOTH_CONTROLLER_ADV_EXT=n
CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW=y CONFIG_BLUETOOTH_CONTROLLER_TIFS_HW=y
CONFIG_BLUETOOTH_CONTROLLER_RADIO_ENABLE_FAST=n
CONFIG_BLUETOOTH_CONTROLLER_FAST_ENC=n CONFIG_BLUETOOTH_CONTROLLER_FAST_ENC=n
CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=n CONFIG_BLUETOOTH_CONTROLLER_CONN_RSSI=n
CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=n CONFIG_BLUETOOTH_CONTROLLER_ADV_INDICATION=n