# Bluetooth Classic configuration options

# Copyright (c) 2016-2020 Nordic Semiconductor ASA
# Copyright (c) 2015-2016 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

menu "Bluetooth Classic Options"

config BT_CLASSIC
	bool "Bluetooth BR/EDR support [EXPERIMENTAL]"
	depends on BT_HCI_HOST
	select BT_PERIPHERAL
	select BT_CENTRAL
	select BT_SMP
	select BT_L2CAP_DYNAMIC_CHANNEL
	select CRC
	select EXPERIMENTAL
	help
	  This option enables Bluetooth BR/EDR support

if BT_CLASSIC
config BT_LIMITED_DISCOVERABLE_DURATION
	int "Maximum duration that a device is in limited discoverable mode in seconds"
	default 60
	range 31 60
	help
	  This option sets the maximum duration that a device is in limited discoverable mode in
	  seconds.

config BT_BR_MIN_ENC_KEY_SIZE
	int
	prompt "Minimum encryption key size accepted in octets" if !BT_SMP_SC_ONLY
	default BT_SMP_MIN_ENC_KEY_SIZE
	range 7 16
	help
	  This option sets the minimum encryption key size accepted during pairing
	  for classic.

config BT_MAX_SCO_CONN
	int "Maximum number of simultaneous SCO connections"
	default 1
	range 1 3
	help
	  Maximum number of simultaneous Bluetooth synchronous connections
	  supported. The minimum (and default) number is 1.

config BT_ACCEPT_CONN_AS_CENTRAL
	bool "Accept a new incoming ACL connection request as central role"
	help
	  By default, the device will accept the ACL connection request as the peripheral role.
	  If the option is enabled, the device will accept the ACL connection request as the
	  central role. Normally, the HCI Role Change event will be generated after the HCI command
	  Accept Connection Request is succeeded.
	  The kconfig option only works when calling function bt_br_set_discoverable to enable
	  connectable mode with a NULL callback parameter.

config BT_L2CAP_RX_FLUSH_TO
	hex "Minimum Bluetooth L2CAP RX flush Timeout accepted in milliseconds"
	default 0x0001 if BT_A2DP_SINK
	default 0xFFFF
	range 0x0001 0xFFFF
	help
	  This option configures minimum Bluetooth L2CAP RX flush timeout accepted during
	  processing peer's l2cap flush timeout configuration.
	  The flush timeout applies to all channels on the same ACL logical transport but
	  may be overridden on a packet by packet basis by marking individual L2CAP packets
	  as non-automatically-flushable via the Packet_Boundary_Flag in the HCI ACL Data packet.

config BT_L2CAP_CONNLESS
	bool "Bluetooth L2CAP connectionless data reception [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth L2CAP connectionless data reception

config BT_L2CAP_RET
	bool "Bluetooth L2CAP retransmission mode [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth L2CAP retransmission mode

config BT_L2CAP_FC
	bool "Bluetooth L2CAP flow control mode [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth L2CAP flow control mode

config BT_L2CAP_ENH_RET
	bool "Bluetooth L2CAP enhance retransmission [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth L2CAP enhance retransmission

config BT_L2CAP_STREAM
	bool "Bluetooth L2CAP streaming mode [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth L2CAP streaming mode

config BT_L2CAP_RET_FC
	def_bool BT_L2CAP_RET || BT_L2CAP_FC || BT_L2CAP_ENH_RET || BT_L2CAP_STREAM

if BT_L2CAP_RET_FC
config BT_L2CAP_FCS
	bool "Bluetooth L2CAP FCS Option [EXPERIMENTAL]"
	select EXPERIMENTAL
	depends on BT_L2CAP_STREAM || BT_L2CAP_ENH_RET
	help
	  This option enables Bluetooth L2CAP FCS Option

