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
# dependencies of the ENTROPY_NRF5_RNG option).
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
# drivers for them can be used.
select HAS_HW_NRF_CLOCK

View file

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

View file

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

View file

@ -70,6 +70,8 @@ config SOC_NRF5340_CPUNET
bool
select HAS_HW_NRF_ACL
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_EGU0
select HAS_HW_NRF_GPIO0
@ -78,6 +80,7 @@ config SOC_NRF5340_CPUNET
select HAS_HW_NRF_IPC
select HAS_HW_NRF_NVMC_PE
select HAS_HW_NRF_POWER
select HAS_HW_NRF_RADIO_BLE_2M
select HAS_HW_NRF_RADIO_BLE_CODED
select HAS_HW_NRF_RADIO_IEEE802154
select HAS_HW_NRF_RNG

View file

@ -32,6 +32,12 @@ config BT_CTLR_EXT_SCAN_FP_SUPPORT
config BT_CTLR_PHY_UPDATE_SUPPORT
bool
config BT_CTLR_PHY_2M_SUPPORT
bool
config BT_CTLR_PHY_CODED_SUPPORT
bool
config BT_CTLR_ADV_EXT_SUPPORT
bool
@ -334,14 +340,14 @@ config BT_CTLR_PHY
config BT_CTLR_PHY_2M
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
help
Enable support for Bluetooth 5.0 2Mbps PHY in the Controller.
config BT_CTLR_PHY_CODED
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
help
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_EXT_REJ_IND_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
select BT_CTLR_PRIVACY_SUPPORT if !SOC_SERIES_NRF51X
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_PERIODIC_SUPPORT
select BT_CTLR_CHAN_SEL_2_SUPPORT