# Bluetooth logging configuration options

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

config BT_LOG
	# convenience symbol, _no touchy_
	bool
	default y if LOG && BT
	select BT_LOG_LEGACY

if BT_LOG

menu "Bluetooth logging"

config BT_LOG_LEGACY
	bool

if BT_LOG_LEGACY

menu "Bluetooth legacy logging options"

# COMMON

config BT_DEBUG_HCI_DRIVER
	bool "[DEPRECATED] Bluetooth HCI driver debug"
	select DEPRECATED
	help
	  This option enables debug support for the active
	  Bluetooth HCI driver, including the Controller-side HCI layer
	  when included in the build.

config BT_DEBUG_RPA
	bool "[DEPRECATED] Bluetooth Resolvable Private Address (RPA) debug"
	select DEPRECATED
	depends on BT_RPA
	help
	  This option enables debug support for the Bluetooth
	  Resolvable Private Address (RPA) generation and resolution.

menu "[DEPRECATED] Audio"

# AICS

config BT_DEBUG_AICS
	bool "[DEPRECATED] Audio Input Control Service debug"
	select DEPRECATED
	help
	  Use this option to enable Audio Input Control Service debug logs for
	  the Bluetooth Audio functionality.

config BT_DEBUG_AICS_CLIENT
	bool "[DEPRECATED] Audio Input Control Service client debug"
	select DEPRECATED
	help
	  Use this option to enable Audio Input Control Service client debug
	  logs for the Bluetooth Audio functionality.

# BAP

config BT_BAP_DEBUG_STREAM
	bool "[DEPRECATED] Basic Audio Profile Stream debug"
	select DEPRECATED
	depends on BT_BAP_STREAM
	help
	  Use this option to enable Basic Audio Profile Stream debug logs.

config BT_DEBUG_ASCS
	bool "[DEPRECATED] Audio Stream Control Service debug"
	select DEPRECATED
	depends on BT_ASCS
	help
	  Use this option to enable Audio Stream Control Service debug logs for
	  the Bluetooth Audio functionality.

config BT_DEBUG_BAP_UNICAST_SERVER
	bool "[DEPRECATED] Bluetooth Audio Unicast Server debug"
	select DEPRECATED
	depends on BT_BAP_UNICAST_SERVER
	help
	  Use this option to enable Bluetooth Audio Unicast Server debug logs
	  for the Bluetooth Audio functionality.

config BT_DEBUG_BAP_UNICAST_CLIENT
	bool "[DEPRECATED] Basic Audio Profile client debug"
	select DEPRECATED
	depends on BT_BAP_UNICAST_CLIENT
	help
	  Use this option to enable Basic Audio Profile debug logs for the
	  Bluetooth Audio functionality.

config BT_DEBUG_BAP_BROADCAST_SOURCE
	bool "[DEPRECATED] Bluetooth Audio Broadcast Source debug"
	select DEPRECATED
	depends on BT_BAP_BROADCAST_SOURCE
	help
	  Use this option to enable Bluetooth Audio Broadcast Source debug logs
	  for the Bluetooth Audio functionality.

config BT_DEBUG_BAP_BROADCAST_SINK
	bool "[DEPRECATED] Bluetooth Audio Broadcast Sink debug"
	select DEPRECATED
	depends on BT_BAP_BROADCAST_SINK
	help
	  Use this option to enable Bluetooth Audio Broadcast Sink debug logs
	  for the Bluetooth Audio functionality.

config BT_DEBUG_BAP_SCAN_DELEGATOR
	bool "[DEPRECATED] Broadcast Audio Scan Service debug"
	select DEPRECATED
	depends on BT_BAP_SCAN_DELEGATOR
	help
	  Use this option to enable Broadcast Audio Scan Service debug logs for
	  the Bluetooth Audio functionality.

config BT_DEBUG_BAP_BROADCAST_ASSISTANT
	bool "[DEPRECATED] Broadcast Audio Scan Service client debug"
	select DEPRECATED
	depends on BT_BAP_BROADCAST_ASSISTANT
	help
	  Use this option to enable Broadcast Audio Scan Service client
	  debug logs for the Bluetooth Audio functionality.