config BT_L2CAP_EXT_WIN_SIZE
	bool "Bluetooth L2CAP Extended window size Option [EXPERIMENTAL]"
	select EXPERIMENTAL
	depends on BT_L2CAP_STREAM || BT_L2CAP_ENH_RET
	help
	  This option enables Bluetooth L2CAP Extended window size Option

config BT_L2CAP_MPS
	int "Bluetooth L2CAP MPS for retransmission and Flow control"
	default 48
	range 48 BT_L2CAP_TX_MTU
	help
	  Bluetooth L2CAP MPS for retransmission and Flow control

config BT_L2CAP_MAX_WINDOW_SIZE
	int "Maximum Windows Size of Retransmission and Flow Control"
	default 1
	range 1 32
	help
	  Maximum Windows Size of Retransmission and Flow Control.
	  The minimum (and default) number is 1.

config BT_L2CAP_BR_RET_TIMEOUT
	int "Retransmission timeout (milliseconds)"
	default 2000
	range 1000 2000
	help
	  The Retransmission timeout shall be three times the value of flush timeout,
	  subject to a minimum of 1000 milliseconds and maximum of 2000 milliseconds.

config BT_L2CAP_BR_MONITOR_TIMEOUT
	int "Monitor timeout (milliseconds)"
	default 12000 if BT_L2CAP_ENH_RET
	default BT_L2CAP_BR_RET_TIMEOUT
	range BT_L2CAP_BR_RET_TIMEOUT 12000
	help
	  If a flush timeout exists on the link for Enhanced Retransmission mode and
	  both sides of the link are configured to the same flush timeout value then the
	  monitor timeout shall be set to a value at least as large as the Retransmission
	  timeout otherwise the value of the Monitor timeout shall be six times the value
	  of flush timeout, subject to a minimum of the retransmission timeout value and
	  a maximum of 12000 milliseconds.
endif # BT_L2CAP_RET_FC

config BT_RFCOMM
	bool "Bluetooth RFCOMM protocol support [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth RFCOMM support

config BT_RFCOMM_L2CAP_MTU
	int "L2CAP MTU for RFCOMM frames"
	depends on BT_RFCOMM
	default BT_BUF_ACL_RX_SIZE
	range 23 $(INT16_MAX)
	help
	  Maximum size of L2CAP PDU for RFCOMM frames.
	  RX MTU will be truncated to account for the L2CAP PDU header.

config BT_RFCOMM_TX_MAX
	int "Maximum number of pending TX buffers for RFCOMM"
	default BT_BUF_ACL_TX_COUNT
	range BT_BUF_ACL_TX_COUNT $(UINT8_MAX)
	help
	  Maximum number of pending TX buffers that have an associated
	  sending buf. Normally this can be left to the default value, which
	  is equal to the number of session in the stack-internal pool.

config BT_HFP_HF
	bool "Bluetooth Handsfree profile HF Role support [EXPERIMENTAL]"
	depends on PRINTK
	select BT_RFCOMM
	select EXPERIMENTAL
	help
	  This option enables Bluetooth HF support

config BT_HFP_AG
	bool "Bluetooth Handsfree profile AG Role support [EXPERIMENTAL]"
	depends on PRINTK
	select BT_RFCOMM
	select EXPERIMENTAL
	help
	  This option enables Bluetooth AG support

if BT_HFP_HF
config BT_HFP_HF_CLI
	bool "CLI presentation capability for HFP HF [EXPERIMENTAL]"
	default y
	help
	  This option enables CLI presentation capability for HFP HF

config BT_HFP_HF_VOLUME
	bool "Remote audio volume control for HFP HF [EXPERIMENTAL]"
	default y
	help
	  This option enables Remote audio volume control for HFP HF

config BT_HFP_HF_CODEC_NEG
	bool "Codec Negotiation for HFP HF [EXPERIMENTAL]"
	help
	  This option enables Codec Negotiation for HFP HF

config BT_HFP_HF_ECNR
	bool "EC and/or NR function for HFP HF [EXPERIMENTAL]"
	help
	  This option enables EC and/or NR function for HFP HF

