# 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_BREDR
	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