# CAP

config BT_DEBUG_CAP_ACCEPTOR
	bool "[DEPRECATED] Common Audio Profile debug"
	select DEPRECATED
	depends on BT_CAP_ACCEPTOR
	help
	  Use this option to enable CAP debug logs for the
	  Bluetooth Audio functionality.

config BT_DEBUG_CAP_INITIATOR
	bool "[DEPRECATED] Common Audio Profile Initiator debug"
	select DEPRECATED
	depends on BT_CAP_INITIATOR
	help
	  Use this option to enable CAP Initiator debug logs for the
	  Bluetooth Audio functionality.

# CISP

config BT_DEBUG_CSIP_SET_MEMBER
	bool "[DEPRECATED] Coordinated Set Identification Service debug"
	select DEPRECATED
	help
	  Use this option to enable Coordinated Set Identification Service debug
	  logs for the Bluetooth Audio functionality.

config BT_DEBUG_CSIP_SET_COORDINATOR
	bool "[DEPRECATED] Coordinated Set Identification Profile Set Coordinator debug"
	select DEPRECATED
	help
	  Use this option to enable Coordinated Set Identification Profile
	  Set Coordinator debug logs for the Bluetooth Audio functionality.

config BT_DEBUG_CSIP_SET_MEMBER_CRYPTO
	bool "[DEPRECATED] Coordinated Set Identification Profile crypto functions debug"
	select DEPRECATED
	depends on BT_CSIP_SET_COORDINATOR || BT_CSIP_SET_MEMBER
	help
	  Use this option to enable Coordinated Set Identification Profile
	  crypto functions debug logs for the Bluetooth Audio functionality.

# HAS

config BT_DEBUG_HAS
	bool "[DEPRECATED] Hearing Access Service debug"
	select DEPRECATED
	help
	  This option enables enables Hearing Access Service debug logs.

config BT_DEBUG_HAS_CLIENT
	bool "[DEPRECATED] Hearing Access Service Client debug"
	select DEPRECATED
	depends on BT_HAS_CLIENT
	help
	  This option enables enables Hearing Access Service Client debug logs.

# MCS

config BT_DEBUG_MCS
	bool "[DEPRECATED] Media Control Service debug"
	select DEPRECATED
	help
	  Use this option to enable Media Control Service debug logs for the
	  Bluetooth Audio functionality.

config BT_DEBUG_MCC
	bool "[DEPRECATED] Media Control Client debug"
	select DEPRECATED
	help
	  Use this option to enable Media Control Client debug logs for the
	  Bluetooth Audio functionality.

# MCTL

config MCTL_DEBUG
	bool "[DEPRECATED] Media control debug"
	select DEPRECATED
	help
	  Use this option to enable Media control debug logs

# MICP

config BT_DEBUG_MICP_MIC_DEV
	bool "[DEPRECATED] Microphone Control Profile Microphone Device debug"
	select DEPRECATED
	help
	  Use this option to enable Microphone Control Profile
	  Microphone Device debug logs for the Bluetooth Audio functionality.

config BT_DEBUG_MICP_MIC_CTLR
	bool "[DEPRECATED] Microphone Control Profile Microphone Controller debug"
	select DEPRECATED
	help
	  Use this option to enable Microphone Control Profile Microphone
	  Controller debug logs for the Bluetooth Audio functionality.

# MPL

config BT_DEBUG_MPL
	bool "[DEPRECATED] Media player debug"
	select DEPRECATED
	help
	  Enables debug logs for the media player

# PACS

config BT_DEBUG_PACS
	bool "[DEPRECATED] Published Audio Capabilities Service debug"
	select DEPRECATED
	depends on BT_PACS
	help
	  Use this option to enable Published Audio Capabilities Service debug
	  logs for the Bluetooth Audio functionality.

# TBS