if BT_HFP_HF_CODEC_NEG
config BT_HFP_HF_CODEC_MSBC
	bool "Support Codec mSBC for HFP HF [EXPERIMENTAL]"
	help
	  This option enables Codec mSBC for HFP HF

config BT_HFP_HF_CODEC_LC3_SWB
	bool "Support Codec LC3 SWB for HFP HF [EXPERIMENTAL]"
	help
	  This option enables Codec LC3 SWB for HFP HF
endif # BT_HFP_HF_CODEC_NEG

config BT_HFP_HF_3WAY_CALL
	bool "Three-way calling for HFP HF [EXPERIMENTAL]"
	help
	  This option enables Three-way calling for HFP HF

config BT_HFP_HF_ECS
	bool "Enhanced Call Status for HFP HF [EXPERIMENTAL]"
	default y if BT_HFP_HF_3WAY_CALL
	help
	  This option enables Enhanced Call Status for HFP HF

config BT_HFP_HF_ECC
	bool "Enhanced Call Control for HFP HF [EXPERIMENTAL]"
	default y if BT_HFP_HF_3WAY_CALL
	help
	  This option enables Enhanced Call Control for HFP HF

config BT_HFP_HF_MAX_CALLS
	int "Maximum supported calls for HFP HF [EXPERIMENTAL]"
	default 2 if BT_HFP_HF_3WAY_CALL
	default 1
	range 1 2
	help
	  This option sets maximum supported calls for HFP HF

config BT_HFP_HF_VOICE_RECG
	bool "Voice recognition activation for HFP HF [EXPERIMENTAL]"
	help
	  This option enables Voice recognition activation for HFP HF

config BT_HFP_HF_ENH_VOICE_RECG
	bool "Enhanced Voice Recognition Status for HFP HF [EXPERIMENTAL]"
	select BT_HFP_HF_VOICE_RECG
	help
	  This option enables Enhanced Voice Recognition Status for HFP HF

config BT_HFP_HF_VOICE_RECG_TEXT
	bool "Voice Recognition Text for HFP HF [EXPERIMENTAL]"
	select BT_HFP_HF_ENH_VOICE_RECG
	help
	  This option enables Voice Recognition Text for HFP HF

config BT_HFP_HF_HF_INDICATORS
	bool "HF Indicators for HFP HF [EXPERIMENTAL]"
	help
	  This option enables HF Indicators for HFP HF

config BT_HFP_HF_HF_INDICATOR_ENH_SAFETY
	bool "HF Indicator Enhanced Safety for HFP HF [EXPERIMENTAL]"
	select BT_HFP_HF_HF_INDICATORS
	help
	  This option enables HF Indicator Enhanced Safety for HFP HF

config BT_HFP_HF_HF_INDICATOR_BATTERY
	bool "HF Indicator Battery level for HFP HF [EXPERIMENTAL]"
	select BT_HFP_HF_HF_INDICATORS
	help
	  This option enables HF Indicator Battery level for HFP HF

endif # BT_HFP_HF

if BT_HFP_AG
config BT_HFP_AG_EXT_ERR
	bool "Extended Error Result Codes for HFP AG [EXPERIMENTAL]"
	default y
	help
	  This option enables Extended Error Result Codes for HFP AG

config BT_HFP_AG_CODEC_NEG
	bool "Codec Negotiation for HFP AG [EXPERIMENTAL]"
	help
	  This option enables Codec Negotiation for HFP AG

if BT_HFP_AG_CODEC_NEG
config BT_HFP_AG_CODEC_MSBC
	bool "Support Codec mSBC for HFP AG [EXPERIMENTAL]"
	help
	  This option enables Codec mSBC for HFP AG

config BT_HFP_AG_CODEC_LC3_SWB
	bool "Support Codec LC3 SWB for HFP AG [EXPERIMENTAL]"
	help
	  This option enables Codec LC3 SWB for HFP AG
