# Copyright (c) 2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

# some of the control procedures in the BT LL depend on
# the following configs been set

config SOC_COMPATIBLE_NRF
	default y

config BT_CTLR_DATA_LEN_UPDATE_SUPPORT
	default y

config BT_CTLR_PHY_UPDATE_SUPPORT
	default y

config BT_CTLR_PHY_CODED_SUPPORT
	default y

config BT_CTLR_PHY_2M_SUPPORT
	default y

config BT_CTLR_DF_SUPPORT
	default y

config BT_CTLR_DF_CTE_TX_SUPPORT
	default y

config BT_CTLR_DF_CTE_RX_SUPPORT
	default y

config BT_CTLR_DF_CTE_RX_SAMPLE_1US_SUPPORT
	default y

config BT_CTLR_DF_ANT_SWITCH_1US_SUPPORT
	default y

config BT_CTLR_DF_ANT_SWITCH_2US_SUPPORT
	default y

config ENTROPY_NRF_FORCE_ALT
	default n

config ENTROPY_NRF5_RNG
	default n

# Include Zephyr's Kconfig
source "Kconfig"