config BT_DEBUG_TBS
	bool "[DEPRECATED] Telephone Bearer Service debug"
	select DEPRECATED
	help
	  Use this option to enable Telephone Bearer Service debug logs for the
	  Bluetooth Audio functionality.

config BT_DEBUG_TBS_CLIENT
	bool "[DEPRECATED] Telephone Bearer Service client debug"
	select DEPRECATED
	help
	  Use this option to enable Telephone Bearer Service client debug logs
	  for the Bluetooth Audio functionality.

# VCP

config BT_DEBUG_VCP_VOL_REND
	bool "[DEPRECATED] Volume Control Profile Volume Renderer debug"
	select DEPRECATED
	help
	  Use this option to enable Volume Control Profile debug logs for the
	  Bluetooth Audio functionality.

config BT_DEBUG_VCP_VOL_CTLR
	bool "[DEPRECATED] Volume Control Profile Volume Controller debug"
	select DEPRECATED
	help
	  Use this option to enable Volume Control Profile Volume Controller
	  debug logs for the Bluetooth Audio functionality.

# VOCS

config BT_DEBUG_VOCS
	bool "[DEPRECATED] Volume Offset Control Service debug"
	select DEPRECATED
	help
	  Use this option to enable Volume Offset Control Service debug logs for
	  the Bluetooth Audio functionality.

config BT_DEBUG_VOCS_CLIENT
	bool "[DEPRECATED] Volume Offset Control Service client debug"
	select DEPRECATED
	help
	  Use this option to enable Volume Offset Control Service client debug
	  logs for the Bluetooth Audio functionality.

endmenu # [DEPRECATED] Audio

menu "[DEPRECATED] Others"

# CRYPTO (subsys/bluetooth/crypto/Kconfig)

config BT_DEBUG_CRYPTO
	bool "[DEPRECATED] Bluetooth Cryptographic Toolbox debug"
	select DEPRECATED
	depends on BT_CRYPTO
	help
	  This option enables debug log output for the Bluetooth
	  Cryptographic Toolbox.

	  WARNING: This option prints out private security keys such as
	  the Long Term Key.
	  Use of this feature in production is strongly discouraged.

# GATT

config BT_DEBUG_ATT
	bool "[DEPRECATED] Bluetooth Attribute Protocol (ATT) debug"
	select DEPRECATED
	help
	  This option enables debug support for the Bluetooth
	  Attribute Protocol (ATT).

config BT_DEBUG_GATT
	bool "[DEPRECATED] Bluetooth Generic Attribute Profile (GATT) debug"
	select DEPRECATED
	help
	  This option enables debug support for the Bluetooth
	  Generic Attribute Profile (GATT).

# L2CAP

config BT_DEBUG_L2CAP
	bool "[DEPRECATED] Bluetooth L2CAP debug"
	select DEPRECATED
	help
	  This option enables debug support for the Bluetooth
	  L2ACP layer.

# HOST (subsys/bluetooth/host/Kconfig)

config BT_DEBUG_DF
	bool "[DEPRECATED] Bluetooth Direction Finding debug"
	select DEPRECATED
	help
	  This option enables debug support for Bluetooth Direction Finding

config BT_DEBUG_SETTINGS
	bool "[DEPRECATED] Bluetooth storage debug"
	select DEPRECATED
	depends on BT_SETTINGS
	help
	  This option enables debug support for Bluetooth storage.

config BT_DEBUG_HCI_CORE
	bool "[DEPRECATED] Bluetooth HCI core debug"
	select DEPRECATED
	help
	  This option enables debug support for Bluetooth HCI
	  core.

config BT_DEBUG_CONN
	bool "[DEPRECATED] Bluetooth connection debug"
	select DEPRECATED
	depends on BT_CONN || BT_ISO
	help
	  This option enables debug support for Bluetooth
	  connection handling.

config BT_DEBUG_ISO
	bool "[DEPRECATED] ISO channel debug"
	select DEPRECATED
	help
	  Use this option to enable ISO channels debug logs for the
	  Bluetooth Audio functionality.