endif # BT_HFP_AG_CODEC_NEG

config BT_HFP_AG_ECNR
	bool "EC and/or NR function for HFP AG [EXPERIMENTAL]"
	help
	  This option enables EC and/or NR function for HFP AG

config BT_HFP_AG_3WAY_CALL
	bool "Three-way calling for HFP AG [EXPERIMENTAL]"
	help
	  This option enables Three-way calling for HFP AG

config BT_HFP_AG_MAX_CALLS
	int "Maximum supported calls for HFP AG [EXPERIMENTAL]"
	default 2 if BT_HFP_AG_3WAY_CALL
	default 1
	range 1 2
	help
	  This option sets maximum supported calls for HFP AG

config BT_HFP_AG_ECS
	bool "Enhanced call status for HFP AG [EXPERIMENTAL]"
	default y if BT_HFP_AG_3WAY_CALL
	help
	  This option enables Enhanced call status for HFP AG

config BT_HFP_AG_ECC
	bool "Enhanced call control for HFP AG [EXPERIMENTAL]"
	default y if BT_HFP_AG_3WAY_CALL
	help
	  This option enables Enhanced call control for HFP AG

config BT_HFP_AG_TX_BUF_COUNT
	int "Maximum number of TX buffers for HFP AG [EXPERIMENTAL]"
	default BT_RFCOMM_TX_MAX
	range BT_RFCOMM_TX_MAX $(UINT8_MAX)
	help
	  Maximum number of pending TX buffers that have an associated
	  sending buf. Normally this can be left to the default value, which
	  is equal to the number of session in the stack-internal pool.

config BT_HFP_AG_OUTGOING_TIMEOUT
	int "Call outgoing timeout value for HFP AG [EXPERIMENTAL]"
	default 3
	range 1 10
	help
	  The option sets the timeout of call outgoing. If the call does
	  not switch to alerting state before timeout, it will be
	  stopped by the HFP AG. The unit is seconds.

config BT_HFP_AG_INCOMING_TIMEOUT
	int "Incoming call timeout value for HFP AG [EXPERIMENTAL]"
	default 3
	range 1 10
	help
	  The option sets the timeout of incoming call. If the call does
	  not switch to ringing state before timeout, it will be
	  stopped by the HFP AG. The unit is seconds.

config BT_HFP_AG_ALERTING_TIMEOUT
	int "Call alerting/ringing timeout value for HFP AG [EXPERIMENTAL]"
	default 60
	range 10 60
	help
	  The option sets the timeout of call alerting/ringing. If the
	  call is not active before timeout, it will be stopped
	  by the HFP AG. The unit is seconds.

config BT_HFP_AG_PHONE_NUMBER_MAX_LEN
	int "Supported max length of phone number for HFP AG [EXPERIMENTAL]"
	default 32
	range 1 $(UINT8_MAX)
	help
	  Supported max length of phone number for HFP AG.

config BT_HFP_AG_RING_NOTIFY_INTERVAL
	int "Ring notification interval [EXPERIMENTAL]"
	default 3
	help
	  Ring notification interval if the call is in alert state.
	  The unit is seconds.

config BT_HFP_AG_VOICE_RECG
	bool "Voice recognition activation for HFP AG [EXPERIMENTAL]"
	help
	  This option enables Voice recognition activation for HFP AG

config BT_HFP_AG_ENH_VOICE_RECG
	bool "Enhanced Voice Recognition Status for HFP AG [EXPERIMENTAL]"
	select BT_HFP_AG_VOICE_RECG
	help
	  This option enables Enhanced Voice Recognition Status for HFP AG

config BT_HFP_AG_VOICE_RECG_TEXT
	bool "Voice Recognition Text for HFP AG [EXPERIMENTAL]"
	select BT_HFP_AG_ENH_VOICE_RECG
	help
	  This option enables Voice Recognition Text for HFP AG

