Bluetooth: controller: Select controller features from SoC capabilities

Select the controller feature support for data length and LE 2M PHY
based on the SoC hardware capabilities instead of relying on SoC
family.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
This commit is contained in:
Joakim Andersson 2020-09-15 16:45:38 +02:00 committed by Ioannis Glaropoulos
commit 4cc6098af8
6 changed files with 43 additions and 5 deletions

View file

@ -14,6 +14,11 @@ config BOARD_NRF52_BSIM
# of it), so that the corresponding driver becomes available (see # of it), so that the corresponding driver becomes available (see
# dependencies of the ENTROPY_NRF5_RNG option). # dependencies of the ENTROPY_NRF5_RNG option).
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
# Indicate that CCM supports 8 bit length field, to support full
# length LL PDUs.
select HAS_HW_NRF_CCM_LFLEN_8BIT
# Indicate 2M support so that Phy procedure can be enabled.
select HAS_HW_NRF_RADIO_BLE_2M
# Do the same for the CLOCK and POWER peripherals, so that the nrfx # Do the same for the CLOCK and POWER peripherals, so that the nrfx
# drivers for them can be used. # drivers for them can be used.
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK

View file

@ -21,6 +21,9 @@ config HAS_HW_NRF_CC312
config HAS_HW_NRF_CCM config HAS_HW_NRF_CCM
bool bool
config HAS_HW_NRF_CCM_LFLEN_8BIT
bool
config HAS_HW_NRF_CLOCK config HAS_HW_NRF_CLOCK
bool bool
@ -109,6 +112,9 @@ config HAS_HW_NRF_QDEC
config HAS_HW_NRF_QSPI config HAS_HW_NRF_QSPI
bool bool
config HAS_HW_NRF_RADIO_BLE_2M
bool
config HAS_HW_NRF_RADIO_BLE_CODED config HAS_HW_NRF_RADIO_BLE_CODED
bool bool

View file

@ -8,6 +8,7 @@ config SOC_NRF52805
bool bool
select HAS_HW_NRF_BPROT select HAS_HW_NRF_BPROT
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
select HAS_HW_NRF_EGU0 select HAS_HW_NRF_EGU0
@ -18,6 +19,7 @@ config SOC_NRF52805
select HAS_HW_NRF_POWER select HAS_HW_NRF_POWER
select HAS_HW_NRF_PPI select HAS_HW_NRF_PPI
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0 select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1 select HAS_HW_NRF_RTC1
@ -47,6 +49,7 @@ config SOC_NRF52810
bool bool
select HAS_HW_NRF_BPROT select HAS_HW_NRF_BPROT
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
@ -60,6 +63,7 @@ config SOC_NRF52810
select HAS_HW_NRF_PPI select HAS_HW_NRF_PPI
select HAS_HW_NRF_PWM0 select HAS_HW_NRF_PWM0
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0 select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1 select HAS_HW_NRF_RTC1
@ -89,6 +93,7 @@ config SOC_NRF52811
bool bool
select HAS_HW_NRF_BPROT select HAS_HW_NRF_BPROT
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
@ -102,6 +107,7 @@ config SOC_NRF52811
select HAS_HW_NRF_PPI select HAS_HW_NRF_PPI
select HAS_HW_NRF_PWM0 select HAS_HW_NRF_PWM0
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RADIO_BLE_CODED select HAS_HW_NRF_RADIO_BLE_CODED
select HAS_HW_NRF_RADIO_IEEE802154 select HAS_HW_NRF_RADIO_IEEE802154
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
@ -136,6 +142,7 @@ config SOC_NRF52820
bool bool
select HAS_HW_NRF_ACL select HAS_HW_NRF_ACL
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
@ -150,6 +157,7 @@ config SOC_NRF52820
select HAS_HW_NRF_POWER select HAS_HW_NRF_POWER
select HAS_HW_NRF_PPI select HAS_HW_NRF_PPI
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RADIO_BLE_CODED select HAS_HW_NRF_RADIO_BLE_CODED
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0 select HAS_HW_NRF_RTC0
@ -189,6 +197,7 @@ config SOC_NRF52832
select CPU_HAS_FPU select CPU_HAS_FPU
select HAS_HW_NRF_BPROT select HAS_HW_NRF_BPROT
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
@ -211,6 +220,7 @@ config SOC_NRF52832
select HAS_HW_NRF_PWM1 select HAS_HW_NRF_PWM1
select HAS_HW_NRF_PWM2 select HAS_HW_NRF_PWM2
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
select HAS_HW_NRF_RTC0 select HAS_HW_NRF_RTC0
select HAS_HW_NRF_RTC1 select HAS_HW_NRF_RTC1
@ -254,6 +264,7 @@ config SOC_NRF52833
select CPU_HAS_FPU select CPU_HAS_FPU
select HAS_HW_NRF_ACL select HAS_HW_NRF_ACL
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
@ -279,6 +290,7 @@ config SOC_NRF52833
select HAS_HW_NRF_PWM2 select HAS_HW_NRF_PWM2
select HAS_HW_NRF_PWM3 select HAS_HW_NRF_PWM3
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RADIO_BLE_CODED select HAS_HW_NRF_RADIO_BLE_CODED
select HAS_HW_NRF_RADIO_IEEE802154 select HAS_HW_NRF_RADIO_IEEE802154
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG
@ -328,6 +340,7 @@ config SOC_NRF52840
select HAS_HW_NRF_ACL select HAS_HW_NRF_ACL
select HAS_HW_NRF_CC310 select HAS_HW_NRF_CC310
select HAS_HW_NRF_CCM select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_COMP select HAS_HW_NRF_COMP
select HAS_HW_NRF_ECB select HAS_HW_NRF_ECB
@ -354,6 +367,7 @@ config SOC_NRF52840
select HAS_HW_NRF_PWM3 select HAS_HW_NRF_PWM3
select HAS_HW_NRF_QDEC select HAS_HW_NRF_QDEC
select HAS_HW_NRF_QSPI select HAS_HW_NRF_QSPI
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RADIO_BLE_CODED select HAS_HW_NRF_RADIO_BLE_CODED
select HAS_HW_NRF_RADIO_IEEE802154 select HAS_HW_NRF_RADIO_IEEE802154
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG

View file

@ -70,6 +70,8 @@ config SOC_NRF5340_CPUNET
bool bool
select HAS_HW_NRF_ACL select HAS_HW_NRF_ACL
select HAS_HW_NRF_CLOCK select HAS_HW_NRF_CLOCK
select HAS_HW_NRF_CCM
select HAS_HW_NRF_CCM_LFLEN_8BIT
select HAS_HW_NRF_DPPIC select HAS_HW_NRF_DPPIC
select HAS_HW_NRF_EGU0 select HAS_HW_NRF_EGU0
select HAS_HW_NRF_GPIO0 select HAS_HW_NRF_GPIO0
@ -78,6 +80,7 @@ config SOC_NRF5340_CPUNET
select HAS_HW_NRF_IPC select HAS_HW_NRF_IPC
select HAS_HW_NRF_NVMC_PE select HAS_HW_NRF_NVMC_PE
select HAS_HW_NRF_POWER select HAS_HW_NRF_POWER
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RADIO_BLE_CODED select HAS_HW_NRF_RADIO_BLE_CODED
select HAS_HW_NRF_RADIO_IEEE802154 select HAS_HW_NRF_RADIO_IEEE802154
select HAS_HW_NRF_RNG select HAS_HW_NRF_RNG

View file

@ -32,6 +32,12 @@ config BT_CTLR_EXT_SCAN_FP_SUPPORT
config BT_CTLR_PHY_UPDATE_SUPPORT config BT_CTLR_PHY_UPDATE_SUPPORT
bool bool
config BT_CTLR_PHY_2M_SUPPORT
bool
config BT_CTLR_PHY_CODED_SUPPORT
bool
config BT_CTLR_ADV_EXT_SUPPORT config BT_CTLR_ADV_EXT_SUPPORT
bool bool
@ -334,14 +340,14 @@ config BT_CTLR_PHY
config BT_CTLR_PHY_2M config BT_CTLR_PHY_2M
bool "2Mbps PHY Support" bool "2Mbps PHY Support"
depends on BT_CTLR_PHY && (!SOC_SERIES_NRF51X || BT_CTLR_PHY_2M_NRF) depends on BT_CTLR_PHY && BT_CTLR_PHY_2M_SUPPORT
default y default y
help help
Enable support for Bluetooth 5.0 2Mbps PHY in the Controller. Enable support for Bluetooth 5.0 2Mbps PHY in the Controller.
config BT_CTLR_PHY_CODED config BT_CTLR_PHY_CODED
bool "Coded PHY Support" bool "Coded PHY Support"
depends on BT_CTLR_PHY && HAS_HW_NRF_RADIO_BLE_CODED depends on BT_CTLR_PHY && BT_CTLR_PHY_CODED_SUPPORT
default y default y
help help
Enable support for Bluetooth 5.0 Coded PHY in the Controller. Enable support for Bluetooth 5.0 Coded PHY in the Controller.

View file

@ -16,12 +16,16 @@ config BT_LLL_VENDOR_NORDIC
select BT_CTLR_CONN_PARAM_REQ_SUPPORT select BT_CTLR_CONN_PARAM_REQ_SUPPORT
select BT_CTLR_EXT_REJ_IND_SUPPORT select BT_CTLR_EXT_REJ_IND_SUPPORT
select BT_CTLR_SLAVE_FEAT_REQ_SUPPORT select BT_CTLR_SLAVE_FEAT_REQ_SUPPORT
select BT_CTLR_DATA_LEN_UPDATE_SUPPORT if !SOC_SERIES_NRF51X || \ select BT_CTLR_DATA_LEN_UPDATE_SUPPORT if HAS_HW_NRF_CCM_LFLEN_8BIT || \
BT_CTLR_DATA_LENGTH_CLEAR BT_CTLR_DATA_LENGTH_CLEAR
select BT_CTLR_PRIVACY_SUPPORT if !SOC_SERIES_NRF51X select BT_CTLR_PRIVACY_SUPPORT if !SOC_SERIES_NRF51X
select BT_CTLR_EXT_SCAN_FP_SUPPORT select BT_CTLR_EXT_SCAN_FP_SUPPORT
select BT_CTLR_PHY_UPDATE_SUPPORT if !SOC_SERIES_NRF51X || \
BT_CTLR_PHY_2M_NRF select BT_CTLR_PHY_2M_SUPPORT if HAS_HW_NRF_RADIO_BLE_2M || \
BT_CTLR_PHY_2M_NRF
select BT_CTLR_PHY_CODED_SUPPORT if HAS_HW_NRF_RADIO_BLE_CODED
select BT_CTLR_PHY_UPDATE_SUPPORT if BT_CTLR_PHY_2M_SUPPORT || \
BT_CTLR_PHY_CODED_SUPPORT
select BT_CTLR_ADV_EXT_SUPPORT select BT_CTLR_ADV_EXT_SUPPORT
select BT_CTLR_ADV_PERIODIC_SUPPORT select BT_CTLR_ADV_PERIODIC_SUPPORT
select BT_CTLR_CHAN_SEL_2_SUPPORT select BT_CTLR_CHAN_SEL_2_SUPPORT