config BT_DEBUG_KEYS
	bool "[DEPRECATED] Bluetooth security keys debug"
	select DEPRECATED
	depends on BT_HCI_HOST
	depends on BT_SMP
	help
	  This option enables debug support for the handling of
	  Bluetooth security keys.

	  WARNING: This option prints out private security keys such as
	  the Long Term Key.
	  Use of this feature in production is strongly discouraged.

config BT_DEBUG_SMP
	bool "[DEPRECATED] Bluetooth Security Manager Protocol (SMP) debug"
	select DEPRECATED
	depends on BT_HCI_HOST
	depends on BT_SMP
	help
	  This option enables debug support for the Bluetooth
	  Security Manager Protocol (SMP).

	  WARNING: This option prints out private security keys such as
	  the Long Term Key.
	  Use of this feature in production is strongly discouraged.

config BT_DEBUG_SERVICE
	bool "[DEPRECATED] Bluetooth Services debug"
	select DEPRECATED
	depends on BT_CONN
	help
	  This option enables debug support for the Bluetooth
	  Services.

# CONTROLLER (subsys/bluetooth/controller/Kconfig)

config BT_CTLR_DEBUG_ISOAL
	bool "[DEPRECATED] Bluetooth ISO-AL debug"
	select DEPRECATED
	depends on BT_CTLR_ISO
	help
	  This option enables debug support for the Bluetooth ISO-AL.


endmenu # [DEPRECATED] Others

menu "[DEPRECATED] BR/EDR"

config BT_DEBUG_RFCOMM
	bool "[DEPRECATED] Bluetooth RFCOMM debug"
	select DEPRECATED
	depends on BT_RFCOMM
	help
	  This option enables debug support for the Bluetooth
	  RFCOMM layer.

config BT_DEBUG_HFP_HF
	bool "[DEPRECATED] Bluetooth Hands Free Profile (HFP) debug"
	select DEPRECATED
	depends on BT_HFP_HF
	help
	  This option enables debug support for the Bluetooth
	  Hands Free Profile (HFP).

config BT_DEBUG_AVDTP
	bool "[DEPRECATED] Bluetooth AVDTP debug"
	select DEPRECATED
	depends on BT_AVDTP
	help
	  This option enables debug support for the Bluetooth AVDTP.

config BT_DEBUG_A2DP
	bool "[DEPRECATED] Bluetooth A2DP debug"
	select DEPRECATED
	depends on BT_A2DP
	help
	  This option enables debug support for the Bluetooth
	  A2DP profile.

config BT_DEBUG_SDP
	bool "[DEPRECATED] Bluetooth Service Discovery Protocol (SDP) debug"
	select DEPRECATED
	depends on BT_CLASSIC
	help
	  This option enables debug support for the Bluetooth
	  Service Discovery Protocol (SDP).

endmenu # [DEPRECATED] BR/EDR

# MESH (subsys/bluetooth/mesh/Kconfig)

menu "[DEPRECATED] Mesh"

config BT_MESH_DEBUG
	bool "[DEPRECATED] Debug logs"
	select DEPRECATED
	help
	  Use this option to enable debug logs for the Bluetooth
	  Mesh functionality.

config BT_MESH_DEBUG_NET
	bool "[DEPRECATED] Network layer debug"
	select DEPRECATED
	help
	  Use this option to enable Network layer debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_RPL
	bool "[DEPRECATED] Replay protection list debug"
	select DEPRECATED
	help
	  Use this option to enable Replay protection list debug logs
	  for the Bluetooth Mesh functionality.