config BT_HFP_AG_VOICE_TAG
	bool "Attach a phone number for a voice tag for HFP AG [EXPERIMENTAL]"
	select BT_HFP_AG_VOICE_RECG
	help
	  This option enables Attach a phone number for a voice tag for HFP AG

config BT_HFP_AG_HF_INDICATORS
	bool "HF Indicators for HFP AG [EXPERIMENTAL]"
	help
	  This option enables HF Indicators for HFP AG

config BT_HFP_AG_HF_INDICATOR_ENH_SAFETY
	bool "HF Indicator Enhanced Safety for HFP AG [EXPERIMENTAL]"
	select BT_HFP_AG_HF_INDICATORS
	help
	  This option enables HF Indicator Enhanced Safety for HFP AG

config BT_HFP_AG_HF_INDICATOR_BATTERY
	bool "HF Indicator Battery level for HFP AG [EXPERIMENTAL]"
	select BT_HFP_AG_HF_INDICATORS
	help
	  This option enables HF Indicator Battery level for HFP AG

config BT_HFP_AG_REJECT_CALL
	bool "Ability to reject a call for HFP AG [EXPERIMENTAL]"
	default y
	help
	  This option enables ability to reject a call for HFP AG

config BT_HFP_AG_GET_ONGOING_CALL_TIMEOUT
	int "Timeout after the get ongoing calls callback notified (milliseconds) [EXPERIMENTAL]"
	default 10000
	range 1000 10000
	help
	  This option sets the timeout after the get ongoing calls callback notified

config BT_HFP_AG_INBAND_RINGTONE
	bool "In-band ring tone capability"
	default y
	help
	  This option enables In-band ring tone capability

endif # BT_HFP_AG

config BT_AVDTP
	bool "Bluetooth AVDTP protocol support [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth AVDTP support

config BT_A2DP
	bool "Bluetooth A2DP Profile [EXPERIMENTAL]"
	select BT_AVDTP
	imply LIBSBC
	select EXPERIMENTAL
	help
	  This option enables the A2DP profile

if BT_AVDTP

config BT_AVDTP_RTP_VERSION
	int "Bluetooth AVDTP RTP version"
	default 2
	help
	  This option sets the AVDTP RTP protocol version

config BT_AVDTP_SIGNAL_SDU_MAX
	int "Maximum size of AVDTP signaling SDU"
	default 512
	range 48 $(UINT16_MAX)
	help
	  This option sets the maximum size of AVDTP signaling SDU.
	  The default value is 512 bytes.

endif # BT_AVDTP

if BT_A2DP

config BT_A2DP_SOURCE
	bool "Bluetooth A2DP Profile Source Function"
	help
	  This option enables the A2DP profile source function

config BT_A2DP_SINK
	bool "Bluetooth A2DP Profile Sink Function"
	help
	  This option enables the A2DP profile sink function

config BT_A2DP_CODEC_MAX_IE_LEN
	int "Maximum size of A2DP codec IE"
	default 8
	# The minimum length is 4 bytes, because the codec specific IE for the mandatory Codec SBC
	# is 4 bytes.
	# The maximum length is 253 bytes, because the length field of Length Of Service Capability
	# (LOSC) is one byte and the header of Media Codec Capabilities is 2 bytes. Thus, the
	# maximum is 255 - 2.
	range 4 253
	help
	  This option sets the maximum size of A2DP codec IE.

endif # BT_A2DP

config BT_AVCTP
	bool "Bluetooth AVCTP protocol support [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables Bluetooth AVCTP support

config BT_AVRCP
	bool "Bluetooth AVRCP Profile [EXPERIMENTAL]"
	select BT_AVCTP
	select EXPERIMENTAL
	help
	  This option enables the AVRCP profile

if BT_AVRCP

config BT_AVRCP_TARGET
	bool "Bluetooth AVRCP Profile Target Function"
	help
	  This option enables the AVRCP profile target function

