# Copyright (c) 2019 Oticon A/S
# SPDX-License-Identifier: Apache-2.0

CONFIG_BT=y
CONFIG_BT_SMP=y
CONFIG_BT_SIGNING=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_ATT_PREPARE_COUNT=2
CONFIG_BT_PRIVACY=y
CONFIG_BT_DEVICE_NAME="Test Database"
CONFIG_BT_DEVICE_APPEARANCE=833
CONFIG_BT_GATT_DYNAMIC_DB=y

CONFIG_BT_CTLR=y

CONFIG_BT_HCI_ACL_FLOW_CONTROL=y
CONFIG_BT_BUF_ACL_RX_SIZE=516
CONFIG_BT_L2CAP_TX_MTU=512
CONFIG_BT_DEBUG_LOG=y

# NOTE: In order to get ACL_FLOW_CONTROL to work it is imperative that
# BT_CTRL_RX_BUFFERS is increased from its default value of 1.
CONFIG_BT_CTLR_RX_BUFFERS=3

# To make DEVICE Name writable...
CONFIG_BT_DEVICE_NAME_DYNAMIC=y