config BT_MESH_DEBUG_TRANS
	bool "[DEPRECATED] Transport layer debug"
	select DEPRECATED
	help
	  Use this option to enable Transport layer debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_BEACON
	bool "[DEPRECATED] Beacon debug"
	select DEPRECATED
	help
	  Use this option to enable Beacon-related debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_CRYPTO
	bool "[DEPRECATED] Crypto debug"
	select DEPRECATED
	help
	  Use this option to enable cryptographic debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_KEYS
	bool "[DEPRECATED] Key management debug"
	select DEPRECATED
	help
	  Use this option to enable key management debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_PROV
	bool "[DEPRECATED] Provisioning debug"
	select DEPRECATED
	help
	  Use this option to enable Provisioning debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_PROVISIONER
	bool "[DEPRECATED] Provisioner debug"
	select DEPRECATED
	help
	  Use this option to enable Provisioner debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_PROV_DEVICE
	bool "[DEPRECATED] Provisioning device debug"
	select DEPRECATED
	help
	  Use this option to enable Provisioning device debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_ACCESS
	bool "[DEPRECATED] Access layer debug"
	select DEPRECATED
	help
	  Use this option to enable Access layer and device composition
	  related debug logs for Bluetooth Mesh.

config BT_MESH_DEBUG_MODEL
	bool "[DEPRECATED] Foundation model debug"
	select DEPRECATED
	help
	  Use this option to enable debug logs for the Foundation
	  Models.

config BT_MESH_DEBUG_ADV
	bool "[DEPRECATED] Advertising debug"
	select DEPRECATED
	help
	  Use this option to enable advertising debug logs for
	  the Bluetooth Mesh functionality.

config BT_MESH_DEBUG_LOW_POWER
	bool "[DEPRECATED] Low Power debug"
	select DEPRECATED
	help
	  Use this option to enable Low Power debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_FRIEND
	bool "[DEPRECATED] Friend debug"
	select DEPRECATED
	help
	  Use this option to enable Friend debug logs for the
	  Bluetooth Mesh functionality.

config BT_MESH_DEBUG_PROXY
	bool "[DEPRECATED] Proxy debug"
	select DEPRECATED
	depends on BT_MESH_GATT
	help
	  Use this option to enable Proxy protocol debug logs.

config BT_MESH_DEBUG_SETTINGS
	bool "[DEPRECATED] Persistent settings debug"
	select DEPRECATED
	depends on BT_SETTINGS
	help
	  Use this option to enable persistent settings debug logs.

config BT_MESH_DEBUG_CDB
	bool "[DEPRECATED] Configuration database debug"
	select DEPRECATED
	depends on BT_MESH_CDB
	help
	  Use this option to enable configuration database debug logs.

config BT_MESH_DEBUG_CFG
	bool "[DEPRECATED] Configuration debug"
	select DEPRECATED
	help
	  Use this option to enable node configuration debug logs for the
	  Bluetooth Mesh functionality.

endmenu # [DEPRECATED] Mesh

menu "[DEPRECATED] Services"

# IAS

config BT_DEBUG_IAS_CLIENT
	bool "[DEPRECATED] Immediate Alert Service Client debug"
	select DEPRECATED
	depends on BT_IAS_CLIENT
	help
	  This option enables enables Immediate Alert Service Client debug logs.

# OTS

# TODO: Unify logging for OTS server and client - the client uses
# "BT" debugging, the server does not.

config BT_DEBUG_OTS_CLIENT
	bool "[DEPRECATED] Object Transfer Service Client debug"
	select DEPRECATED
	help
	  Use this option to enable Object Transfer Client debug logs

endmenu # [DEPRECATED] Services

endmenu # Bluetooth legacy logging options

endif # BT_LOG_LEGACY

# (subsys/bluetooth/Kconfig)

module = BT
module-str = "Bluetooth"
source "subsys/logging/Kconfig.template.log_config"

# COMMON (subsys/bluetooth/common/Kconfig)

module = BT_HCI_DRIVER
legacy-debug-sym = BT_DEBUG_HCI_DRIVER
module-str = "Bluetooth HCI driver"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_RPA
legacy-debug-sym = BT_DEBUG_RPA
module-str = "Bluetooth Resolvable Private Address (RPA)"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

menu "Audio"

# AICS

module = BT_AICS
legacy-debug-sym = BT_DEBUG_AICS
module-str = "Audio Input Control Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_AICS_CLIENT
legacy-debug-sym = BT_DEBUG_AICS_CLIENT
module-str = "Audio Input Control Service client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# BAP