config BT_AVRCP_CONTROLLER
	bool "Bluetooth AVRCP Profile Controller Function"
	help
	  This option enables the AVRCP profile controller function

config BT_AVRCP_VD_RX_SIZE
	int "AVRCP Vendor Dependent RX data buffer Size"
	default 1024
	range 512 $(INT16_MAX)
	help
	  Size of the AVRCP Vendor Dependent RX data buffer in bytes.
	  This buffer is used for reassembling fragmented AVRCP Vendor Dependent
	  commands and responses received from the CT device. If the remote CT
	  sends large Vendor-specific PDUs or frequent fragmentation occurs,
	  consider increasing this value to avoid incomplete message handling.

config BT_AVRCP_BROWSING
	bool "Bluetooth AVRCP Browsing channel support [EXPERIMENTAL]"
	select EXPERIMENTAL
	select BT_L2CAP_ENH_RET
	help
	  This option enables support for the AVRCP Browsing channel
	  over Bluetooth BR/EDR.

if BT_AVRCP_BROWSING

config BT_AVRCP_BROWSING_L2CAP_MTU
	int "L2CAP MTU for AVRCP Browsing Channel"
	default 339
	# For AVRCP Browsing Channel over L2CAP, including:
	# 335 bytes - the minimum MTU for AVRCP Browsing Channel,
	# 4 bytes - L2CAP Header,
	range 339 4096
	help
	  Maximum size of L2CAP MTU for AVCTP Browsing Channel.
	  RX MTU will be truncated to account for ACL data and type overhead, and
	  the L2CAP PDUheader.

endif # BT_AVRCP_BROWSING

config BT_AVRCP_TG_COVER_ART
	bool "Bluetooth AVRCP Target Cover Art support [EXPERIMENTAL]"
	select EXPERIMENTAL
	select BT_BIP
	depends on BT_AVRCP_TARGET
	help
	  This option enables support for Cover Art in the AVRCP Target
	  role over Bluetooth BR/EDR.

config BT_AVRCP_CT_COVER_ART
	bool
	select EXPERIMENTAL
	select BT_BIP
	depends on BT_AVRCP_CONTROLLER
	help
	  This option enables support for Cover Art in the AVRCP controller
	  role over Bluetooth BR/EDR.

config BT_AVRCP_CT_COVER_ART_GET_IMAGE_PROPERTIES
	bool "Bluetooth AVRCP Controller Cover Art Get Image Properties support [EXPERIMENTAL]"
	select EXPERIMENTAL
	select BT_BIP
	select BT_AVRCP_CT_COVER_ART
	depends on BT_AVRCP_CONTROLLER
	help
	  This option enables support for Cover Art Get Image Properties in the AVRCP Controller
	  role over Bluetooth BR/EDR.

config BT_AVRCP_CT_COVER_ART_GET_IMAGE
	bool "Bluetooth AVRCP Controller Cover Art Get Image support [EXPERIMENTAL]"
	select EXPERIMENTAL
	select BT_BIP
	select BT_AVRCP_CT_COVER_ART
	depends on BT_AVRCP_CONTROLLER
	help
	  This option enables support for Cover Art Get Image in the AVRCP Controller
	  role over Bluetooth BR/EDR.

config BT_AVRCP_CT_COVER_ART_GET_LINKED_THUMBNAIL
	bool "Bluetooth AVRCP Controller Cover Art Get Linked Thumbnail support [EXPERIMENTAL]"
	select EXPERIMENTAL
	select BT_BIP
	select BT_AVRCP_CT_COVER_ART
	depends on BT_AVRCP_CONTROLLER
	help
	  This option enables support for Cover Art Get Linked Thumbnail in the AVRCP Controller
	  role over Bluetooth BR/EDR.

endif # BT_AVRCP

config BT_DID
	bool "Bluetooth DID Profile [EXPERIMENTAL]"
	select EXPERIMENTAL
	help
	  This option enables the DID profile

if BT_DID
config BT_DEVICE_VENDOR_ID
	hex "Bluetooth Device Vendor ID"
	range 0x0000 $(UINT16_MAX)
	default 0x0000
	help
	  This option sets the device vendor id

config BT_DEVICE_PRODUCT_ID
	hex "Bluetooth Device Product ID"
	range 0x0000 $(UINT16_MAX)
	default 0x0000
	help
	  This option sets the device product id

config BT_DEVICE_VERSION
	hex "Bluetooth Device Version"
	range 0x0000 $(UINT16_MAX)
	default 0x0000
	help
	  This option sets the device version

endif # BT_DID

config BT_HID_DEVICE
	bool "Bluetooth HID Device Profile [EXPERIMENTAL]"
	select EXPERIMENTAL
	select BT_DID
	help
	  This option enables the HID Device profile.

config BT_PAGE_TIMEOUT
	hex "Bluetooth Page Timeout"
	default 0x2000
	range 0x0001 0xffff
	help
	  This option sets the page timeout value. Value is selected as
	  (N * 0.625) ms.

config BT_COD
	hex "Bluetooth Class of Device(CoD)"
	default 0
	help
	  This option sets the class of device.For the list of possible values please
	  consult the following link:
	  https://www.bluetooth.com/specifications/assigned-numbers

config BT_DEFAULT_ROLE_SWITCH_ENABLE
	bool "Default Bluetooth Role Switch Enable/Disable State"
	help
	  This option sets the controller's default link policy to
	  enable/disable the role switch.

config BT_POWER_MODE_CONTROL
	bool "Bluetooth Power Mode Control(Active/Sniff)"
	help
	  This option enables the power mode control feature. This feature
	  allows the application to control the power mode of the Bluetooth
	  controller.

config BT_GOEP
	bool "Bluetooth GOEP Profile [EXPERIMENTAL]"
	select BT_RFCOMM
	select BT_L2CAP_ENH_RET
	select EXPERIMENTAL
	help
	  This option enables the GOEP profile

if BT_GOEP
config BT_GOEP_RFCOMM_MTU
	int "RFCOMM MTU for GOEP"
	default BT_RFCOMM_L2CAP_MTU
	# For GOEP over RFCOMM, including,
	# 255 bytes - the minimum MTU of GOEP,
	# 4 bytes - L2CAP Header,
	# 6 bytes - 4 bytes for RFCOMM header with extended length, 1 byte for FCS, and 1 byte for
	# credits.
	range 265 BT_RFCOMM_L2CAP_MTU
	help
	  Maximum size of RFCOMM MTU for GOEP.
	  RX MTU will be truncated to account for ACL data and type overhead, the L2CAP PDU header,
	  and the RFCOMM header.

config BT_GOEP_L2CAP_MTU
	int "L2CAP MTU for GOEP"
	default BT_BUF_ACL_RX_SIZE
	# For GOEP over L2CAP, including,
	# 255 bytes - the minimum MTU of GOEP,
	# 4 bytes - L2CAP Header,
	# 6 bytes - Field length of L2CAP I-frame, including,
	#   4 bytes - extended control field,
	#   2 bytes - FCS field.
	range 265 BT_BUF_ACL_RX_SIZE
	help
	  Maximum size of L2CAP MTU for GOEP.
	  RX MTU will be truncated to account for ACL data and type overhead, and the L2CAP PDU
	  header.

config BT_OEBX_RSP_CODE_TO_STR
	bool "Print OBEX response code as strings"
	help
	  This configuration enables printing of OBEX response
	  codes represented as strings.
	  See bt_obex_rsp_code_to_str() for more details.

endif # BT_GOEP

config BT_BIP
	bool "Bluetooth BIP Profile [EXPERIMENTAL]"
	select BT_GOEP
	select EXPERIMENTAL
	help
	  This option enables the BIP profile

config BT_PBAP
	bool
	select BT_GOEP
	select PSA_WANT_ALG_MD5
	select MBEDTLS
	help
	  This option enables the PBAP profile