module = BT_BAP_STREAM
legacy-debug-sym = BT_BAP_DEBUG_STREAM
module-str = "Bluetooth Audio Stream"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

parent-module = BT
module = BT_BAP_BASE
module-str = "Bluetooth Basic Audio Profile Broadcast Audio Source Endpoint"
source "subsys/logging/Kconfig.template.log_config_inherit"

parent-module = BT
module = BT_AUDIO_CODEC
module-str = "Bluetooth Audio Codec"
source "subsys/logging/Kconfig.template.log_config_inherit"

module = BT_ASCS
legacy-debug-sym = BT_DEBUG_ASCS
module-str = "Audio Stream Control Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_BAP_UNICAST_SERVER
legacy-debug-sym = BT_DEBUG_BAP_UNICAST_SERVER
module-str = "Bluetooth Audio Unicast Server"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_BAP_UNICAST_CLIENT
legacy-debug-sym = BT_DEBUG_BAP_UNICAST_CLIENT
module-str = "Basic Audio Profile"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_BAP_BROADCAST_SOURCE
legacy-debug-sym = BT_DEBUG_BAP_BROADCAST_SOURCE
module-str = "Bluetooth Audio Broadcast Source"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_BAP_BROADCAST_SINK
legacy-debug-sym = BT_DEBUG_BAP_BROADCAST_SINK
module-str = "Bluetooth Audio Broadcast Sink"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_BAP_SCAN_DELEGATOR
legacy-debug-sym = BT_DEBUG_BAP_SCAN_DELEGATOR
module-str = "Broadcast Audio Scan Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_BAP_BROADCAST_ASSISTANT
legacy-debug-sym = BT_DEBUG_BAP_BROADCAST_ASSISTANT
module-str = "Broadcast Audio Scan Service client debug"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

parent-module = BT
module = BT_BAP_ISO
module-str = "Bluetooth Audio ISO"
source "subsys/logging/Kconfig.template.log_config_inherit"

# CAP

module = BT_CAP_ACCEPTOR
legacy-debug-sym = BT_DEBUG_CAP_ACCEPTOR
module-str = "Common Audio Profile Acceptor"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_CAP_INITIATOR
legacy-debug-sym = BT_DEBUG_CAP_INITIATOR
module-str = "Common Audio Profile Initiator"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

parent-module = BT
module = BT_CAP_COMMANDER
module-str = "Common Audio Profile Commander"
source "subsys/logging/Kconfig.template.log_config_inherit"

parent-module = BT
module = BT_CAP_COMMON
module-str = "Common Audio Profile Common"
source "subsys/logging/Kconfig.template.log_config_inherit"

parent-module = BT
module = BT_CAP_STREAM
module-str = "Common Audio Profile Stream"
source "subsys/logging/Kconfig.template.log_config_inherit"

# CSIP

module = BT_CSIP_SET_MEMBER
legacy-debug-sym = BT_DEBUG_CSIP_SET_MEMBER
module-str = "Coordinated Set Identification Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_CSIP_SET_COORDINATOR
legacy-debug-sym = BT_DEBUG_CSIP_SET_COORDINATOR
module-str = "Coordinated Set Identification Profile Set Coordinator"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_CSIP_SET_MEMBER_CRYPTO
legacy-debug-sym = BT_DEBUG_CSIP_SET_MEMBER_CRYPTO
module-str = "Coordinated Set Identification Profile crypto functions"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# HAS

module = BT_HAS
legacy-debug-sym = BT_DEBUG_HAS
module-str = "Hearing Access Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_HAS_CLIENT
legacy-debug-sym = BT_DEBUG_HAS_CLIENT
module-str = "Hearing Access Service Client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# MCS

module = BT_MCS
legacy-debug-sym = BT_DEBUG_MCS
module-str = "Media Control Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MCC
legacy-debug-sym = BT_DEBUG_MCC
module-str = "Media Control Client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# MCTL

module = MCTL
legacy-debug-sym = MCTL_DEBUG
module-str = "Media control"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# MICP