config BT_PBAP_PSE
	bool "Bluetooth PBAP Profile Server [EXPERIMENTAL]"
	select BT_PBAP
	help
	  This option enables the PSE

config BT_PBAP_PCE
	bool "Bluetooth PBAP Profile Client [EXPERIMENTAL]"
	select BT_PBAP
	help
	  This option enables the PCE

if BT_PBAP_PSE

config BT_PBAP_PSE_DOWNLOAD
	bool "PBAP PSE Download feature"
	default y
	help
	  Enable support for phone book download feature on PSE.

config BT_PBAP_PSE_BROWSING
	bool "PBAP PSE Browsing feature"
	default y
	help
	  Enable support for phone book browsing feature on PSE.

config BT_PBAP_PSE_DATABASE_IDENTIFIER
	bool "PBAP PSE Database Identifier feature"
	default y
	help
	  Enable support for database change tracking feature on PSE.

config BT_PBAP_PSE_FOLDER_VERSION_COUNTERS
	bool "PBAP PSE Folder Version Counters feature"
	default y
	help
	  Enable support for folder version tracking feature on PSE.

config BT_PBAP_PSE_VCARD_SELECTOR
	bool "PBAP PSE vCard Selector feature"
	default y
	help
	  Enable support for vCard property filtering feature on PSE.

config BT_PBAP_PSE_ENHANCED_MISSED_CALLS
	bool "PBAP PSE Enhanced Missed Calls feature"
	default y
	help
	  Enable support for enhanced missed call handling feature on PSE.

config BT_PBAP_PSE_UCI_VCARD_PROPERTY
	bool "PBAP PSE UCI vCard Property feature"
	default y
	help
	  Enable support for Unique Contact Identifier feature on PSE.

config BT_PBAP_PSE_UID_VCARD_PROPERTY
	bool "PBAP PSE UID vCard Property feature"
	default y
	help
	  Enable support for vCard UID property feature on PSE.

config BT_PBAP_PSE_CONTACT_REFERENCING
	bool "PBAP PSE Contact Referencing feature"
	default y
	help
	  Enable support for contact reference handling feature on PSE.

config BT_PBAP_PSE_DEFAULT_CONTACT_IMAGE
	bool "PBAP PSE Default Contact Image feature"
	default y
	help
	  Enable support for default contact images feature on PSE.

config BT_PBAP_PSE_REPOSITORY_LOCAL_PHONE_BOOK
	bool "PBAP PSE Local phonebook Repository"
	default y
	help
	  Enable support for local phone book repository on PSE.
	  This includes contacts stored in device local memory.

config BT_PBAP_PSE_REPOSITORY_SIM
	bool "PBAP PSE SIM Repository"
	default y
	help
	  Enable support for SIM card phone book repository on PSE.
	  This includes contacts stored on the SIM card.

config BT_PBAP_PSE_REPOSITORY_SPEED_DIAL
	bool "PBAP PSE Speed Dial Repository"
	default y
	help
	  Enable support for speed dial repository on PSE.
	  This includes speed dial entries.

config BT_PBAP_PSE_REPOSITORY_FAVORITES
	bool "PBAP PSE Favorites Repository"
	default y
	help
	  Enable support for favorites repository on PSE.
	  This includes favorite contacts.

endif # BT_PBAP_PSE

config BT_MAP
	bool
	select BT_GOEP
	select EXPERIMENTAL
	help
	  This option enables the MAP profile

config BT_MAP_MCE
	bool "Bluetooth MAP Profile Messaging Client Equipment Function"
	select BT_MAP
	help
	  This option enables the MAP profile messaging client equipment function

config BT_MAP_MSE
	bool "Bluetooth MAP Profile Messaging Server Equipment Function"
	select BT_MAP
	help
	  This option enables the MAP profile messaging server equipment function

endif # BT_CLASSIC

endmenu