module = BT_MICP_MIC_DEV
legacy-debug-sym = BT_DEBUG_MICP_MIC_DEV
module-str = "Microphone Control Profile Microphone Device"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MICP_MIC_CTLR
legacy-debug-sym = BT_DEBUG_MICP_MIC_CTLR
module-str = "Microphone Control Profile Microphone Controller"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# MPL

module = BT_MPL
legacy-debug-sym = BT_DEBUG_MPL
module-str = "Media player"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# PACS

module = BT_PACS
legacy-debug-sym = BT_DEBUG_PACS
module-str = "Published Audio Capabilities Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# TBS

module = BT_TBS
legacy-debug-sym = BT_DEBUG_TBS
module-str = "Telephone Bearer Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_TBS_CLIENT
legacy-debug-sym = BT_DEBUG_TBS_CLIENT
module-str = "Telephone Bearer Service client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# VCP

module = BT_VCP_VOL_REND
legacy-debug-sym = BT_DEBUG_VCP_VOL_REND
module-str = "Volume Control Profile Voluem Renderer"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_VCP_VOL_CTLR
legacy-debug-sym = BT_DEBUG_VCP_VOL_CTLR
module-str = "Volume Control Profile Volume Controller"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# VOCS

module = BT_VOCS
legacy-debug-sym = BT_DEBUG_VOCS
module-str = "Volume Offset Control Service"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_VOCS_CLIENT
legacy-debug-sym = BT_DEBUG_VOCS_CLIENT
module-str = "Volume Offset Control Service client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# PBP

module = BT_PBP
module-str = "Public Broadcast Profile"
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"

endmenu # Audio

menu "Others"

# CRYPTO (subsys/bluetooth/crypto/Kconfig)

module = BT_CRYPTO
legacy-debug-sym = BT_DEBUG_CRYPTO
module-str = "Bluetooth Cryptographic Toolbox"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# GATT

module = BT_ATT
legacy-debug-sym = BT_DEBUG_ATT
module-str = "Bluetooth Attribute Protocol (ATT)"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_GATT
legacy-debug-sym = BT_DEBUG_GATT
module-str = "Bluetooth Generic Attribute Profile (GATT)"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# L2CAP

module = BT_L2CAP
legacy-debug-sym = BT_DEBUG_L2CAP
module-str = "Bluetooth L2CAP"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# LIB (subsys/bluetooth/lib/Kconfig)

parent-module = BT
module = BT_EAD
module-str = "Bluetooth Encrypted Advertising Data"
source "subsys/logging/Kconfig.template.log_config_inherit"

# HOST (subsys/bluetooth/host/Kconfig)

module = BT_DF
legacy-debug-sym = BT_DEBUG_DF
module-str = "Bluetooth Direction Finding"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_SETTINGS
legacy-debug-sym = BT_DEBUG_SETTINGS
module-str = "Bluetooth storage"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_HCI_CORE
legacy-debug-sym = BT_DEBUG_HCI_CORE
module-str = "Bluetooth HCI core"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_CONN
legacy-debug-sym = BT_DEBUG_CONN
module-str = "Bluetooth connection"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_ISO
legacy-debug-sym = BT_DEBUG_ISO
module-str = "ISO channel"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_KEYS
legacy-debug-sym = BT_DEBUG_KEYS
module-str = "Bluetooth security keys"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_SMP
legacy-debug-sym = BT_DEBUG_SMP
module-str = "Bluetooth Security Manager Protocol"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_SERVICE
legacy-debug-sym = BT_DEBUG_SERVICE
module-str = "Bluetooth Services"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

# CONTROLLER (subsys/bluetooth/controller/Kconfig)

module = BT_CTLR_ISOAL
legacy-debug-sym = BT_CTLR_DEBUG_ISOAL
module-str = "Bluetooth Controller ISO-AL"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

endmenu # Others

menu "BR/EDR"

module = BT_RFCOMM
legacy-debug-sym = BT_DEBUG_RFCOMM
module-str = "Bluetooth RFCOMM"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_HFP_HF
legacy-debug-sym = BT_DEBUG_HFP_HF
module-str = "Bluetooth Hands Free Profile (HFP)"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_AVDTP
legacy-debug-sym = BT_DEBUG_AVDTP
module-str = "Bluetooth AVDTP debug"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_A2DP
legacy-debug-sym = BT_DEBUG_A2DP
module-str = "Bluetooth A2DP"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_SDP
legacy-debug-sym = BT_DEBUG_SDP
module-str = "Bluetooth Service Discovery Protocol (SDP)"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

endmenu # BR/EDR

# MESH (subsys/bluetooth/mesh/Kconfig)

menu "Mesh"

module = BT_MESH
legacy-debug-sym = BT_MESH_DEBUG
module-str = "Debug logs"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_NET
legacy-debug-sym = BT_MESH_DEBUG_NET
module-str = "Network layer"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_RPL
legacy-debug-sym = BT_MESH_DEBUG_RPL
module-str = "Replay protection list"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_TRANS
legacy-debug-sym = BT_MESH_DEBUG_TRANS
module-str = "Transport layer"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_BEACON
legacy-debug-sym = BT_MESH_DEBUG_BEACON
module-str = "Beacon"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_CRYPTO
legacy-debug-sym = BT_MESH_DEBUG_CRYPTO
module-str = "Crypto"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_KEYS
legacy-debug-sym = BT_MESH_DEBUG_KEYS
module-str = "Key management"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_PROV
legacy-debug-sym = BT_MESH_DEBUG_PROV
module-str = "Provisioning"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_PROVISIONER
legacy-debug-sym = BT_MESH_DEBUG_PROVISIONER
module-str = "Provisioner"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_PROVISIONEE
legacy-debug-sym = BT_MESH_DEBUG_PROV_DEVICE
module-str = "Provisioning device"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_ACCESS
legacy-debug-sym = BT_MESH_DEBUG_ACCESS
module-str = "Access layer"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_MODEL
legacy-debug-sym = BT_MESH_DEBUG_MODEL
module-str = "Foundation model"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_DFU
module-str = "DFU model"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_ADV
legacy-debug-sym = BT_MESH_DEBUG_ADV
module-str = "Advertising"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_LOW_POWER
legacy-debug-sym = BT_MESH_DEBUG_LOW_POWER
module-str = "Low Power"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_FRIEND
legacy-debug-sym = BT_MESH_DEBUG_FRIEND
module-str = "Friend"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_PROXY
legacy-debug-sym = BT_MESH_DEBUG_PROXY
module-str = "Proxy"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_SETTINGS
legacy-debug-sym = BT_MESH_DEBUG_SETTINGS
module-str = "Persistent settings"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_CDB
legacy-debug-sym = BT_MESH_DEBUG_CDB
module-str = "Configuration database"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_MESH_CFG
legacy-debug-sym = BT_MESH_DEBUG_CFG
module-str = "Configuration"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

endmenu # Mesh

menu "Services"

# BAS

module = BT_BAS
module-str = BAS
source "subsys/logging/Kconfig.template.log_config"

# HRS

module = BT_HRS
module-str = HRS
source "subsys/logging/Kconfig.template.log_config"

# TPS

module = BT_TPS
module-str = TPS
source "subsys/logging/Kconfig.template.log_config"

# IAS

module = BT_IAS_CLIENT
legacy-debug-sym = BT_DEBUG_IAS_CLIENT
module-str = "Immediate Alert Service Client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_IAS
module-str = IAS
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"

# OTS (subsys/bluetooth/services/ots/Kconfig)

module = BT_OTS_CLIENT
legacy-debug-sym = BT_DEBUG_OTS_CLIENT
module-str = "Object Transfer Service Client"
source "subsys/bluetooth/common/Kconfig.template.log_config_bt"

module = BT_OTS
module-str = BT_OTS
source "${ZEPHYR_BASE}/subsys/logging/Kconfig.template.log_config"

endmenu # Services

endmenu # Bluetooth logging

endif # BT_LOG
